2

最近、次のポリシーを使用してバケットにアクセスするためのIAMロールを設定しました。

{
  "Statement": [
    {
      "Sid": "Stmt1359923112752",
      "Action": [
        "s3:*"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::<BUCKET_NAME>"
      ]
    }
  ]
}

バケットの内容を正常に一覧表示できますがget_contents_to_filename、特定のキーを呼び出すと、boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden例外が発生します。

S3からキーをフェッチするために追加する必要のあるロールパーミッションはありますか?個々のキーのアクセス許可を確認しましたが、他のユーザーへのアクセスを明示的に禁止するものは何もないようです。所有者に完全なアクセス許可を付与するアクセス許可は1つだけです。

完全を期すために、上記の役割ポリシーを削除すると、バケットへのアクセスが完全に妨げられるため、適用されているポリシーに問題がないことを確認しました。

ありがとう!

4

1 に答える 1

2

バケットだけでなく、バ​​ケット内のオブジェクトに権限を付与する必要があります。したがって、リソースはである必要がありますarn:aws:s3:::<bucketname>/*。それはすべてのオブジェクトに一致します。

残念ながら、それはバケット自体とは一致しません。したがって、バケット関連のアクセス許可arn:aws:s3:::<bucketname>とオブジェクトのアクセス許可をarn:aws:s3:::<bucketname>/*に与えるか、単にアクセス許可をに与える必要がありますarn:aws:s3:::<bucketname>*。後者の場合でも、fredという名前のバケットにアクセス許可を与えると、 freddyという名前のバケットにも同じアクセス許可が与えられます。

于 2013-02-03T20:51:29.523 に答える