ポリシーに問題はないのに、VPC フローログの配信先の S3 バケットの暗号化で SSE-KMS を使用するとエラーが発生するときの対処方法

2023.02.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

VPC フローログの配信先の S3 バケットの暗号化に SSE-KMS を使用すると、「フローログを作成できません」というメッセージのエラーが発生します。
SSE-S3 を使用して暗号化した場合は配信に成功します。
SSE-KMS キーのポリシー、及びバケットポリシーを確認しましたが、記述に問題となる点は見当たりません。
対処方法を教えてください。

どう対応すればいいの?

バケット暗号化設定の指定で、完全修飾の AWS KMS キー ARN を指定しているか確認してください。
VPC フローログの配信先の S3 バケットの暗号化に SSE-KMS を使用する場合、"キー ID"または"キーエイリアス"ではなく、"キー ARN" を指定する必要があります。

ServerSideEncryptionByDefault - Amazon Simple Storage Service

KMSMasterKeyID AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default encryption. This parameter is allowed if and only if SSEAlgorithm is set to aws:kms.

You can specify the key ID or the Amazon Resource Name (ARN) of the KMS key. However, if you are using encryption with cross-account or AWS service operations you must use a fully qualified KMS key ARN. For more information, see Using encryption for cross-account operations.

For example:

・ Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

・ Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

===== 弊社機械翻訳文(ここから)=====
KMSMasterKeyID AWS Key Management Service (KMS) デフォルトの暗号化に使用するカスタマー AWS KMSキーID。このパラメータは、SSEAlgorithmがaws:kmsに設定されている場合のみ許可されます。
キーIDまたはKMSキーのAmazon Resource Name (ARN)を指定することができます。ただし、クロスアカウントまたはAWSサービス操作で暗号化を使用する場合、完全修飾されたKMSキーARNを使用する必要があります。
===== 弊社機械翻訳文(ここまで)=====

参考資料

Amazon S3 に発行するフローログの作成 - Amazon VPC
ServerSideEncryptionByDefault - Amazon Simple Storage Service
KMS で暗号化された S3 バケットへのクロスアカウントアクセスのトラブルシューティング | AWS re:Post