什么是aws中的[account:caller-specified-name]:aws联合用户的userid

时间:2016-12-30 07:21:15

标签: amazon-web-services amazon-s3 amazon-javascript-sdk

我想问一下'AWS get Federation Token'。

我想做的是 通过使用getFederationToken授权的人 只能访问HIS / HER NAMED AWS S3文件夹,如[bob]或[alice]等。

这就是我所做的。

使用getFederationToken为aws:userid

制作临时凭证
    AWS.config.update({
      accessKeyId: [Removed],
      secreteAccessKey: [Removed],
      region: [Removed]
    });

    var params = {
      Name : 'bob',
      Policy : "{\"Version\": \"2012-10-17\",\"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"s3:ListBucket\"],\"Resource\": [\"arn:aws:s3:::mybucket\"]}, {\"Effect\": \"Allow\", \"Action\": [\"s3:PutObject\", \"s3:GetObject\"],\"Resource\": [\"arn:aws:s3:::mybucket/${aws:userid}/*\"]}]}",
      DurationSeconds: "129600"
    }

    var sts = new AWS.STS({apiVersion: '2011-06-15'});

    sts.getFederationToken(params, function(err, data) {
      if(err) 
        console.log(err, err.stack);
      else
        console.log(data);
    });

但我不知道将从$ {aws:userid}调用什么。 AWS用户指南说当主体是Federated用户时将调用[account:caller-specified-name] ...但是,我检查了它是否是[AWS账户ID(12位数字):bob]。它不是..

如果你有话要告诉我,请告诉我。 谢谢。

1 个答案:

答案 0 :(得分:0)

我发现解决方案甚至不完美。

[account:caller-specified-name]仅作为[123456789012:bob]正常使用 s3策略,而不是JS代码参数。