本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Amazon Bedrock 知识库创建服务角色
要在知识库中使用自定义角色而不是 Amazon Bedrock 自动创建的角色,请按照创建角色向 AWS 服务委派权限中的步骤创建一个 IAM 角色并附加以下权限。为了安全起见,请仅添加必要的权限。
注意
使用服务角色时,策略不能在多个角色之间共享。
-
信任关系
-
对 Amazon Bedrock 基础模型的访问权限
-
访问存储数据所在的数据来源
-
(如果您在 Amazon OpenSearch 服务中创建矢量数据库)访问您的 OpenSearch 服务集合
-
(如果您在 Amazon Aurora 中创建向量数据库)访问 Aurora 集群
-
(如果您在Pinecone或中创建矢量数据库Redis Enterprise Cloud)对您的Pinecone或Redis Enterprise Cloud账户 AWS Secrets Manager 进行身份验证的权限
-
(可选)如果您使用 KMS 密钥加密以下任何资源,则还有解密密钥的权限(请参阅知识库资源的加密)。
-
知识库
-
知识库的数据来源
-
你在 Amazon OpenSearch 服务中的矢量数据库
-
您的第三方矢量数据库的秘密 AWS Secrets Manager
-
数据提取作业
-
主题
信任关系
以下策略允许 Amazon Bedrock 担任此角色,并创建和管理知识库。下面所示为您可以使用的示例策略。您可以使用一个或多个全局条件上下文键来限制权限的范围。有关更多信息,请参阅 AWS 全局条件上下文键。将 aws:SourceAccount 值设置为您的账户 ID。使用 ArnEquals 或 ArnLike 条件将范围限制为特定的知识库。
注意
出于安全目的的最佳实践,请在创建知识库 IDs 后将其替换为特定的知识库。*
访问 Amazon Bedrock 模型的权限
附加以下策略,以向角色提供使用 Amazon Bedrock 模型嵌入源数据的权限。
访问数据来源的权限
从以下数据来源中进行选择,为该角色附加必要的权限。
访问 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:::amzn-s3-demo-bucket" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } }, { "Sid": "S3GetObjectStatement", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } } ] }
访问您的 Confluence 数据来源的权限
注意
Confluence 数据来源连接器目前为预览版,可能随时发生变化。
附加以下策略,以向角色提供访问 Confluence 的权限。
注意
secretsmanager:PutSecretValue只有在使用带有刷新令牌的 OAuth 2.0 身份验证时才是必需的。
Confluen OAuth2 ce .0 访问令牌的默认到期时间为 60 分钟。如果此令牌在您的数据来源同步(同步作业)时过期,Amazon Bedrock 将使用提供的刷新令牌来重新生成此令牌。此重新生成操作会刷新访问令牌和刷新令牌。为了将令牌从当前同步任务更新到下一个同步任务,Amazon Bedrock 需要您的密钥凭证的 write/put 权限。
访问你的微软 SharePoint 数据源的权限
注意
SharePoint 数据源连接器处于预览版,可能会发生变化。
附加以下策略为该角色提供访问权限 SharePoint。
访问您的 Salesforce 数据来源的权限
注意
Salesforce 数据来源连接器目前为预览版,可能随时发生变化。
附加以下策略,以向角色提供访问 Salesforce 的权限。
与您的文档交互的权限
附加以下策略,以向角色提供使用 Amazon Bedrock 模型与文档交互的权限。
如果您只想授予用户与您的文档交互的权限(而不是在所有知识库中 RetrieveAndGenerate),请使用以下策略:
如果您既想与文档交谈,又想RetrieveAndGenerate在特定的知识库中使用${KnowledgeBaseArn},请提供并使用以下政策:
访问您的亚马逊 Kendra GenAI 索引的权限
如果您为知识库创建了 Amazon Kendra GenAI 索引,请将以下策略附加到您的 Amazon Bedrock 知识库服务角色以允许访问该索引。在策略中,将${Partition}、${Region}${AccountId}、和${IndexId}替换为索引的值。您可以通过将多个索引添加到Resource列表中来允许访问它们。要允许访问您的中的每个索引 AWS 账户,请替换${IndexId}为通配符 (*)。
在 Amazon OpenSearch Serverless 中访问您的矢量数据库的权限
如果您在 OpenSearch Serverless 中为知识库创建了矢量数据库,请将以下策略附加到您的 Amazon Bedrock 知识库服务角色以允许访问该馆藏。将${Region}和${AccountId}替换为数据库所属的区域和账户 ID。在中输入您的亚马逊 OpenSearch 服务系列的编号${CollectionId}。您可以通过将多个集合添加到Resource列表中来允许访问这些集合。
在 OpenSearch 托管集群中访问矢量数据库的权限
如果您在 OpenSearch 托管集群中为知识库创建了矢量数据库,请将以下策略附加到您的 Amazon Bedrock 知识库服务角色以允许访问该域。将<region>和<accountId>替换为数据库所属的区域和账户 ID。您可以通过将多个域添加到Resource列表中来允许访问多个域。有关配置用户权限的信息,请参阅 在 Amazon Bedrock 知识库中使用 OpenSearch 托管集群所需的先决条件和权限。
访问您的亚马逊 Aurora 数据库集群的权限
注意
Amazon Aurora 集群必须与 AWS 账户 为亚马逊 Bedrock 创建知识库的集群位于同一集群中。
如果您在 Amazon Aurora 中为知识库创建了数据库(DB)集群,请为 Amazon Bedrock 知识库服务角色附加策略,以允许其访问该 DB 集群并提供对它的读写权限。将${Region}和${AccountId}替换为数据库集群所属的区域和账户 ID。在中输入您的亚马逊 Aurora 数据库集群的 ID ${DbClusterId}。您可以通过将多个 DB 集群添加到 Resource 列表来允许访问这些集群。
在 Amazon Neptune Analytics 中访问你的矢量数据库的权限
如果您为知识库创建了 Amazon Neptune Analytics 图表,请将以下策略附加到您的 Amazon Bedrock 知识库服务角色以允许访问该图表。在策略中,将${Region}和${AccountId}替换为数据库所属的区域和账户 ID。${GraphId}替换为图形数据库的值。
访问 Amazon S3 矢量图库的权限
如果您选择使用 Amazon S3 Vectors 作为知识库,请将以下策略附加到您的 Amazon Bedrock 知识库服务角色以允许访问矢量索引。
重要
Amazon S3 Vectors 与亚马逊 Bedrock 知识库的集成处于预览版,可能会发生变化。
在策略中,将${Region}和${AccountId}替换为矢量索引所属的区域和账户 ID。${BucketName}替换为 S3 矢量存储桶的${IndexName}名称和矢量索引的名称。有关 Amazon S3 矢量的更多信息,请参阅设置为使用 Amazon S3 矢量。
访问配置了 AWS Secrets Manager 密钥的矢量数据库的权限
如果您的矢量数据库配置了 AWS Secrets Manager 密钥,请将以下策略附加到您的 Amazon Bedrock 知识库服务角色, AWS Secrets Manager 以允许对您的账户进行身份验证以访问数据库。将${Region}和${AccountId}替换为数据库所属的区域和账户 ID。${SecretId}替换为您的密钥的 ID。
如果您使用密钥加密了您的密 AWS KMS 钥,请按照中的步骤为该角色授予解密密钥的权限。解密包含知识库的矢量存储的 AWS Secrets Manager 密钥的权限
AWS 在数据摄取期间管理用于临时数据存储的 AWS KMS 密钥的权限
要允许在摄取数据源的过程中为临时数据存储创建 AWS KMS 密钥,请将以下策略附加到您的 Amazon Bedrock 知识库服务角色。将${Region}、和 ${AccountId}${KeyId},替换为相应的值。
管理来自其他用户 AWS 账户的数据源的权限。 AWS
要允许访问其他用户的 AWS 账户,您必须创建一个允许跨账户访问其他用户账户中的 Amazon S3 存储桶的角色。将${BucketName}、和 ${BucketOwnerAccountId}${BucketNameAndPrefix},替换为相应的值。
知识库角色所需的权限
知识库创建 createKnowledgeBase 期间提供的知识库角色需要以下 Amazon S3 权限。
如果使用 AWS KMS 密钥对 Amazon S3 存储桶进行加密,则还需要将以下内容添加到知识库角色中。用相应的值替换和。${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},替换为相应的值。
跨账户 AWS KMS 密钥策略所需的权限
如果跨账户 Amazon S3 存储桶使用该账户中的 AWS KMS 密钥进行加密,则 AWS KMS 密钥策略需要以下策略。用相应的值替换和。${KbRoleArn} ${KmsKeyArn}
{ "Sid": "Example policy", "Effect": "Allow", "Principal": { "AWS": [ "${KbRoleArn}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "${KmsKeyArn}" }