Я получаю сообщение об ошибке при звонке в assume role
метод STS. В нем говорится, что пользователь не имеет права выполнять sts:AsumeRole
на ресурсе xxx
.Как разрешить доступ к AWS STS AssumeRole
я сделал следующее:
- Я создал роль доступа к S3 ведро.
- Я провел тест по тренажеру политики и работаю отлично
- Я создал новую группу, и в ней, я создал новую политику, которая позволяет все StS действия, над всеми ресурсами.
- Я проверил тест с симулятором политики, чтобы выполнить роль sts, указывая на ARN роли, созданной на первом шаге; и она отлично работает
- Я создал новый пользователь, и поместить его в группе, созданной на шаге 3
- С полномочиями нового пользователя, я стараюсь, чтобы получить новые полномочия используя петла предполагает роль, но бросить меня в ошибка, заявленная моим пользователем, не является , уполномоченным на выполнение sts: AssumeRole
Что я делаю неправильно?
политики в группе
{
"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
Это помогло мне. В нем указывается, как устанавливать значения в Principal. http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html –