Как внести в белый список доступ IAM к APIGateway на основе политики - PullRequest
1 голос
/ 05 августа 2020

У меня есть метод, включенный с помощью AuthorizationType: AWS_IAM в ApiGateway. Это работает, когда я предоставляю AccessKey и SecretKey для пользователя IAM с политикой доступа programmati c в заголовке, однако это только половина желаемого результата.

Есть ли способ расширить эту авторизацию до разрешать только пользователям IAM, у которых есть политика, прикрепленная для указанного c метода шлюза API?

Моя первоначальная мысль заключалась в том, чтобы иметь политику ресурсов на шлюзе API, чтобы отклонять все запросы, а затем назначать политики доступа к методам для указанных c Пользователи IAM могут переопределить это, но согласно Policy Evaluation Logi c документации любой ресурс с явным отказом отменяет ресурс с разрешением.

введите описание изображения здесь

Можно ли ограничить методы шлюза API только теми пользователями IAM, у которых есть разрешающая политика для метода, также известная как «белый список»?

1 Ответ

1 голос
/ 05 августа 2020

Вы можете прикрепить политику IAM, которая позволяет пользователю вызывать определенный метод api. Пользователь не может вызвать конечную точку api без разрешений для вызова.

Для тестирования я создал пользователя без разрешений и получил следующую ошибку.

{
    "Message": "User: arn:aws:iam::********1111:user/test-api-gateway-iam-auth is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:ap-southeast-2:********1111:b2r0m0gev9/test/GET/"
}

Я прикрепил следующую политику для пользователя IAM. Политика позволяла пользователю вызывать определенный метод API.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "execute-api:Invoke"
            ],
            "Resource": [
                "arn:aws:execute-api:ap-southeast-2:********1111:xxx/test/GET/"
            ]
        }
    ]
}
...