View a markdown version of this page

为托管 Amazon Bedrock 知识库创建服务角色 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为托管 Amazon Bedrock 知识库创建服务角色

要使用托管知识库的自定义角色而不是 Amazon Bedrock 自动创建的角色,请按照创建角色向 AWS 服务委派权限中的步骤创建一个 IAM 角色并附加以下权限。为了安全起见,请仅添加必要的权限。

注意

使用服务角色时,不能在多个角色之间共享策略。

  • 信任关系

  • 对 Amazon Bedrock 基础模型的访问权限

  • 访问存储数据所在的数据来源

信任关系

以下策略允许 Amazon Bedrock 担任此角色,并创建和管理知识库。您可以使用一个或多个全局条件上下文键来限制权限的范围。有关更多信息,请参阅 AWS 全局条件上下文键。将 aws:SourceAccount 值设置为您的账户 ID。使用 ArnEqualsArnLike 条件将范围限制为特定的知识库。

注意

出于安全考虑,最佳做法是在创建特定知识库 ID 之后将其替换为特定的知识库 ID。*

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/*" } } } ] }

访问 Amazon Bedrock 模型的权限

附加以下策略,以向角色提供使用 Amazon Bedrock 模型嵌入源数据的权限。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:ListFoundationModels", "bedrock:ListCustomModels" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v1", "arn:aws:bedrock:us-east-1::foundation-model/cohere.embed-english-v3", "arn:aws:bedrock:us-east-1::foundation-model/cohere.embed-multilingual-v3" ] } ] }

访问数据来源的权限

从以下数据来源中进行选择,为该角色附加必要的权限。

访问 Amazon S3 中数据来源的权限

如果您的数据来源是 Amazon S3,请附加以下策略,以向角色提供访问您将作为数据来源进行连接的 S3 存储桶的权限。

如果您使用 AWS KMS 密钥加密了数据源,请按照中的步骤为角色授予解密密钥的权限。解密你的权限 AWS KMS Amazon S3 中数据源的密钥

JSON
{ "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 的权限。

注意

只有在使用带有刷新令牌的 OAuth 2.0 身份验证时才需要 secretsmanager:PutSecretValue

Confluence OAuth2.0 访问令牌的默认到期时间为 60 分钟。如果此令牌在您的数据来源同步(同步作业)时过期,Amazon Bedrock 将使用提供的刷新令牌来重新生成此令牌。此重新生成操作会刷新访问令牌和刷新令牌。为了将令牌从当前同步任务更新到下一个同步任务,Amazon Bedrock 需要您的密钥凭证的 write/put 权限。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }] }

访问你的微软 SharePoint 数据源的权限

附加以下策略,为该角色提供访问 Microsoft 的权限 SharePoint。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }] }
注意

如果您使用基于证书的身份验证 (X.509) 并将证书存储在 Amazon S3 存储桶中,则还必须向存储证书文件(.pfx 或.pem)的存储桶和密钥的服务角色授予s3:GetObject权限。以下示例显示了所需的其他政策声明:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${CertificateBucketName}/${CertificateKeyPath}" ] }] }

访问您的 Web Crawler 数据源的权限

附加以下策略,为该角色提供通过 Web Crawler 访问网站的权限。如果您的网站需要身份验证,请包括访问存储您的凭据的 AWS Secrets Manager 密钥的权限。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }] }

访问你的微软 OneDrive 数据源的权限

附加以下策略,为该角色提供访问 Microsoft 的权限 OneDrive。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }] }

访问您的 Google 云端硬盘数据源的权限

请附上以下政策,为该角色提供访问 Google 云端硬盘的权限。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }] }