将 Amazon Data Firehose 流传输到亚马逊 S3 中的 Apache Iceberg Tables 处于预览阶段,可能会发生变化。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 Data Firehose 中的数据保护
Amazon Data Firehose 使用协议对传输中的所有数据进行加密。TLS此外,对于处理期间存储在临时存储中的数据,Amazon Data Firehose 会使用校验和验证来加密数据,AWS Key Management Service并使用校验和验证来验证数据完整性。
如果您有敏感数据,则可以在使用 Amazon Data Firehose 时启用服务器端数据加密。执行此操作的方式取决于您的数据源。
注意
如果您在 AWS 通过命令行界面或访问时需要 FIPS 140-2 经过验证的加密模块API,请使用端点。FIPS有关可用FIPS端点的更多信息,请参阅联邦信息处理标准 (FIPS) 140-2
使用 Kinesis Data Streams 进行服务器端加密
当您将数据从数据生成器发送到数据流时,Kinesis Data Streams 会在存储静态数据之前使用 AWS Key Management Service AWS KMS() 密钥对数据进行加密。当你的 Firehose 流从你的数据流中读取数据时,Kinesis Data Streams 会先解密数据,然后将其发送到亚马逊 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 服务因为 a KMSNotFoundException
、a、a 或 a KMSInvalidStateException
而无法解密记录KMSAccessDeniedException
,则该服务最多会等待 24 小时(保留期)才能解决问题。KMSDisabledException
如果保留期过后,问题仍然存在,服务会跳过已过保留期但无法解密的记录,然后丢弃数据。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 服务设置的加密上下文的格式或内容做出任何假设。