注册加密 Amazon S3 AWS帐户之间的位置 - AWS Lake Formation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

注册加密 Amazon S3 AWS帐户之间的位置

AWS Lake Formation 与集成 AWS Key Management Service (人AWS KMS),以便更容易地设置其他集成服务来加密和解密数据 Amazon Simple Storage Service (人Amazon S3)位置。

注意

客户管理的客户主密钥(CMK)和AWS管理 CMKs 受支持。不支持客户端加密/解密。

本节说明如何注册 Amazon S3 地点:

  • 中的数据 Amazon S3 位置使用在中创建的CMK进行加密 AWS KMS.

  • 的 Amazon S3 位置不同 AWS 帐户作为 AWS Glue 数据目录.

  • CMK是或不是相同的 AWS 帐户作为 Data Catalog.

注册 AWS KMS–已加密 Amazon S3 桶装 AWS 帐户B,使用 AWS Identity and Access Management (人IAM)角色 AWS 帐户A需要以下权限:

  • 帐户A中的角色必须授予帐户B中bucket的权限。

  • 帐户B中的bucket策略必须授予帐户A中角色的访问权限。

  • 如果CMK在帐户B中,则关键策略必须授予帐户A中角色的访问权限,帐户A中的角色必须授予CMK的权限。

在下面的过程中,您在 AWS 包含 Data Catalog (前一个讨论中的帐户A)。然后,您可以使用此角色注册位置。 Lake Formation 假定此角色在访问 Amazon S3. 假定角色对CMK具有所需权限。因此,您无需向使用ETL作业或集成服务(例如, Amazon Athena.

注意

在具有加密的跨帐户场景中,您不能使用 Lake Formation 服务链接角色以注册位置。

要注册加密的 Amazon S3 跨 AWS 账户

  1. 在同一 AWS 帐户作为 Data Catalog,登录 AWS 管理控制台 并打开 IAM 控制台位于 https://console.aws.amazon.com/iam/.

  2. 创建新角色或查看符合 用于注册地点的角色要求. 确保角色包括授予 Amazon S3 位置的权限。

  3. 如果CMK与 Data Catalog,在角色中添加向CMK授予所需权限的内联策略。以下是示例策略。Replace <cmk-region><cmk-account-id> 使用CMK的地区和账号。Replace <key-id> 密钥ID为。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:<cmk-region>:<cmk-account-id>:key/<key-id>" } ] }
  4. 在 Amazon S3 控制台,添加bucket策略,授予所需的 Amazon S3 角色的权限。下面是一个示例存储桶策略。Replace <catalog-account-id> 与 AWS 的帐号 Data Catalog,<role-name> 以您的角色名称命名,以及 <bucket-name> 名称。

    { "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::<catalog-account-id>:role/<role-name>" }, "Action":"s3:ListBucket", "Resource":"arn:aws:s3:::<bucket-name>" }, { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::<catalog-account-id>:role/<role-name>" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource":"arn:aws:s3:::<bucket-name>/*" } ] }
  5. 英寸 AWS KMS,将角色添加为CMK的用户。

    1. 访问 https://console.amazonaws.cn/kms,打开 AWS KMS 控制台。然后,以 IAM 管理员或作为可以修改用于加密位置的CMK的密钥策略的用户。

    2. 在导航窗格中,选择 客户管理密钥,然后选择CMK的名称。

    3. 在CMK详细信息页面的 关键政策 选项卡,如果关键策略的JSON视图未显示,请选择 切换到策略视图.

    4. 关键政策 部分中,选择 编辑,并将角色的Amazon资源名称(ARN)添加到 Allow use of the key 对象,如以下示例所示。

      注意

      如果缺少该对象,请使用示例中所示的权限添加该对象。

      ... { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<catalog-account-id>:role/<role-name>" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, ...

      有关更多信息,请参阅 允许其他帐户中的用户使用CMKAWS关键管理服务开发人员指南.

  6. 访问 https://console.amazonaws.cn/lakeformation/,打开 AWS Lake Formation 控制台。登录 Data Catalog AWS 帐户作为数据湖管理员。

  7. 在导航窗格中,位于 注册并拷贝,选择 数据湖位置.

  8. 选择 注册位置.

  9. 注册位置页面,对于 AmazonS3路径,输入位置路径为 s3://<bucket>/<prefix>。更换 <bucket> 桶形名称,<prefix> 位置的其余路径。

    注意

    您必须输入路径,因为在选择 浏览.

  10. 对于 IAM角色,请从步骤2中选择角色。

  11. 选择 注册位置.