説明
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 暗号化が適用されます。既存の結果ファイルを自動で再暗号化する変更ではありません。