Политика ресурсов API-шлюза: укажите роль IAM как AWS принципал - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь настроить конечную точку шлюза 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?

...