[英]Cognito / S3 User Specific Policies
我正在使用AWS SDK for Android和Cognito来验证用户(通过使用Amazon登录)到我的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}
它可以正常工作。
我见过像这样的引用,但我不确定哪些实际适用。 如果我以某种方式能够看到我提出请求时遇到的值,那将是非常棒的。
提前致谢。
在回答你的问题时:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.