📑
AWS CDKでCloudFrontのログ設定でうまく行かなかった
先日からAWS CDKを利用しているのですが、開発環境のAWSと本番環境のAWSでCDKの反映時にCloudFrontのログ設定がエラーになったりならなかったりしたのでメモとして残しておく。
どんなエラーか
ROLLBACK_COMPLETE: Resource handler returned message: "Invalid request provided: AWS::CloudFront::Distribution: The S3 bucket that you specified for CloudFront logs does not enable ACL access: 対象のログBucket
簡単に言えば、ACL Accessを有効にしろという話でした。
解決
色々調べてみたところ、objectOwnershipというプロパティがあるようでこちらでBUCKET_OWNER_ENFORCED
が指定されてるとACLが無効になるそう。AWSはこちらの設定を推奨しているようなので、指定しなかったら勝手にこれに設定されるようになったとか・・・?
以下のようにOwnershipを指定することで上記のエラーは出ないようになりました。
const LogBucket = new s3.Bucket(this, 'CreateLogBucket', {
bucketName: 'LogBucketName',
removalPolicy: cdk.RemovalPolicy.RETAIN,
objectOwnership: s3.ObjectOwnership.BUCKET_OWNER_PREFERRED,
})
やったね。
Discussion