LoginSignup
2
0

More than 5 years have passed since last update.

SSE-KMS を指定したCloudTrailの証跡作成時エラーの原因と対処

Posted at

あるアカウントのCloudTrail設定時に遭遇したエラー。
メッセージからすぐに原因が分からなかったので残しておきます。

事象

CloudTrailでSSE-KMSによってカスタマーマスターキー(CMK)
を使用したログの暗号化設定を有効化しようとすると、
キーポリシーの CloudTrail の権限が十分でありません。
というエラーメッセージが表示され、証跡の作成/保存ができない。
設定を行うIAMユーザーの権限には問題がないことを確認済み。

image.png

また新規のKMSキーの作成を選択した場合は、キーの自動作成自体は成功している。

発生条件と原因

新規作成ではなく、既存のS3バケットを指定しており、
バケットポリシーでSSE-S3による暗号化を要求している場合に発生する。

具体的には以下のようなポリシーを含む場合。

policy.json
        {
            "Sid": "DenyUnEncryptedObjectUploads",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<your_bucket_name>/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "AES256"
                }
            }
        }

補足

上記は PutOubject リクエストに SSE-S3 によるサーバー側の暗号化を要求する
x-amz-server-side-encryption ヘッダーが含まれていない場合は、
アップロードを拒否するという内容です。
SSE-KMS を有効化した証跡はこの条件に合致しませんので設定時にエラーとなります。

対処

同等のポリシーを維持したい場合は、s3:x-amz-server-side-encryption キーを
AES256 ではなく、aws:kms とする。

policy2.json
        {
            "Sid": "DenyUnEncryptedObjectUploads",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<your_bucket_name>/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "aws:kms"
                }
            }
        }

補足

通常は CloudTrail 専用のバケットを作成すると思いますので、
ポリシーによる暗号化の要求は不要でないかと個人的には感じます。
その場合該当のポリシーを丸ごと削除でも対応できます。

分かってしまえば当然のエラーなのですが、エラーメッセージからは
想像しづらい原因でした。
他の原因でも表示されるメッセージかもしれませんが、参考になれば幸いです。

関連ドキュメント

Amazon S3 で管理された暗号化キーによるサーバー側の暗号化 (SSE-S3) を使用したデータの保護
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingServerSideEncryption.html

AWS KMS で管理されたキー (SSE-KMS) によるサーバー側の暗号化を使用してデータを保護する
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingKMSEncryption.html

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0