本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要使用知識庫的自訂角色,而非 Amazon Bedrock 自動建立的角色,請建立 IAM 角色,並遵循建立角色以將許可委派給 AWS 服務的步驟來連接下列許可。僅包含您自身安全的必要許可。
-
信任關係
-
Amazon Bedrock 基本模型的存取
-
存取您存放資料的資料來源
-
(如果您在 Amazon OpenSearch Service 中建立向量資料庫) 存取您的 OpenSearch Service 集合
-
(如果您在 Amazon Aurora 中建立向量資料庫) 存取您的 Aurora 叢集
-
(如果您在 Pinecone或 中建立向量資料庫Redis Enterprise Cloud) AWS Secrets Manager 對 驗證您的 Pinecone或 Redis Enterprise Cloud帳戶的許可
-
(選用) 如果您使用 KMS 金鑰加密下列任何資源,則需要解密金鑰的權限 (請參閱 知識庫資源的加密)。
-
您的知識庫
-
知識庫的資料來源
-
在 Amazon OpenSearch Service 中的向量資料庫
-
中第三方向量資料庫的秘密 AWS Secrets Manager
-
資料擷取任務
-
主題
信任關係
下列政策允許 Amazon Bedrock 擔任此角色,並建立和管理知識庫。以下顯示您可使用的範例政策。您可以使用一或多個全域條件內容索引鍵來限制權限範圍。如需詳細資訊,請參閱 AWS 全域條件內容索引鍵。將 aws:SourceAccount
值設定為您的帳戶 ID。使用 ArnEquals
或 ArnLike
條件將範圍限制為特定的知識庫。
注意
作為安全目的的最佳實務,請在建立特定知識庫 ID 之後,將 *
取代為特定知識庫 ID。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Service": "bedrock.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "${AccountId}
"
},
"ArnLike": {
"AWS:SourceArn": "arn:aws:bedrock:${Region}
:${AccountId}
:knowledge-base/*
"
}
}
}]
}
存取 Amazon Bedrock 模型的權限
附加以下政策,為角色提供使用 Amazon Bedrock 模型以嵌入來源資料的許可權。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:ListFoundationModels",
"bedrock:ListCustomModels"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel"
],
"Resource": [
"arn:aws:bedrock:${Region}
::foundation-model/amazon.titan-embed-text-v1",
"arn:aws:bedrock:${Region}
::foundation-model/cohere.embed-english-v3",
"arn:aws:bedrock:${Region}
::foundation-model/cohere.embed-multilingual-v3"
]
}
]
}
存取資料來源的許可
從下列資料來源中選取 ,以連接角色的必要許可。
存取 Amazon S3 資料來源的許可
如果您的資料來源是 Amazon S3,請連接下列政策,以提供 角色存取您將連線做為資料來源之 S3 儲存貯體的許可。
如果您使用 AWS KMS 金鑰加密資料來源,請依照 中的步驟,將解密金鑰的許可連接到角色在 Amazon S3 中解密資料來源 AWS KMS 金鑰的許可。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "S3ListBucketStatement",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::${Bucket}
"
],
"Condition": {
"StringEquals": {
"aws:ResourceAccount": [${AccountId}
]
}
}
},
{
"Sid": "S3GetObjectStatement",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::${BucketAndKeyPrefix}
"
],
"Condition": {
"StringEquals": {
"aws:ResourceAccount": [${AccountId}
]
}
}
}
]
}
存取 Confluence 資料來源的許可
注意
Confluence 資料來源連接器處於預覽版本中,可能會有所變更。
連接下列政策,為角色提供存取 Confluence 的許可。
注意
secretsmanager:PutSecretValue
只有在您使用 OAuth 2.0 身分驗證搭配重新整理權杖時才需要。
Confluence OAuth2.0 存取權杖的預設到期時間為 60 分鐘。如果此字符在您的資料來源同步時過期 (同步任務),Amazon Bedrock 將使用提供的重新整理字符來重新產生此字符。此再生會同時重新整理存取和重新整理權杖。若要讓字符從目前同步任務更新至下一個同步任務,Amazon Bedrock 需要秘密登入資料的寫入/輸出許可。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue",
"secretsmanager:PutSecretValue"
],
"Resource": [
"arn:aws:secretsmanager:${Region}
:${AccountId}
:secret:${secret-id}
"
]
},
{
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:${Region}
:${AccountId}
:key/${KeyId}
"
],
"Condition": {
"StringLike": {
"kms:ViaService": [
"secretsmanager.${Region}
.amazonaws.com"
]
}
}
},
}
存取 Microsoft SharePoint 資料來源的許可
注意
SharePoint 資料來源連接器處於預覽版本中,可能會有所變更。
連接下列政策,以提供 角色存取 SharePoint 的許可。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": [
"arn:aws:secretsmanager:${Region}
:${AccountId}
:secret:${SecretId}
"
]
},
{
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:${Region}
:${AccountId}
:key/${KeyId}
"
],
"Condition": {
"StringLike": {
"kms:ViaService": [
"secretsmanager.${Region}
.amazonaws.com"
]
}
}
},
}
存取 Salesforce 資料來源的許可
注意
Salesforce 資料來源連接器處於預覽版本,可能會有所變更。
連接下列政策,以提供 角色存取 Salesforce 的許可。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": [
"arn:aws:secretsmanager:${Region}
:${AccountId}
:secret:${SecretId}
"
]
},
{
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:${Region}
:${AccountId}
:key/${KeyId}
"
],
"Condition": {
"StringLike": {
"kms:ViaService": [
"secretsmanager.${Region}
.amazonaws.com"
]
}
}
},
}
與您的文件聊天的許可
連接下列政策,提供 角色使用 Amazon Bedrock 模型與您的文件聊天的許可:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:RetrieveAndGenerate"
],
"Resource": "*"
}
]
}
如果您只想要授予使用者與您的文件聊天的存取權 (而不是所有知識庫RetrieveAndGenerate
上的 ),請使用下列政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:RetrieveAndGenerate"
],
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"bedrock:Retrieve"
],
"Resource": "*"
}
]
}
如果您想要與文件聊天並在特定知識庫RetrieveAndGenerate
上使用 ,請提供 ${KnowledgeBaseArn}
,並使用下列政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:RetrieveAndGenerate"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"bedrock:Retrieve"
],
"Resource": ${KnowledgeBaseArn}
}
]
}
(選用) 存取 Amazon Kendra GenAI 索引的許可
如果您為知識庫建立 Amazon Kendra GenAI 索引,請將下列政策連接至您的 Amazon Bedrock Knowledge Bases 服務角色,以允許存取索引。在政策中,將 ${Partition}
、${Region}
、${AccountId}
和 ${IndexId}
取代為您的索引值。您可以將多個索引新增至Resource
清單,以允許存取這些索引。若要允許存取 中的每個索引 AWS 帳戶,請以萬用字元 (*) 取代 ${IndexId}
。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kendra:Retrieve", // To call their Retrieve API
"kendra:DescribeIndex" // For validation when creating the KB
],
"Resource": "arn:${${Partition}
}:kendra:${${Region}
}:${${AccountId}
}:index/${${IndexId}
}"
}
]
}
(選用) 在 Amazon OpenSearch Service 中存取向量資料庫的許可
如果您在 Amazon OpenSearch Service 中為知識庫建立向量資料庫,請將下列政策連接至您的 Amazon Bedrock 知識庫服務角色,以允許存取集合。將 ${Region}
和 ${AccountId}
取代為資料庫所屬的區域和帳戶 ID。在 ${CollectionId}
中輸入 Amazon OpenSearch Service 集合的 ID。將集合新增至 Resource
清單,即可允許存取多個集合。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"aoss:APIAccessAll"
],
"Resource": [
"arn:aws:aoss:${Region}
:${AccountId}
:collection/${CollectionId}
"
]
}]
}
(選用) 存取您的 Amazon Aurora 資料庫叢集所需的權限
如果您在 Amazon Aurora 中為知識庫建立資料庫 (DB) 叢集,請將下列政策連接至您的 Amazon Bedrock Knowledge Bases 服務角色,以允許存取資料庫叢集並提供讀取和寫入許可。將 ${Region}
和 ${AccountId}
取代為資料庫叢集所屬的區域和帳戶 ID。在 ${DbClusterId}
中輸入 Amazon Aurora 資料庫叢集的 ID。將資料庫叢集新增至 Resource
清單,即可允許存取多個資料庫叢集。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RdsDescribeStatementID
",
"Effect": "Allow",
"Action": [
"rds:DescribeDBClusters"
],
"Resource": [
"arn:aws:rds:${Region}
:${AccountId}
:cluster:${DbClusterId}
"
]
},
{
"Sid": "DataAPIStatementID",
"Effect": "Allow",
"Action": [
"rds-data:BatchExecuteStatement",
"rds-data:ExecuteStatement"
],
"Resource": [
"arn:aws:rds:${Region}
:${AccountId}
:cluster:${DbClusterId}
"
]
}]
}
(選用) 存取使用 AWS Secrets Manager 秘密設定之向量資料庫的許可
如果您的向量資料庫已設定 AWS Secrets Manager 秘密,請將下列政策連接至您的 Amazon Bedrock Knowledge Bases 服務角色, AWS Secrets Manager 以允許 驗證您的帳戶以存取資料庫。將 ${Region}
和 ${AccountId}
取代為資料庫所屬的區域和帳戶 ID。將 ${SecretId}
取代為您的秘密 ID。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": [
"arn:aws:secretsmanager:${Region}
:${AccountId}
:secret:${SecretId}
"
]
}]
}
如果您使用 AWS KMS 金鑰加密秘密,請依照 中的步驟,將解密金鑰的許可連接至角色解密包含知識庫之向量存放區的 AWS Secrets Manager 秘密的許可。
(選用) 在資料擷取期間 AWS 管理暫時性資料儲存 AWS KMS 金鑰的 許可
若要允許在擷取資料來源的過程中建立暫時性資料儲存的 AWS KMS 金鑰,請將下列政策連接至您的 Amazon Bedrock Knowledge Bases 服務角色。將 ${Region}
、${AccountId}
和 ${KeyId}
取代為適當的值。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:${Region}
:${AccountId}
:key/${KeyId}
"
]
}
]
}
(選用) AWS 管理來自其他使用者帳戶之資料來源的許可 AWS 。
若要允許存取另一個使用者帳戶 AWS ,您必須建立角色,允許跨帳戶存取另一個使用者帳戶中的 Amazon S3 儲存貯體。以適當的值取代 ${BucketName}
、${BucketOwnerAccountId}
和 ${BucketNameAndPrefix}
。
知識庫角色所需的許可
在建立知識庫期間提供的知識庫角色createKnowledgeBase
需要下列 Amazon S3 許可。
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "S3ListBucketStatement",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::${BucketName}
"
],
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${BucketOwnerAccountId}
"
}
}
},{
"Sid": "S3GetObjectStatement",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::${BucketNameAndPrefix}
/*"
],
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${BucketOwnerAccountId}
"
}
}]
}
如果 Amazon S3 儲存貯體使用 AWS KMS 金鑰加密,則還需要將下列項目新增至知識庫角色。將 ${BucketOwnerAccountId}
和 ${Region}
取代為適當的值。
{
"Sid": "KmsDecryptStatement",
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:${Region}
:${BucketOwnerAccountId}
:key/${KeyId}
"
],
"Condition": {
"StringEquals": {
"kms:ViaService": [
"s3.${Region}
.amazonaws.com"
]
}
}
}
跨帳戶 Amazon S3 儲存貯體政策所需的許可
其他帳戶中的儲存貯體需要下列 Amazon S3 儲存貯體政策。將 ${KbRoleArn}
、${BucketName}
和 ${BucketNameAndPrefix}
取代為適當的值。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Example ListBucket permissions",
"Effect": "Allow",
"Principal": {
"AWS": "${KbRoleArn}
"
},
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::${BucketName}
"
]
},
{
"Sid": "Example GetObject permissions",
"Effect": "Allow",
"Principal": {
"AWS": "${KbRoleArn}
"
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::${BucketNameAndPrefix}
/*"
]
}
]
}
跨帳戶 AWS KMS 金鑰政策所需的許可
如果跨帳戶 Amazon S3 儲存貯體使用該帳戶中的 AWS KMS 金鑰加密,則 AWS KMS 金鑰的政策需要下列政策。將 ${KbRoleArn}
和 ${KmsKeyArn}
取代為適當的值。
{
"Sid": "Example policy",
"Effect": "Allow",
"Principal": {
"AWS": [
"${KbRoleArn}
"
]
},
"Action": [
"kms:Decrypt"
],
"Resource": "${KmsKeyArn}
"
}