首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >认知/ S3用户专用策略

认知/ S3用户专用策略
EN

Stack Overflow用户
提问于 2014-09-05 05:35:03
回答 1查看 2.2K关注 0票数 3

我正在使用AWS为Android与科涅托认证用户(通过登录与亚马逊)到我的AWS资源。我试图做的是像这样设置一个S3桶:

代码语言:javascript
复制
./my-bucket
  ├── first_user@email.com
  └── second_user@email.com

因此,my-bucket桶将有基于用户的电子邮件地址的文件夹。

设置策略的第一个尝试是这样的:

代码语言:javascript
复制
{
  "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}/*"
      ]
    }
  ]
}

作为一种测试,我正试图为这样的用户下载一个文件夹:

代码语言:javascript
复制
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},则可以正常工作。

问题

  1. 这是否有可能像这样使用LWA用户的电子邮件地址来配置它?
  2. 当我提出请求时,是否有一种记录实际发生的参数的方法?

我看过像这样的推荐信,但我不确定哪些是真正适用的。如果我能够以某种方式看到当我提出请求时会遇到什么值,那就太棒了。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-05 18:07:15

在回答你的问题时:

  1. 不,这是不可能这样做的科尼图或网络身份联盟,只要登录与亚马逊。此流中返回的标识符是伪匿名的。认知ID的形式为us-east-1:abcd-123456-xxxxx-xxxxx-xxxx.如果您直接将登录与亚马逊一起使用,则ID的形式为amzn-1234567890.。
  2. 凭据提供程序只需调用getIdentityId方法就可以获得从科尼托获得的ID。如果您使用的是原始web标识联合流,则AssumeRoleWithWebIdentityResult类包含提供者、应用程序/受众和用户id的值。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25679206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档