Amazon Data Firehose のデータ保護
Amazon Data Firehose は TLS プロトコルを使用して転送中のすべてのデータを暗号化します。さらに、処理中に中間ストレージに保存されたデータについては、Amazon Data Firehose は AWS Key Management Service を使用してデータを暗号化し、チェックサム検証を使用してデータの整合性を検証します。
機密データがある場合、Amazon Data Firehose を使用するときにサーバー側のデータ暗号化を有効にすることができます。これを行う方法は、データソースによって異なります。
注記
コマンドラインインターフェイスまたは API を使用して AWS にアクセスするときに FIPS 140-2 検証済みの暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、「連邦情報処理規格 (FIPS) 140-2
Kinesis Data Streams を使用したサーバー側の暗号化
データプロシージャのデータをデータストリームに送信すると、Kinesis Data Streams は AWS Key Management Service (AWS KMS) キーを使用して、保管中のデータを暗号化してから保存します。Firehose ストリームがデータストリームからデータを読み取ると、Amazon Data Streams はまずデータを復号してから Kinesis Data Firehose に送信します。Amazon Data Firehose は、指定したバッファリングのヒントに基づいてデータをメモリにバッファリングします。その後、暗号化されていないデータを保存することなく、送信先に配信します。
Kinesis Data Streams でサーバー側の暗号化を有効にする方法については、Amazon Kinesis Data Streams 開発者ガイドの「サーバー側の暗号化の使用」を参照してください。
Direct PUT または他のデータソースを使用したサーバー側の暗号化
PutRecord または PutRecordBatch を使用してデータを Firehose ストリームに送信した場合や、AWS IoT、Amazon CloudWatch Logs、または CloudWatch Events を使用してデータを送信した場合、StartDeliveryStreamEncryption オペレーションを使用してサーバー側の暗号化を有効にできます。
サーバー側の暗号化を停止するには、StopDeliveryStreamEncryption オペレーションを使用します。
Firehose ストリームを作成するときに SSE を有効にすることもできます。それを行うには、CreateDeliveryStream を呼び出すときに、DeliveryStreamEncryptionConfigurationInput を指定します。
CMK のタイプが CUSTOMER_MANAGED_CMK
のときに、KMSNotFoundException
、KMSInvalidStateException
、KMSDisabledException
、または KMSAccessDeniedException
のエラーのために Amazon Data Firehose サービスがレコードを復号できない場合、問題が解決されるまでサービスは最大 24 時間 (保持期間) 待機します。保持期間を超えて問題が解決されない場合、サービスは、保持期間を超えて復号できなかったレコードをスキップし、データを破棄します。Amazon Data Firehose は、次の 4 つの CloudWatch メトリクスを提供しており、これを使用して 4 つの AWS KMS の例外を追跡できます。
-
KMSKeyAccessDenied
-
KMSKeyDisabled
-
KMSKeyInvalidState
-
KMSKeyNotFound
これら 4 つのメトリクスの詳細については、「CloudWatch メトリクスを使用して Amazon Data Firehose をモニタリングする」を参照してください。
重要
Firehose ストリームを暗号化するには、対称 CMK を使用します。Amazon Data Firehose は非対称 CMK をサポートしていません。対称 CMK と非対称 CMK の詳細については、AWS Key Management Service 開発者ガイドの「対称 CMK と非対称 CMK について」を参照してください。
注記
カスタマーマネージドキー (CUSTOMER_MANAGED_CMK) を使用して Firehose ストリームのためにサーバー側の暗号化 (SSE) を有効にすると、Firehose サービスは、キーを使用するたびに暗号化コンテキストを設定します。この暗号化コンテキストは、AWS アカウントによって所有されるキーが使用されたことを表すため、AWS アカウントの AWS CloudTrail イベントログの一部としてログ記録されます。この暗号化コンテキストは、Firehose サービスによって生成されたシステムです。アプリケーションは、Firehose サービスによって設定された暗号化コンテキストの形式やコンテンツについて、いかなる想定もすべきではありません。