在其他 AWS 账户中注册 Amazon S3 位置 - AWS Lake Formation

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

在其他 AWS 账户中注册 Amazon S3 位置

AWS Lake Formation 允许您跨账户注册亚马逊简单存储服务 (Amazon S3) Service 地点 AWS 。例如,如果在账户 A 中, AWS Glue Data Catalog 则账户 A 中的用户可以在账户 B 中注册 Amazon S3 存储桶。

使用账户 A 中的 AWS Identity and Access Management (IAM) 角色在 AWS 账户 B 中 AWS 注册 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

  1. 在账户 1111-2222-3333 中,登录 AWS Management Console 并打开 IAM 控制台,网址为。https://console.aws.amazon.com/iam/

  2. 创建新角色或查看符合用于注册位置的角色的要求中要求的现有角色。确保该角色授予对 awsexamplebucket1 的 Amazon S3 权限。

  3. 打开 Amazon S3 控制台,网址为:https://console.aws.amazon.com/s3/。使用账户 1234-5678-9012 登录。

  4. 存储桶名称列表中,选择存储桶名称 awsexamplebucket1

  5. 选择权限

  6. 权限页面上,选择存储桶策略

  7. 存储桶策略编辑器中,粘贴以下策略。将 <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/*" } ] }
  8. 选择保存

  9. 打开 AWS Lake Formation 控制台,网址为 https://console.aws.amazon.com/lakeformation/。以数据湖管理员或具有足够权限注册位置的用户身份登录账户 1111-2222-3333。

  10. 在导航窗格的管理下,选择数据湖位置

  11. 数据湖位置页面上,选择注册位置

  12. 注册位置页面上,对于 Amazon S3 路径,输入存储桶名称 s3://awsexamplebucket1

    注意

    您必须键入存储桶名称,因为当您选择浏览时,跨账户存储桶不会显示在列表中。

  13. 对于 IAM 角色,选择您的角色。

  14. 选择注册位置