3
STSのassume role
メソッドを呼び出しているときにエラーが発生します。ユーザーはxxx
にsts:AsumeRole
を実行する権限がありません。AWS STS AssumeRoleへのアクセスを有効にする方法
私は次のことをやった:
- 私はS3バケットにアクセスするための役割を作成しました。
- 私はポリシーシミュレータを超えるテストを実行し、私は新しいグループを作成し、その中に、私は は、すべてのリソースをすべてのSTSアクションを、可能にする新しいポリシーを作成し
- 正常に動作します。
- ポリシーシミュレータでsts assum roleにテストを実行し、 をステップ1で作成したロールのARNに指定しました。そしてそれは私が新しいユーザーを作成し、新しいユーザーの資格情報を使用して、ステップ3
- で作成したグループに入れて、私はSTS asume役割を使用して新しい資格情報 を取得しようとするが、私投げる
- 正常に動作します私のユーザーがそうでないと言っているエラー st:AssumeRole
私は間違って何をしていますか?作成した役割に設定された信頼relantionship:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "some-large-id",
"Effect": "Allow",
"Action": [
"sts:*"
],
"Resource": [
"*"
]
}
]
}
政策的な役割で、グループ内
ポリシーは
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "another-large-id",
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::my-bucket-name/*"
]
}
]
}
そして最後には、行方不明になった段階であり、この
let policy = {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "new-custom-id",
"Effect": "Allow",
"Action": ["s3:PutObject"],
"Resource": ["arn:aws:s3:::my-bucket-name/*"]
}
]
};
let params = {
DurationSeconds: 3600,
ExternalId: 'some-value',
Policy: JSON.stringify(policy),
RoleArn: "arn:aws:iam::NUMBER:role/ROLE-NAME", //Cheked, role is the same that step one
RoleSessionName: this.makeNewSessionId()
};
let sts = new AWS.STS({ apiVersion: '2012-08-10' });
sts.assumeRole(params, (err, data) => {
if(err) console.log(err);
else console.log(data);
});
ああ、神様ありがとうございました。 – mikejones1477
これは私を助けました。プリンシパル内で値を設定する方法を指定します。 http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html –