Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services aws联邦用户的aws:userid中的[account:caller specified name]是什么_Amazon Web Services_Amazon S3_Amazon Javascript Sdk - Fatal编程技术网

Amazon web services aws联邦用户的aws:userid中的[account:caller specified name]是什么

Amazon web services aws联邦用户的aws:userid中的[account:caller specified name]是什么,amazon-web-services,amazon-s3,amazon-javascript-sdk,Amazon Web Services,Amazon S3,Amazon Javascript Sdk,我想问一下“AWS获取联盟令牌” 我想做的是 使用getFederationToken授权的人 只能访问他/她命名的AWS S3文件夹,如[bob]或[alice]等 这就是我所做的 使用getFederationToken for aws:userid创建临时凭据 AWS.config.update({ accessKeyId: [Removed], secreteAccessKey: [Removed], region: [Removed]

我想问一下“AWS获取联盟令牌”

我想做的是 使用getFederationToken授权的人 只能访问他/她命名的AWS S3文件夹,如[bob]或[alice]等

这就是我所做的

使用getFederationToken for 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用户指南说,当主体是联邦用户时,将调用[account:caller specified name]。。。但是,我检查了它是否是[AWS帐户ID(12位数字):bob]。不是

如果你有什么事要告诉我,请告诉我。
谢谢。

我找到了一个甚至不完美的解决方案

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