Athena ワークグループの結果暗号化設定の確認

Athena ワークグループのクエリ結果の暗号化と、設定の優先順位を確認してください。

説明

Athena のクエリ結果には、テーブルの一部のデータ、集計結果、内部の分析情報が含まれる場合があります。S3 を結果保存先とするワークグループでは、結果の暗号化とキー管理の基準を一貫して適用してください。

S3 は新しいオブジェクトを既定で暗号化するため、ワークグループの暗号化ブロックの省略は平文保存を意味しません。カスタマーマネージドキーが必要な場合はキーを明示し、クライアントが基準を変更できないようにワークグループ設定を強制してください。

想定される影響

ユーザーごとに結果保存先やキーが異なると、組織の保護要件を満たせない場合があります。暗号化が有効でも、結果ファイルへの過剰なアクセス権限は別途制限する必要があります。

対処方法

  • result_configuration に必要な encryption_configuration を指定してください。カスタマーマネージドキーを使う場合は SSE_KMS と実際の kms_key_arn を使用してください。
  • enforce_workgroup_configuration = true を設定し、保存先やキーの変更が既存の自動処理に与える影響を確認してください。
  • S3 と KMS の権限を制限し、テストクエリで実際の結果の暗号化とアクセスを確認してください。元のデータと既存の結果ファイルは別途検討してください。

例

参照するバケットとキーは別途定義してください。

個別の結果暗号化設定の省略

hcl
resource "aws_athena_workgroup" "analytics_wg" {
  name = "example"

  configuration {
    enforce_workgroup_configuration    = true
    publish_cloudwatch_metrics_enabled = true

    result_configuration {
      output_location = "s3://${aws_s3_bucket.example.bucket}/output/"
    }
  }
}

結果保存先は指定していますが、暗号化方式は個別に指定していません。バケットに実際に適用される暗号化が、組織の要件に合うか確認してください。

結果暗号化キーと適用基準の設定

hcl
resource "aws_athena_workgroup" "analytics_wg" {
  name = "example"

  configuration {
    enforce_workgroup_configuration    = true
    publish_cloudwatch_metrics_enabled = true

    result_configuration {
      output_location = "s3://${aws_s3_bucket.example.bucket}/output/"

      encryption_configuration {
        encryption_option = "SSE_KMS"
        kms_key_arn       = aws_kms_key.example.arn
      }
    }
  }
}

このワークグループのクエリには、指定した保存先と KMS 暗号化が適用されます。既存の結果ファイルを自動で再暗号化する変更ではありません。

参考資料