静态加密 - 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 中数据集和查询结果的以下加密选项。

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

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

CSE-KMS

使用 AWS KMS 客户管理的密钥进行客户端加密 (CSE)。

有关 AWS KMS 加密 Amazon S3,参见 AWS关键管理服务是什么Amazon简单存储服务(AmazonS3)如何使用AWSKMSAWS Key Management Service Developer Guide.

不支持的选项

不支持以下加密选项:

  • 客户提供密钥 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 密钥策略。有关如何将用户添加到A的信息 AWS KMS 关键政策,请参阅 如何修改关键策略AWS Key Management Service Developer Guide.

    注意

    高级主要策略管理员可以调整关键策略。kms:Decrypt 是 Athena 用户使用加密数据集的最小允许操作。要使用加密的查询结果,则最小允许操作是 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 数据目录中加密元数据的访问权限