AWS CloudFront でクライアントソフトから IAM ユーザが invalidation(キャッシュクリア) を発行するには?
AWS の CloudFront を使用していて S3 へのアップロードなどに
IAM ユーザを使用した場合にクライアントソフト側でエラーが発生して
クライアントソフトから invalidation が行えないということがあったので調べてみました。
CloudFront の API リファレンスを眺めたり Cyberduck のソースや Jets3t のソースまで追っかけました。
下記のポリシー設定を IAM ユーザかグループに追加することで
IAM ユーザから CloudBerry や Cyberduck を使用して invalidation を発行できました。
(S3 へのアクセスはフル権限になっていますが、状況合わせて変更してください。)
CloudFront-contents_operator-201105220704
{
"Statement": [
{
"Action": [
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
},
{
"Action": [
"cloudfront:CreateInvalidation",
"cloudfront:GetDistribution",
"cloudfront:GetStreamingDistribution",
"cloudfront:GetDistributionConfig",
"cloudfront:GetInvalidation",
"cloudfront:ListInvalidations",
"cloudfront:ListStreamingDistributions",
"cloudfront:ListDistributions"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
AWS の S3 や CloudFront のクライアントソフトでは invalidation がいまいち使いにくいです。
AWS の Java SDK は CloudFront 非対応なのが泣けてくる…