Arp*_*t M 2 amazon-s3 amazon-web-services
我们一群朋友正在做一个 Map-Reduce 项目,并且正在处理一个通用数据集。我的朋友已使用他的 AWS 帐户将数据上传到 s3 存储桶,并将 s3 存储桶策略设置为:
{
"Version": "2008-10-17",
"Id": "Policy1417380373111",
"Statement": [
{
"Sid": "Stmt1417380310953",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<bucket-name>/*"
},
{
"Sid": "Stmt1417380367754",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::<bucket-name>/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
注意:<bucket-name>上述策略中的设置为存储桶的名称。
现在我如何将此公共存储桶挂载为我的 aws 账户中的 s3 存储桶之一?
显示的存储桶策略将允许任何人从指定的 Amazon S3 存储桶上传 ( PutObject) 和下载 ( )。GetObject
但是,它不允许列出存储桶,而这很可能是您的映射缩减操作所必需的。因此,我还建议授予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"
]
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
此外,不建议授予对您的存储桶的公共访问权限。相反,您的朋友应该在字段中输入您的帐号Principal,以便您可以访问数据,但其他人无法访问它。
所有这些都将使您的存储桶可访问,但它不会出现在您的 Amazon S3 管理控制台中,您也无法将存储桶“挂载”到您自己的账户。但是,您将能够列出、获取和放置对象。
您可以使用 AWS 命令行界面 (CLI) 对此进行测试。尝试列出共享存储桶的内容,或将文件复制到其中:
$ aws s3 ls s3://<bucket-name>
$ aws s3 cp file.txt s3://<bucket-name>/file.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7746 次 |
| 最近记录: |