Идентификационные данные и роли, подтвержденные разработчиком

Я пытаюсь реализовать "Идентификационные данные разработчика" для AWS, как описано здесь: https://aws.amazon.com/blogs/mobile/amazon-cognito-announcing-developer-authenticated-identities/

Я правильно понимаю основной поток.

Однако я хотел бы иметь возможность получить другую роль в зависимости от моей личности (например, роли на основе правил), чтобы, например, пользователи "Администратор" могли иметь больше прав на ресурсы AWS. Однако, хотя консоль AWS в "Редактировании пула удостоверений" позволяет мне определять роли на основе правил для поставщика удостоверений пула пользователей Cognito, она не позволяет мне этого делать для настраиваемого поставщика аутентификации.

Другими словами, возможно ли то, что описано на этой странице ( http://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html) возможно с удостоверениями, удостоверенными разработчиком?

Как я могу этого достичь?

2 ответа

В настоящее время роли, основанные на правилах, не поддерживаются для удостоверенных личностью разработчиков. К сожалению, поскольку нет безопасного способа привязки токена OIDC, возвращенного из GetOpenIdTokenForDeveloperIdentity к конкретной роли, его можно заменить на любую роль, настроенную для пула, в котором STS не справился с задачей. Мы уже слышали этот запрос раньше и будем рассматривать его как запрос на добавление предполагаемых ролей в токен OIDC, чтобы STS могла подтвердить, что вы принимаете роль, на которую вам разрешено. В настоящее время мы поддерживаем только GetCredentialsForIdentity, если вы используете сопоставление на основе правил.

При использовании удостоверений разработчика после проверки подлинности вы назначаете роль IAM пользователю с помощью STS AssumeRole. Вам понадобится метод для сопоставления пользователей с ролями. Обычно для этого используется DynamoDB. Примечание. Учетные данные (AccessKey, роль и т. Д.), Которые вы используете для вызова STS, нуждаются в достаточном количестве энергии для выдачи требуемой роли IAM. Затем AssumeRole создает пару AccessKey SecretAccessKey для предоставления пользователю. Помните, что это временные учетные данные, срок действия которых вы контролируете.

STS AssumeRole

Другие вопросы по тегам