本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理员设置
在用户创建 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 身份验证来访问您的 Amazon 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 密钥权限
-
打开 AWS 密钥管理服务 (AWS KMS) 控制台,网址为https://console.aws.amazon.com/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: decrypt,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-aware 知识库。
注意
通过 Amazon Quick 分配的 IAM 策略优先于 AWS 资源级策略。为确保您的访问要求得到满足,请适当配置您的 IAM 策略。
例如,您可以为需要访问存储桶的特定用户分配限制性策略,同时为非 ACL ACL-aware 存储桶的所有用户分配更广泛的策略。
步骤 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 存储桶来创建集成或知识库。