AWS CloudFront での invalidation を IAM ユーザに

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 非対応なのが泣けてくる…

This entry was posted in AWS, CloudFront, IAM. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>