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

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

注册加密的 Amazon S3 位置

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

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

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

重要

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

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

重要

如果您使用 Amazon 托管式密钥 (aws/s3) 对 Amazon S3 位置进行加密,则无法使用 Lake Formation 服务相关角色。您必须使用一个自定义角色,并向该角色添加对密钥的 IAM 权限。本部分后面将提供相关详细信息。

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

开始前的准备工作

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

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

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

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

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

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

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

    • 如果显示密钥策略 (JSON) – 编辑策略以将您的自定义角色或 Lake Formation 服务相关角色 AWSServiceRoleForLakeFormationDataAccess 添加到“Allow use of the key”对象,如以下示例所示。

      注意

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

      ... { "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. 打开 Amazon Lake Formation 控制台,网址为 https://console.aws.amazon.com/lakeformation/。以数据湖管理员或具有 lakeformation:RegisterResource IAM 权限的用户身份登录。

  5. 在导航窗格的注册和提取下,选择数据湖位置

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

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

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

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

  9. 选择注册位置

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

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

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

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

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

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

  4. 在导航窗格的注册和提取下,选择数据湖位置

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

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

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

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

  8. 选择注册位置