Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@hayao_k

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

More than 1 year has passed since last update.

あるアカウントの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

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
hayao_k
2019~2021 APN AWS Top Engineers / AWS Community Builder に選出いただきました。 掲載内容は個人の見解であり、所属する企業を代表するものではありません。
saison_information_systems
モード1(守りのIT)・モード2(攻めのIT)を兼ね備えたバイモーダル・インテグレーターとしてデータ連携プラットフォームのHULFTシリーズ, リンケージサービス, 流通ITサービス, フィナンシャルITサービスを提供します。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?