AWS IAM STS (boto 経由) を使用して、S3 バケットにアクセスするための認証情報を作成しています。次のポリシーのどこが間違っているのか途方に暮れています。ポリシーを可能な限り単純化しましたが、それでも予期しない結果が得られます。
ユーザーのトークンを取得したら、次のポリシーをアタッチします。
user_policy_string = r'{"Statement":[{"Effect":"Allow","Action": "s3:*","Resource":"arn:aws:s3:::*"}]}'
これは機能しますが、明らかに少し寛容すぎます。これらの資格情報に関連付けられているアクセス許可を絞り込む際に、同じポリシーを使用しようとしますが、バケットを指定します。
user_policy_string = r'{"Statement":[{"Effect":"Allow","Action": "s3:*","Resource":"arn:aws:s3:::buck_binary_bucket_bay-earth-d5a/*"}]}'
ここでは、S3 にアクセスしようとすると 403 エラーが発生します。AWS docs に基づいて、これがポリシー内の特定のバケットに対処する方法であると確信しているため、この制限の原因が何であるかについて途方に暮れています. バケットを間違って参照していますか?
S3 コンソールでは、ポリシーは空です (完全に許可されたポリシーも追加しようとしました)。STS トークンの生成に使用される AWS アカウントのポリシーは次のとおりです。
"Statement": [
{
"Effect": "Allow",
"Action": "sts:GetFederationToken",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iam:GetUser",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}