TerraformでCloudFrontのログをS3に出力しようとしたらエラー「MalformedPolicy: Invalid principal in policy」になった

CloudFrontとS3連携では、以下の記事のようにS3のバケットポリシーにCFのIdentityを設定してあげる必要があります。

CloudFront(CDN)+S3(静的コンテンツ)構成手順概要
S3に静的コンテンツをデプロイし、CDNを使いたい場合って結構あると思います。(画像、js、htmlなどは静的コンテンツになります) ...

このポリシーを設定しようとした際のエラーです。

スポンサーリンク

原因

Identityに誤りがあった。AWSはどうやら、ポリシー設定時に設定内容の検査までやってくれていたようです。

また、設定が正しいのに、同じエラーになることもあります。これはAWSのバグかキャッシュの影響としか考えられませんが、再度実行したところうまくいきました。