注册加密的 Amazon S3 位置 - AWS Lake Formation

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

注册加密的 Amazon S3 位置

Lake Formation 与 AWS Key Management Service (AWS KMS) 集成,使您能够更轻松地设置其他集成服务,以加密和解密 Amazon Simple Storage Service (Amazon S3) 位置中的数据。

既由客户管理 AWS KMS keys ,又 AWS 托管式密钥 受支持。目前,只有 Athena 支持客户端加密/解密。

在注册 Amazon S3 营业地点时,您必须指定 AWS Identity and Access Management (IAM) 角色。对于加密的 Amazon S3 位置,要么角色必须有权使用加密和解密数据 AWS KMS key,要么密KMS钥策略必须向该角色授予对密钥的权限。

重要

避免注册启用了请求者付费的 Amazon S3 存储桶。对于在 Lake Formation 中注册的存储桶,用于注册存储桶的角色始终被视为请求者。如果存储桶被其他 AWS 账户访问,则如果该角色与存储桶拥有者属于同一个账户,则该存储桶拥有者需要支付数据访问费用。

注册位置的最简单方法是使用 Lake Formation 服务相关角色。此角色授予对该位置的所需读/写权限。您也可以使用一个自定义角色注册位置,前提是该角色符合用于注册位置的角色的要求中的要求。

重要

如果您使用 AWS 托管式密钥 来加密 Amazon S3 位置,则无法使用 Lake Formation 服务相关角色。您必须使用自定义角色并为该角色添加密钥IAM权限。本部分后面将提供相关详细信息。

以下过程说明如何注册使用客户自主管理型密钥或 AWS 托管式密钥加密的 Amazon S3 位置。

开始前的准备工作

查看用于注册位置的角色的要求

注册使用客户自主管理型密钥加密的 Amazon S3 位置
注意

如果KMS密钥或 Amazon S3 位置与数据目录不在同一个 AWS 账户中,请跨 AWS 账户注册加密的 Amazon S3 位置改为按照中的说明进行操作。

  1. https://console.aws.amazon.com/km s 上打开 AWS KMS 控制台,然后以 AWS Identity and Access Management (IAM) 管理员用户或可以修改用于加密位置的密钥策略的KMS用户身份登录。

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

  3. 在KMS密钥详细信息页面上,选择密钥策略选项卡,然后执行以下操作之一,将您的自定义角色或 Lake Formation 服务相关角色添加为KMS密钥用户:

    • 如果显示默认视图(包括 “密钥管理员”、“密钥删除”、“密钥用户” 和 “其他 AWS 账户” 部分),则在 “密钥用户” 部分下,添加您的自定义角色或 Lake Formation 服务相关角色AWSServiceRoleForLakeFormationDataAccess

    • 如果显示密钥策略 (JSON),请编辑策略以将您的自定义角色或 Lake Formation 服务相关角色添加AWSServiceRoleForLakeFormationDataAccess到 “允许使用密钥” 对象,如以下示例所示。

      注意

      如果缺少该对象,请使用示例中显示的权限添加该对象。该示例使用服务相关角色。

      ... { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess", "arn:aws:iam::111122223333:user/keyuser" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, ...
  4. 打开 AWS Lake Formation 控制台,网址为https://console.aws.amazon.com/lakeformation/。以数据湖管理员或具有lakeformation:RegisterResourceIAM权限的用户身份登录。

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

  6. 选择注册位置,然后选择浏览以选择 Amazon Simple Storage Service (Amazon S3) 路径。

  7. (可选,但强烈推荐)选择查看位置权限以查看所选 Amazon S3 位置中所有现有资源及其权限的列表。

    注册所选位置可能会导致 Lake Formation 用户可以访问该位置已有的数据。查看此列表有助于确保现有数据保持安全。

  8. 对于IAM角色,请选择AWSServiceRoleForLakeFormationDataAccess服务相关角色(默认)或符合的用于注册位置的角色的要求自定义角色。

  9. 选择注册位置

有关服务相关角色的更多信息,请参阅 Lake Formation 的服务相关角色权限

注册使用加密的 Amazon S3 地点 AWS 托管式密钥
重要

如果 Amazon S3 位置与数据目录不在同一个 AWS 账户中,请跨 AWS 账户注册加密的 Amazon S3 位置改为按照中的说明进行操作。

  1. 创建用于注册营业地点的IAM角色。确保该角色符合用于注册位置的角色的要求中列出的要求。

  2. 将下面的内联策略附加到该角色。该策略会向该角色授予对密钥的权限。Resource规范必须指定的 Amazon 资源名称 (ARN) AWS 托管式密钥。您可以ARN从 AWS KMS 控制台获取。要获得正确的ARN答案,请确保使用与加密该位置相同的 AWS 账户和区域登录 AWS KMS 控制台。 AWS 托管式密钥

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "<AWS 托管式密钥 ARN>" } ] }
  3. 打开 AWS Lake Formation 控制台,网址为https://console.aws.amazon.com/lakeformation/。以数据湖管理员或具有lakeformation:RegisterResourceIAM权限的用户身份登录。

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

  5. 选择注册位置,然后选择浏览以选择 Amazon S3 路径。

  6. (可选,但强烈推荐)选择查看位置权限以查看所选 Amazon S3 位置中所有现有资源及其权限的列表。

    注册所选位置可能会导致 Lake Formation 用户可以访问该位置已有的数据。查看此列表有助于确保现有数据保持安全。

  7. 对于IAM角色,请选择您在步骤 1 中创建的角色。

  8. 选择注册位置