本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理员设置
在用户创建 Amazon S3 集成和知识库之前,Amazon Quick 管理员必须完成以下设置任务。
授予亚马逊快速访问亚马逊 S3 存储桶的权限
授予亚马逊快速访问您的组织所需的 Amazon S3 存储桶的权限。无论存储桶位于同一个账户还是不同的 AWS 账户中,这都适用。
-
在 Amazon Quick 管理控制台的 “权限” 下,选择AWS 资源。
-
在 “允许访问和自动发现这些资源” 下,选中 Amazon S3 复选框。
-
选择选择 S3 存储桶。
-
在选择 Amazon S3 存储桶对话框中,选择与您的存储桶位置相匹配的选项卡:
-
与@@ 快速账户关联的 S3 存储桶 — 从列表中选择您希望 Amazon Quick 访问的存储桶。默认情况下,选定的存储桶具有只读权限。
-
您可以访问的 S3 存储桶 AWS — 对于跨账户存储桶,请确保账户所有者已授权您的账户。选择使用其他存储桶,输入存储桶名称,然后选择添加 S3 存储桶。
-
-
(可选)对于跨账户存储桶,请选择限制知识库创建者对存储桶的访问权限以限制访问权限,以便只有创建知识库的用户才能使用存储桶。
-
选择结束。
现在,用户可以在创建知识库期间访问选定的存储桶。
准备 IAM 角色和策略设置
Amazon S3 集成使用 AWS 身份验证来访问您的亚马逊 S3 存储桶。在用户设置集成之前,请准备好您的 IAM 角色和策略配置。
所需的 IAM 权限
请确保您的 AWS 账户具有以下对 Amazon S3 存储桶的最低权限:
s3:GetObject— 读取存储桶中的对象。s3:ListBucket— 列出存储桶内容。s3:GetBucketLocation— 获取存储桶区域信息。s3:GetObjectVersion— 获取对象版本。s3:ListBucketVersions— 列出存储桶版本。
为跨账户访问配置 Amazon S3 存储桶权限
如果您使用其他 AWS 账户访问 Amazon S3 存储桶,则必须在源 AWS 账户中配置 IAM 策略。
配置 Amazon S3 存储桶权限以进行跨账户访问
-
登录包含 Amazon S3 存储桶的账户的 AWS 管理控制台。
-
打开 Amazon S3 控制台,网址为 https://console.aws.amazon.com/s3/
。 -
选择您要授予访问权限的存储桶。
-
选择 Permissions,然后选择 Bucket Policy。
-
添加包含以下元素的存储桶策略:
Version— 设置为 “2012-10-17”Statement— 包含政策声明的数组,其中包含:Sid— “AllowQuickSuiteS3Access”Effect— “允许”Principal— 您账户中的 AWS Amazon Quick 服务角色的 ARN。例如,校长应如下所示:"Principal": { "AWS": "arn:aws:iam::<quick_account_id>:role/service-role/aws-quicksight-service-role-v0" }Action— Amazon S3 权限数组:s3: GetObject、s3: ListBucket、s3:、s3: GetBucketLocation、s3: GetObjectVersion、s3:ListBucketVersionsResource— “*”(适用于当前密钥),Amazon S3 存储桶路径应如下所示:"Resource": [ "arn:aws:s3:::bucket_name"]
-
选择保存更改。
配置 KMS 密钥权限(如果您的存储桶使用加密)
如果您的 Amazon S3 存储桶使用 AWS KMS 加密,请完成以下步骤。
配置 KMS 密钥权限
-
在 https://console.aws.amazon.com/
km AWS s 上打开密钥管理服务 (AWS KMS) 控制台。 -
选择用于加密您的 Amazon S3 存储桶的 KMS 密钥。
-
选择密钥策略,然后选择编辑。
-
在密钥策略中添加包含以下结构元素的声明:
Sid– "AllowQuickSuiteKMSAccess"Effect— “允许”Principal— 您账户中的 AWS Amazon Quick 服务角色的 ARN。例如,校长应如下所示:"Principal": { "AWS": "arn:aws:iam::<quick_account_id>:role/service-role/aws-quicksight-service-role-v0" }Action— KMS 权限数组: kms:解密, kms:DescribeKeyResource— “*”(适用于当前密钥),Amazon S3 存储桶路径应如下所示:"Resource": [ "arn:aws:s3:::bucket_name"]
-
选择保存更改。
-
等待 2-3 分钟,让策略更改传播。
在 Amazon Quick 中配置 Amazon S3 连接器的 VPC 访问权限
VPC 权限可确保 Amazon Quick 只能通过安全的 VPC 或 VPC 终端节点连接访问您的 Amazon S3 存储桶。
必要的政策变更
将此声明添加到您的存储桶访问策略中,以允许 Amazon Quick 通过 VPC 终端节点访问您的存储桶:
{ "Sid": "Allow-Quick-access" , "Principal": "arn:aws:iam::Quick Account:role/service-role/aws-quicksight-service-role-v0", "Action": "s3:*", "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": { "Null": { "aws:SourceVpce": "false" } } }
-
将
amzn-s3-demo-bucket替换为存储桶名称。 -
Quick Account用您的 Amazon Quick 账户替换。
该"aws:SourceVpce": "false"条件可确保 Amazon Quick 只能通过 VPC 终端节点访问您的存储桶,从而满足您的安全要求。
拒绝策略
如果您的存储桶的策略通过拒绝策略限制流向特定 VPC 或 VPC 终端节点,则必须撤消此政策,因为拒绝策略优先于允许策略。
例如:
{ "Version":"2012-10-17" , "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*"], "Condition": { "StringNotEquals": { "aws:SourceVpce": "vpce-0abcdef1234567890" } } } ] }
应反转为:
{ "Version":"2012-10-17" , "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": "s3:*", "Effect": "Allow", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*"], "Condition": { "StringEquals": { "aws:SourceVpce": "vpce-0abcdef1234567890" } } } ] }
最佳实践
限制访问您的 Amazon Quick 角色
访问策略应强制要求来电者是你的 Amazon Quick 角色 ARN,或者至少是你的 Amazon Quick 账户。这样可以确保尽管允许 VPC 流量,但呼叫仅来自预期来源。
安全建议
-
将策略限制在您的 Amazon Quick 角色上,以获得最安全的流量
-
定期查看您的存储桶策略,确保它们遵循最低权限原则
通过 IAM 策略分配限制 Amazon S3 存储桶的访问权限
您可以通过创建 IAM 策略并通过 Amazon Quick IAM 策略分配将其分配给特定用户、群组或所有用户,来控制您的 Amazon Quick 用户可以使用哪些 Amazon S3 存储桶来创建知识库。这允许您限制谁可以针对特定的存储分区创建知识库,包括支持 ACL 的知识库。
注意
通过 Amazon Quick 分配的 IAM 策略优先于 AWS 资源级策略。为确保满足您的访问要求,请适当配置您的 IAM 策略。
例如,您可以为需要访问支持 ACL 的存储桶的特定用户分配限制性策略,同时为非 ACL 存储桶的所有用户分配更广泛的策略。
步骤 1:在 IAM 中创建 Amazon S3 访问策略
在 IAM 控制台中创建一个 AWS IAM 策略,定义用户可以访问哪些 Amazon S3 存储桶来创建知识库。以下示例策略授予对两个特定存储桶的访问权限:
{ "Version": "2012-10-17" , "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "arn:aws:s3:::*" }, { "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-1", "arn:aws:s3:::amzn-s3-demo-bucket-2" ] }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-1/*", "arn:aws:s3:::amzn-s3-demo-bucket-2/*" ] }, { "Action": [ "s3:ListBucketMultipartUploads", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-1", "arn:aws:s3:::amzn-s3-demo-bucket-2" ] }, { "Action": [ "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-1/*", "arn:aws:s3:::amzn-s3-demo-bucket-2/*" ] } ] }
将amzn-s3-demo-bucket-1和amzn-s3-demo-bucket-2替换为您想要授予访问权限的 Amazon S3 存储桶的名称。
第 2 步:在 Amazon Quick 中分配策略
创建 IAM 策略后,将其分配给 Amazon Quick 用户或群组。
-
在 Amazon Quick 管理控制台的 “权限” 下,选择 IAM 策略分配。
-
选择 “添加新作业”。
-
输入任务的名称。
-
在选择 IAM 策略页面上,搜索并选择您在步骤 1 中创建的 IAM 策略。选择下一步。
-
在分配用户和群组页面上,选择以下选项之一:
-
选择 “分配给所有用户和群组”,将该策略应用于所有当前和未来的用户。
-
搜索并选择要向其分配策略的特定用户或组。
选择下一步。
-
-
在 “查看并启用更改” 页面上,验证您的任务详细信息,然后选择 “保存并启用”。
未通过 IAM 策略分配明确授予访问权限的用户将无法访问受限的 Amazon S3 存储桶来创建集成或知识库。