Я пытаюсь настроить конечную точку шлюза API с помощью политики ресурсов, которая разрешает доступ к определенной роли c IAM в моей учетной записи. Роль IAM - это кросс-учетная запись, настроенная с помощью политики доверия, которая позволяет AssumeRole указывать c пользователя-участника IAM из другой учетной записи .
В политике ресурсов шлюза API, когда я Установите для AWS принципала роль ARN: arn:aws:iam::********:role/myRole
, я получаю следующую ошибку 403 при вызове API:
User: arn:aws:sts::********:assumed-role/myRole/mySession is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:us-west-2:********:********/test/POST/echo
Но, если я изменю принципала AWS на временного пользователя STS ARN: arn:aws:sts::********:assumed-role/myRole/mySession
, тогда я могу успешно вызвать API.
Вот политика ресурса, которая не работает:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::********:role/myRole"
},
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:us-west-2:********:********/*"
}
]
}
Вот политика ресурса это работает:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:sts::********:assumed-role/myRole/mySession"
},
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:us-west-2:********:********/*"
}
]
}
Можно ли использовать роли IAM в качестве AWS принципалов для политики ресурсов шлюза API?