静态加密 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

静态加密

您可以在 Amazon Athena 中、在同一区域和在有限数量的区域中对 Amazon S3 中的加密数据运行查询。您还可以加密 Amazon S3 中的查询结果以及 AWS GlueData Catalog中的数据。

您可以对 Athena 中的以下资产进行加密:

注意

用于在 Amazon S3 中查询加密数据集的设置和 Athena 中用于加密查询结果的选项是独立的。每个选项单独启用和配置。您可以对它们各自使用不同的加密方法或密钥。这意味着,读取 Amazon S3 中的加密数据不会自动加密 Amazon S3 中的 Athena 查询结果。反之亦然。加密 Amazon S3 中的 Athena 查询结果不会加密 Amazon S3 中的底层数据集。

支持的 Amazon S3 加密选项

Athena 支持 Amazon S3 中数据集和查询结果的以下加密选项。跨区域支持仅限于特定区域。有关更多信息,请参阅跨区域查询

加密类型 描述 跨区域支持
SSE-S3 使用 Amazon S3 托管密钥进行服务器端加密 (SSE)。
SSE-KMS 使用 AWS Key Management Service 客户管理的密钥进行服务器端加密 (SSE)。
注意

使用此加密类型,Athena 不需要您在创建表时指示数据是加密的。

CSE-KMS

使用 AWS KMS 客户托管密钥进行客户端加密 (CSE)。在 Athena 中,此选项要求您将 CREATE TABLE 语句与指定 TBLPROPERTIES'has_encrypted_data'='true' 子句一起使用。 有关更多信息,请参阅基于 Amazon S3 中的加密数据集创建表

有关使用 AWS KMS 进行 Amazon S3 加密的更多信息,请参阅 中的什么是 AWS Key Management ServiceAmazon Simple Storage Service (Amazon S3) 如何使用 AWS KMS。AWS Key Management Service Developer Guide有关将 SSE-KMS 或 CSE-KMS 与 Athena 结合使用的更多信息,请参阅启动:。 Amazon Athena 从 大数据博客添加了对查询加密数据的支持AWS。

不支持的选项

不支持以下加密选项:

  • 客户提供密钥 SSE (SSE-C)。

  • 使用客户端主密钥进行客户端加密。

  • 非对称密钥。

要比较 Amazon S3 加密选项,请参阅 中的使用加密保护数据。Amazon Simple Storage Service 开发人员指南

对 Amazon S3 中加密数据的权限

根据在 Amazon S3 中使用的加密类型,可能需要向 Athena 中使用的策略添加权限(也称为“允许”操作):

  • SSE-S3 – 如果使用 SSE-S3 加密,则 Athena 用户无需在其策略中添加权限。对相应的 Amazon S3 位置和 Athena 操作具有适当的 Amazon S3 权限就足够了。有关允许适当 Athena 和 Amazon S3 权限的策略的更多信息,请参阅有关用户访问权限的 IAM 策略Amazon S3 权限

  • AWS KMS – 如果使用 AWS KMS 加密,则除了 Athena 和 Amazon S3 权限之外,还必须允许 Athena 用户执行特定 AWS KMS 操作。您可以通过编辑用于加密 AWS KMS 中的数据的 CMKs 客户托管 Amazon S3 的密钥策略来允许这些操作。要将密钥用户添加到适当的 AWS KMS 密钥策略,您可以使用 AWS KMS 上的 https://console.amazonaws.cn/kms 控制台。有关如何将用户添加到 AWS KMS 密钥策略的信息,请参阅 中的允许密钥用户使用 CMK。AWS Key Management Service Developer Guide

    注意

    高级密钥策略管理员可以调整密钥策略。kms:Decrypt 是 Athena 用户使用加密数据集的最小允许操作。要使用加密的查询结果,则最小允许操作是 kms:GenerateDataKeykms:Decrypt

    当使用 Athena 在 Amazon S3 中查询数据集时,如果有大量使用 AWS KMS 加密的对象,则 AWS KMS 可能会限制查询结果。当具有大量小对象时,这种可能性更大。Athena 将停止重试请求,但仍可能出现限制错误。在这种情况下,您可以增加 AWS KMS 的服务配额。有关更多信息,请参阅 https://docs.amazonaws.cn/kms/latest/developerguide/limits.html#requests-per-second 中的配额AWS Key Management Service Developer Guide。

针对 AWS Glue 数据目录中加密元数据的权限

如果加密 AWS Glue 数据目录中的元数据,则必须向用于访问 Athena 的策略添加 "kms:GenerateDataKey""kms:Decrypt""kms:Encrypt" 操作。有关信息,请参阅针对 AWS Glue 数据目录中加密元数据的访问权限