选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

静态加密

聚焦模式
静态加密 - Amazon Athena

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

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

注意

使用 Athena 读取加密的表时,Athena 使用为表数据指定的加密选项,而不是查询结果的加密选项。如果为查询结果和表数据配置了单独的加密方法或密钥,Athena 将读取表数据,而不使用加密选项和用于加密或解密查询结果的密钥。

但是,如果使用 Athena 将数据插入到具有加密数据的表中,则 Athena 将使用为查询结果指定的加密配置来加密插入的数据。例如,如果您为查询结果指定 CSE_KMS 加密,则 Athena 将使用与用于查询结果加密的相同 AWS KMS 密钥 ID,通过 CSE_KMS 对插入的表数据进行加密。

支持的 Amazon S3 加密选项

Athena 支持 Amazon S3 中数据集和查询结果的以下加密选项。

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

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

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

加密建议

使用客户自主管理型 KMS 密钥来加密和解密表数据以及查询结果时,我们建议您使用 SSE-KMS 加密方法,而不是 SSE-S3 或 CSE-KMS 加密方法。SSE-KMS 很好地平衡了控制力、简单性和性能,因此是在使用托管式 KMS 密钥进行数据加密时的推荐方法。

SSE-KMS 相比 SSE-S3 的优势

  • SSE-KMS 允许您指定和管理自己的密钥,从而让您拥有更大的控制力。您可以定义密钥策略、监督密钥生命周期和监控密钥使用情况。

SSE-KMS 相比 CSE-KMS 的优势

  • 与 CSE-KMS 需要持续维护 S3 加密客户端不同,SSE-KMS 无需额外的基础设施来加密和解密数据。

  • 由于加密算法的不断发展,CSE-KMS 可能会面临新旧 S3 加密客户端之间的兼容性问题,而 SSE-KMS 则避免了这一问题。

  • 与 CSE-KMS 相比,SSE-KMS 在加密和解密过程中对 KMS 服务进行密钥检索的 API 调用更少,因此性能更高。

不支持的选项

不支持以下加密选项:

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

  • 使用客户端托管式密钥进行客户端加密。

  • 非对称密钥。

若要比较 Amazon S3 加密选项,请参阅《Amazon Simple Storage Service 用户指南》中的 使用加密保护数据

客户端加密的工具

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

  • Amazon S3 加密客户端 – 此操作工具仅加密 Amazon S3 的数据,并且受 Athena 支持。

  • AWS Encryption SDK – 软件开发工具包可在 AWS 的任何地方加密数据但并不直接受 Athena 支持。

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

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

Amazon S3 中加密数据的权限

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

  • SSE-S3 - 如果使用 SSE-S3 加密,则 Athena 用户无需在其策略中添加权限。对相应的 Amazon S3 位置和 Athena 操作具有适当的 Amazon S3 权限就足够了。要详细了解允许适当 Athena 和 Amazon S3 权限的策略,请参阅Amazon Athena 的 AWS 托管策略控制从 Athena 对 Amazon S3 的访问

  • AWS KMS - 如果使用 AWS KMS 加密,则除了 Athena 和 Amazon S3 权限之外,还必须允许 Athena 用户执行特定 AWS KMS 操作。通过编辑对 Amazon S3 中数据加密使用的 AWS KMS 客户管理的密钥 (CMK) 密钥策略,您可以允许这些操作。要将密钥用户添加到相应的 AWS KMS 密钥策略,则可以使用 AWS KMS 控制台,网址:https://console.aws.amazon.com/kms。有关如何将用户添加到 AWS KMS 密钥策略,请参阅《AWS Key Management Service 开发人员指南》中的允许密钥用户使用 CMK

    注意

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

    使用 Athena 查询 Amazon S3 中数据集时,如果该数据集具有大量使用 AWS KMS 加密的对象,则 AWS KMS 可能会对查询结果进行节流。当有大量的小对象时,这种可能性更大。Athena 已停止重试请求,但可能仍会发生节流错误。如果您在处理大量加密对象时遇到此问题,则可以选择启用 Amazon S3 存储桶密钥来减少对 KMS 的调用次数。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的 使用 Amazon S3 存储桶密钥降低 SSE-KMS 的成本。另一种选择是增加 AWS KMS 的服务配额。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的配额

有关将 Amazon S3 与 Athena 结合使用时的权限疑难解答信息,请参阅 在 Athena 中进行排查问题 主题的 权限 部分。

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

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

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。