我想问一下“AWS 获取联邦令牌”。
我想要做的是使用 getFederationToken 授权的人只能访问他/她命名的 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用户指南说当委托人是联合用户时将调用[account:caller-specified-name]......但是,我检查了它是否是[AWS account ID (12-digit number):bob]。它不是..
如果你有什么要告诉我的,请告诉我。谢谢你。