Amazon Data Firehose のサーバー側暗号化設定の確認

入力ソースと鍵管理要件に合う Firehose の暗号化設定を使用してください。

説明

Amazon Data Firehose の server_side_encryption 設定が無効だと、必要な暗号化構成を適用できなかったり、鍵へのアクセス失敗で配信が遅れたりするおそれがあります。Direct PUT ソースでは AWS_OWNED_CMK または CUSTOMER_MANAGED_CMK を使い、カスタマー管理キーを選ぶ場合は有効な key_arn が必要です。

Firehose は処理中の一時保存データも暗号化します。Kinesis Data Streams をソースにする場合は、そのストリームの暗号化を確認してください。配信先の暗号化とアクセス権限も別途管理する必要があります。

想定される影響

  • 不正な鍵設定で、デプロイやデータの取り込み・配信に支障が生じる可能性があります。
  • カスタマー管理キーや監査に関する組織の要件を満たせないおそれがあります。

対処方法

Direct PUT ストリームでは server_side_encryption.enabled を true に設定し、適切な key_type を選択してください。CUSTOMER_MANAGED_CMK には使用可能な対称 KMS キーの ARN と必要な権限を提供してください。入力ソースに対応する暗号化方式を確認し、適用状態と実際のデータ配信を試験してください。

例

Direct PUT ストリームの暗号化設定の抜粋です。配信先とロールの設定は省略しています。var.firehose_kms_key_arn に、使用可能な対称 KMS キーの ARN を指定してください。

変更前

hcl
resource "aws_kinesis_firehose_delivery_stream" "firehose_stream" {
  name        = "${aws_s3_bucket.logs.bucket}-firehose"
  destination = "extended_s3"

  server_side_encryption {
    enabled  = true
    key_type = "AWS_OWN"
  }
}

AWS_OWN は有効な key_type ではないため、修正が必要です。

変更後

hcl
resource "aws_kinesis_firehose_delivery_stream" "firehose_stream" {
  name        = "${aws_s3_bucket.logs.bucket}-firehose"
  destination = "extended_s3"

  server_side_encryption {
    enabled  = true
    key_type = "CUSTOMER_MANAGED_CMK"
    key_arn  = var.firehose_kms_key_arn
  }
}

CUSTOMER_MANAGED_CMK とキー ARN の入力を使います。キーの状態と権限、ストリームの暗号化状態も確認してください。

参考資料