本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在其他 AWS 账户中注册 Amazon S3 位置
AWS Lake Formation 使您能够跨 AWS 账户注册 Amazon Simple Storage Service (Amazon S3) 位置。例如,如果 AWS Glue Data Catalog 数据目录位于账户 A 中,则账户 A 中的用户可以在账户 B 中注册 Amazon S3 存储桶。
使用 AWS 账户 A 中的 AWS Identity and Access Management (IAM) 角色在 AWS 账户 B 中注册 Amazon S3 存储桶需要以下权限:
-
账户 A 中的角色必须授予对账户 B 中存储桶的权限。
-
账户 B 中的存储桶策略必须向账户 A 中的角色授予访问权限。
重要
避免注册启用了请求者付费的 Amazon S3 存储桶。对于在 Lake Formation 中注册的存储桶,用于注册存储桶的角色始终被视为请求者。如果存储桶由其他 AWS 账户访问,则当该角色与存储桶拥有者属于同一个账户时,存储桶拥有者需要支付数据访问费用。
您不能使用 Lake Formation 服务相关角色在其他账户中注册位置。您必须改用用户定义的角色。该角色必须符合用于注册位置的角色的要求中的要求。有关服务相关角色的更多信息,请参阅 Lake Formation 的服务相关角色权限。
开始前的准备工作
查看用于注册位置的角色的要求。
在其他 AWS 账号中注册位置
注意
如果该位置已加密,请改为按照跨 AWS 账户注册加密的 Amazon S3 位置中的说明进行操作。
以下过程假定包含数据目录的账户 1111-2222-3333 中的主体想要注册位于账户 1234-5678-9012 中的 Amazon S3 存储桶 awsexamplebucket1
。
-
在账户 1111-2222-3333 中,登录 AWS Management Console并通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
创建新角色或查看符合用于注册位置的角色的要求中要求的现有角色。确保该角色授予对
awsexamplebucket1
的 Amazon S3 权限。 -
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。使用账户 1234-5678-9012 登录。 -
在存储桶名称列表中,选择存储桶名称
awsexamplebucket1
。 -
选择权限。
-
在权限页面上,选择存储桶策略。
-
在存储桶策略编辑器中,粘贴以下策略。将
<role-name>
替换为您的角色的名称。{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::111122223333:role/
<role-name>
" }, "Action":"s3:ListBucket", "Resource":"arn:aws:s3:::awsexamplebucket1" }, { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::111122223333:role/<role-name>
" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource":"arn:aws:s3:::awsexamplebucket1/*" } ] } -
选择保存。
-
通过 https://console.aws.amazon.com/lakeformation/
打开 AWS Lake Formation 控制台。以数据湖管理员或具有足够权限注册位置的用户身份登录账户 1111-2222-3333。 -
在导航窗格的管理下,选择数据湖位置。
-
在数据湖位置页面上,选择注册位置。
-
在注册位置页面上,对于 Amazon S3 路径,输入存储桶名称
s3://awsexamplebucket1
。注意
您必须键入存储桶名称,因为当您选择浏览时,跨账户存储桶不会显示在列表中。
-
对于 IAM 角色,选择您的角色。
-
选择注册位置。