静态加密 - 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)。

有关使用 Amazon S3 进行 AWS KMS 加密的更多信息,请参阅 AWS Key Management Service Developer Guide 中的 AWS Key Management Service 是什么以及 Amazon Simple Storage Service (Amazon S3) 如何使用 AWS KMS

不支持的选项

不支持以下加密选项:

  • 客户提供密钥 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 操作。通过编辑对 Amazon S3 中数据加密使用的 AWS KMS 客户管理的密钥 (CMK) 密钥策略,您可以允许这些操作。执行此操作的最简单方式是使用 IAM 控制台将密钥用户添加到适当的 AWS KMS 密钥策略。有关如何将用户添加到 AWS KMS 密钥策略的信息,请参阅 AWS Key Management Service Developer Guide 中的如何修改密钥策略

    注意

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

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

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

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