本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Data Firehose 使用 TLS 协议对所有传输中数据进行加密。此外,对于处理期间存储在临时存储中的数据,Amazon Data Firehose 使用 AWS Key Management Service 来加密数据,并使用校验和验证来验证数据完整性。
如果有敏感数据,您可以在使用 Amazon Data Firehose 时启用服务器端数据加密。执行此操作的方式取决于您的数据源。
注意
如果您在 AWS 通过命令行界面或 API 进行访问时需要经过 FIPS 140-2 验证的加密模块,请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息,请参阅《美国联邦信息处理标准(FIPS)第 140-2 版》
使用 Kinesis Data Streams 的服务器端加密
当您将数据从数据生成器发送到数据流时,Kinesis Data Streams 会在存储静态数据之前使用 AWS Key Management Service AWS KMS() 密钥对数据进行加密。当 Firehose 流从数据流中读取数据时,Kinesis Data Streams 会先解密数据,然后将其发送到 Amazon Data Firehose。Amazon Data Firehose 根据您指定的缓冲提示在内存中缓冲数据。然后将其传输到目标,而不以静态方式存储未加密数据。
有关如何为 Kinesis Data Streams 启用服务器端加密的信息,请参阅《Amazon Kinesis Data Streams 开发人员指南》中的使用服务器端加密。
使用 Direct PUT 或其他数据来源的服务器端加密
如果您使用或向 Firehose 流发送数据 PutRecordBatch,PutRecord或者使用 AWS IoT Amazon L CloudWatch ogs 或 CloudWatch Events 发送数据,则可以使用该操作开启服务器端加密。StartDeliveryStreamEncryption
要停止 server-side-encryption,请使用StopDeliveryStreamEncryption操作。
您还可以在创建 Firehose 流时启用 SSE。为此,请指定DeliveryStreamEncryptionConfigurationInput何时调用CreateDeliveryStream。
当 CMK 类型为 CUSTOMER_MANAGED_CMK
,时,如果 Amazon Data Firehose 服务因 KMSNotFoundException
、KMSInvalidStateException
、KMSDisabledException
或 KMSAccessDeniedException
而无法解密记录,服务最多会等待 24 小时(保留期),以便您解决问题。如果保留期过后,问题仍然存在,服务会跳过已过保留期但无法解密的记录,然后丢弃数据。Amazon Data Firehose 提供了以下四个 CloudWatch 指标,您可以使用这些指标来跟踪这四个 AWS KMS 异常:
-
KMSKeyAccessDenied
-
KMSKeyDisabled
-
KMSKeyInvalidState
-
KMSKeyNotFound
有关这 4 个指标的更多信息,请参阅使用指标监控亚马逊数据 Firehose CloudWatch 。
重要
要对您的 Firehose 直播进行加密,请使用对称。 CMKsAmazon Data Firehose 不支持非对称。 CMKs有关对称和非对称的信息 CMKs,请参阅开发者指南 CMKs中的关于对称和非对称。 AWS Key Management Service
注意
当您使用客户托管密钥(CUSTOMER_MANAGED_CMK)为 Firehose 流启用服务器端加密(SSE)时,Firehose 服务会在使用您的密钥时设置加密上下文。由于此加密上下文表示使用您 AWS 账户拥有的密钥的情况,因此它会作为您 AWS 账户 AWS CloudTrail 事件日志的一部分进行记录。此加密上下文是由 Firehose 服务生成的系统。您的应用程序不应对 Firehose 服务设置的加密上下文的格式或内容做出任何假设。