2011年5月28日土曜日

IAMユーザーはS3やCloudFrontのログをダウンロードできない!?

スズキです

IAMユーザーでS3やCloudFrontのログをS3から取得しようとしたら、
実はできなかった、というお話です。(AWSのサポートにも確認済みです)

IAMユーザーには下記のように、S3のすべてのリソースに対して、
読み取りできるポリシーを与えています。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Resource": "*"
    }
  ]
}

ですが、実際にS3やCloudFrontのログが出力されているS3バケットから、
適当なログファイルをダウンロードしようとすると、
"Access Deny"になってしまいダウンロードできません。
(ファイルのリスト取得まではできます)

他のファイルは取得できるのに、ログファイルが取得できないのは、
ファイルオーナーの問題ではないか?と調べてみると、
ダウンロードできるファイルのオーナーは自分の親アカウントとなっており、
ダウンロードできない(ログ)ファイルのオーナーは"awsdatafeeds"という、
AWSのシステムユーザー(?)がオーナーになっていました。

AWSのサポートからは下記のように回答をいただいています。
CloudFrontのログなどはAWSシステムアカウントで書き込まれるように
なっていまして、現状ご自身がオーナー権限を持っているリソース以外の
ポリシーを適用することが出来ません。このことにより、IAMユーザーに
ログファイルを閲覧や削除する権限を渡せるポリシーを追加することは出来ません。

ということで、S3やCloudFrontのログ取得は親アカウントのみでしかできない、
ということになります。

ご注意を!

できると思ってS3の"Bucket Policy"とかまで調べてしまった...
--------
http://www.suz-lab.com

0 コメント: