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

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

静态加密

您可以在 Amazon Athena 中针对同一地区和数量有限的区域中的 Amazon S3 中的加密数据运行查询。您还可以加密 Amazon S3 中的查询结果以及Amazon Glue数据目录。

您可以加密 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 使用 Amazon Key Management Service 客户管理的密钥进行服务器端加密 (SSE)。
注意

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

CSE-KMS

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

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

不支持的选项

不支持以下加密选项:

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

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

  • 非对称密钥。

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

用于客户端加密的工具

对于客户端加密,请注意有两种工具可用:

这些工具不兼容,使用一种工具加密的数据不能被另一种工具解密。Athena 仅直接支持 Amazon S3 加密客户端。如果您使用 SDK 对数据进行加密,则可以从 Athena 运行查询,但数据将作为加密文本返回。

如果要使用 Athena 查询已使用Amazon加密软件开发工具包,您必须下载并解密您的数据,然后使用 Amazon S3 加密客户端再次对其进行加密。

Amazon S3 中加密数据的权限

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

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

  • Amazon KMS— 如果您将Amazon KMS加密,Athena 用户必须被允许执行特定的Amazon KMS操作以及 Athena 和 Amazon S3 权限。允许这些操作的方式如下:编辑Amazon KMS客户管理的 CMK,用于加密 Amazon S3 中的数据。要将密钥用户添加到相应的Amazon KMS键策略,则可以使用Amazon KMS控制台位于https://console.aws.amazon.com/kms。有关如何将用户添加到Amazon KMS密钥策略,请参阅允许密钥用户使用 CMK中的Amazon Key Management Service开发人员指南

    注意

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

    当使用 Athena 在 Amazon S3 中查询数据集时,如果有大量使用Amazon KMS、Amazon KMS可能会限制查询结果。当有大量的小对象时,这种可能性更大。Athena 已停止重试请求,但可能仍会发生限制错误。在这种情况下,您可以增加 Amazon KMS 的服务配额。有关更多信息,请参阅 。配额中的Amazon Key Management Service开发人员指南

有关将 Amazon S3 与 Athena 结合使用时的权限疑难解答信息,请参阅Permissions的 部分Athena 中的故障排除主题。

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

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