なぜ答えがチェックされなかったのか混乱していますか?
上記のソリューションの各ポリシーステートメントを分解してみましょう。
このポリシーステートメントから降圧自体バケットの内容に適用されますが、ありません。バケツの中身が見えないので、これはおそらく質問が求めたものではありません。
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:GetObjectAcl",
"s3:PutObjectAcl",
"s3:ListBucket",
"s3:GetBucketAcl",
"s3:PutBucketAcl",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::your_bucket_here/*",
"Condition": {}
}
から派生したこの2つのステートメントポリシーは、(arn:aws:s3:::your_bucket_here/
)readonlyでバケットへの読み取り専用アクセスを許可しますが、バケットのコンテンツ(arn:aws:s3:::your_bucket_here/*
)でCRUD操作を許可します。
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"
],
"Resource": "arn:aws:s3:::your_bucket_here",
"Condition": {}
},
{
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectAclVersion"
],
"Resource": "arn:aws:s3:::your_bucket_here/*",
"Condition": {}
}
ただし、ポリシーには次のステートメントが含まれているため、ユーザーはエンドポイントですべてのバケットを表示できます。これはおそらく質問が求めたものではありません。
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*",
"Condition": {}
}
ただし、上記はS3ストアをブラウザするクライアントを使用する場合に非常に役立ちます。クライアントがバケットではなくストアに直接アクセスする場合、ルートにあるバケットのリストにアクセスする必要があります。