Как реализовать RBAC между учетными записями с помощью групп пользователей Cognito и шлюза API?
У меня есть 2 учетные записи AWS. Внешний интерфейс вместе с cognito размещен в учетной записи 1, а серверная часть с API GW размещена в учетной записи 2. Я хочу настроить RBAC, чтобы пользователи в группе Cognito не могли «УДАЛИТЬ» API с помощью cognito. группы. Я создал политику разрешений, как показано ниже, и прикрепил ее к роли, а затем прикрепил роль к группе Cognito. Затем я создал авторизатор для API GW в учетной записи 2, используя пул пользователей Cognito, доступный в учетной записи 1, а затем прикрепил авторизатор к запросу метода удаления API.
Политика отказа, в которой я заменил параметры ресурса данными моей учетной записи/API:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path"
]
}
]
}
Но когда я пытаюсь удалить API, я все еще могу успешно удалить его. Но я ожидаю получить несанкционированный доступ в соответствии с настройкой. Я могу видеть сведения о группе пользователей Cognito, когда расшифровываю ответ маркера, поэтому я предполагаю, что вызов Cognito происходит правильно с API GW, но прикрепленная политика роли/запрета не применяется. Может ли кто-нибудь помочь мне понять, что я делаю неправильно, так как это перекрестная учетная запись, мне нужно сделать что-то еще с ролью IAM, которую я присоединил к группе Cognito, или есть проблема с политикой, которую я использую?