显示的存储桶策略将允许任何人上传 (PutObject
)并下载(GetObject
) 来自指定的 Amazon S3 存储桶。
但是,它不允许列出存储桶,而这很可能是您的映射缩减操作所必需的。所以,我也建议授予ListBucket
存储桶本身的权限:
{
"Id": "SomeID",
"Statement": [
{
"Sid": "SomeID",
"Action": [
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::<bucket-name>",
"arn:aws:s3:::<bucket-name>/*"
],
"Principal": {
"AWS": [
"123456789012"
]
}
}
]
}
此外,不建议授予对您的存储桶的公共访问权限。相反,您的朋友应该在Principal
字段,以便您可以访问数据,但其他人无法访问它。
所有这一切都会让你的水桶无障碍,但它不会出现在您的 Amazon S3 管理控制台中,您也不能将存储桶“挂载”到您自己的账户。但是,您将能够列出、获取和放置对象。
您可以使用 AWS 命令行界面 (CLI) 对此进行测试。尝试列出共享存储桶的内容,或将文件复制到其中:
$ aws s3 ls s3://<bucket-name>
$ aws s3 cp file.txt s3://<bucket-name>/file.txt