对为什么没有检查答案感到困惑?
让我们分解上述解决方案中的每个政策声明:
此政策声明 from 适用于存储桶的内容,但不适用于 buck 本身。这可能不是问题所要求的,因为您看不到存储桶中的内容。
{
"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": {}
}
这两条语句策略derived from 授予对 (arn:aws:s3:::your_bucket_here/) 存储桶的只读访问权限只读,但仍允许对存储桶的内容进行 CRUD 操作 (arn:aws:s3:::your_bucket_here/*)。
{
"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 商店的客户端,上述内容非常有用。如果您的客户端直接访问存储而不是存储桶,那么您需要访问根目录下的存储桶列表。