トレイルを作成または更新するときの CloudTrail 暗号化権限エラーを解決する方法を教えてください。
AWS CloudTrail トレイルを作成しようとしたり、既存のトレイルを更新したりしようとすると、"InsufficientEncryptionPolicyException" または "Insufficient permissions" というエラーが表示されます。
解決策
暗号化されたログで CloudTrail を作成または更新するには、CloudTrail に AWS Key Management Service (AWS KMS) 暗号化を使用して Amazon Simple Storage Service (Amazon S3) バケットにログを書き込むアクセス許可が必要です。
"InsufficientEncryptionPolicyException" または "Insufficient permissions to access S3 bucket or KMS key" というエラーを解決するには、AWS KMS キーポリシーを更新してください。次に、必要な CloudTrail アクセス許可を使用して Amazon S3 バケットポリシーを設定します。
CloudTrail の暗号化を許可するように AWS KMS キーポリシーを更新してください
次の手順を実行します。
-
CloudTrail コンソールを開きます。
-
お使いの CloudTrail トレイルを選択してください。
-
[ログファイル SSE-KMS 暗号化] で、AWS KMS キー ID をコピーします。
-
AWS KMS コンソールを開きます。
-
AWS KMS キー ID を検索し、AWS KMS キーリストからキーを選択します。
-
[アクセス許可] を選択します。
-
[キーポリシー] で [ポリシービューに切り替え] を選択します。
-
[編集] を選択します。
-
AWS KMS キーポリシーに次のアクセス許可があることを確認します。
{ "Version": "2012-10-17", "Id": "Key policy created by CloudTrail", "Statement": [ { "Sid": "Enable admin permissions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow CloudTrail to encrypt logs", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName" } } }, { "Sid": "Allow CloudTrail to describe key", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "Allow principals in other account to decrypt log files", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Decrypt", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:111122223333:trail/*" } } } ] }**注:**arn:aws:iam::111122223333:root を AWS Identity and Access Management (IAM) の Amazon リソースネーム (ARN) に置き換えてください。arn:aws:cloudtrail:region:111122223333:trail/trailName を CloudTrail トレイルの ARN に置き換えてください。
S3 バケットポリシーを更新して CloudTrail アクセス許可でログを書き込めるようにする
重要: それぞれ実際のもので、arn:aws:cloudtrail:region:111122223333:trail/trailName を CloudTrail トレイル ARN の ARN に、Bucket_Name を S3 バケット名に、managementAccountID と o-organizationID を AWS Organizations の内容に置き換えてください。プレフィックスを使用する場合は、optionalPrefix を実際のプレフィックスパスに置き換えてください。
組織で証跡を作成した場合は、次のポリシーステートメントで S3 バケットポリシーを更新してください。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::Bucket_Name", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::Bucket_Name/AWSLogs/managementAccountID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName" } } }, { "Sid": "AWSCloudTrailOrganizationWrite", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::Bucket_Name/AWSLogs/o-organizationID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName" } } } ] }
組織で証跡を作成しなかった場合は、代わりに次のポリシーステートメントを使用して S3 バケットポリシーを更新してください。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::Bucket_Name", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName" } } }, { "Sid": "AWSCloudTrailWritePermissions", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::Bucket_Name/optionalPrefix/AWSLogs/111122223333/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName" } } } ] }
(オプション) 既存の証跡の S3 バケットポリシーを更新する
注: このオプションは、新しい証跡を作成するときには使用できません。
次の手順を実行します。
- CloudTrail コンソールを開きます。
- ナビゲーションペインで [証跡] を選択し、トレイル名を選択します。
- [一般的な詳細] で、"Bucket access denied" エラーを探します。
- [ポリシーの修正] をクリックします。次に、ポップアップウィンドウで [ポリシーの修正] を再度クリックします。
注: [ポリシーの修正] 機能はS3バケットポリシーを自動的に更新し、"Bucket access denied" エラーを解決します。ポリシーの変更が反映されるまでにはしばらく時間がかかります。変更が有効になると、コンソールにログ記録が表示されます。S3 バケットにログインして、バケットのポリシーが正しいことを確認することもできます。
