我想问一下'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]。它不是..
如果你有话要告诉我,请告诉我。 谢谢。
答案 0 :(得分:0)
我发现解决方案甚至不完美。
[account:caller-specified-name]仅作为[123456789012:bob]正常使用 s3策略,而不是JS代码参数。