Dav*_*vid 30 amazon-s3 amazon-web-services
我试图允许自己下载S3存储桶中的现有文件.我修改了Bucket Policy,如下所示:
{
"Sid": "someSID",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucketname/AWSLogs/123123123123/*",
"Principal": {
"AWS": [
"arn:aws:iam::123123123123:user/myuid"
]
}
}
Run Code Online (Sandbox Code Playgroud)
我的理解是,添加到策略应该为我的帐户"myuid"提供"bucketname"的完全权限,包括该桶中已有的所有文件.但是,当我尝试通过控制台中出现的链接下载任何这些文件时,我仍然会收到Access Denied错误.
有什么想法吗?
Kar*_*bur 19
大卫,你是对的,但我发现,除了下面的bennie所说的,你还必须向"认证用户"授予视图(或任何你想要的访问权限).

但更好的解决方案可能是编辑用户的策略以仅授予对存储桶的访问权限:
{
"Statement": [
{
"Sid": "Stmt1350703615347",
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::mybucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": ["arn:aws:s3:::mybucket"],
"Condition": {}
}
]
}
Run Code Online (Sandbox Code Playgroud)
第一个块向存储桶中的所有元素授予所有S3权限.第二个块授予存储桶本身的列表权限.
小智 18
步骤1
单击您的存储桶名称,然后在权限选项卡下,确保未选中阻止新的公共存储管理策略
第2步
希望有所帮助
在 s3 中显示网站静态:
这是存储桶策略:
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::example-bucket/*"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
使用以下方法上传任何文件以TransferUtility在 Android 中使用公共可读形式。
transferUtility.upload(String bucketName, String key, File file, CannedAccessControlList cannedAcl)
Run Code Online (Sandbox Code Playgroud)
例子
transferUtility.upload("MY_BUCKET_NAME", "FileName", your_file, CannedAccessControlList.PublicRead);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61985 次 |
| 最近记录: |