我正在使用AWS为Android与科涅托认证用户(通过登录与亚马逊)到我的AWS资源。我试图做的是像这样设置一个S3桶:
./my-bucket
├── first_user@email.com
└── second_user@email.com因此,my-bucket桶将有基于用户的电子邮件地址的文件夹。
设置策略的第一个尝试是这样的:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::my-bucket"]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::my-bucket/${www.amazon.com:user_id}",
"arn:aws:s3:::my-bucket/${www.amazon.com:user_id}/*"
]
}
]
}作为一种测试,我正试图为这样的用户下载一个文件夹:
final Map logins = new HashMap();
logins.put("www.amazon.com", token);
credentialsProvider.withLogins(logins);
final TransferManager transferManager = new TransferManager(credentialsProvider);
MultipleFileDownload download = transferManager.downloadDirectory("my-bucket", "first_user@email.com", new File("/sdcard/Download"));然而,当我运行这个程序时,我得到了一个“禁止的”例外。如果我将策略修改为显式引用first_user@email.com而不是${www.amazon.com:user_id},则可以正常工作。
问题
我看过像这样的推荐信,但我不确定哪些是真正适用的。如果我能够以某种方式看到当我提出请求时会遇到什么值,那就太棒了。
提前谢谢。
发布于 2014-09-05 18:07:15
在回答你的问题时:
https://stackoverflow.com/questions/25679206
复制相似问题