Переменная политики IAM для групп Cognito - PullRequest
0 голосов
/ 17 октября 2018

Моя ситуация такова:

Я пытаюсь контролировать доступ к корзине S3, используя домашние каталоги, подобные unix, через AWS Cognito.Эти домашние каталоги должны быть доступны для групп пользователей, а не для каждого отдельного пользователя.Например:

s3-bucket/home/group1  
s3-bucket/home/group2
s3-bucket/home/group3

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

Прежде чем использовать расширенный поток, я мог ограничить роль дополнительной политикой через вызов assumeRoleWithWebIdentity с STS.Однако при использовании только cognito он ожидает применения только роли.

Вместо непосредственного применения политики к предмету идентификатора токена (например, ${cognito-identity.amazonaws.com:sub}), я бы предпочел использовать группу (как из ${cognito-identity.amazonaws.com:cognito:groups}), так что мне не нужно создавать роль для каждой новой группы, а сама переменная поможет определить область действия ресурса.

Кому-нибудь повезло с этим?Или вообще использовать строковые массивы / наборы в определениях ресурсов IAM?Я пытался сделать что-то вроде

{"Fn::Select": [0, "${cognito-identity.amazonaws.com:cognito:groups}"]}

, но облачность жалуется на

Template error: Fn::Select requires a list argument with two elements: an integer index and a list.

Спасибо!

PS Я вижу эту страницу , в которой говорится, что для cognito не существует специфичных для службы ключей для использования в политиках, но это не совсем правильно, поскольку я видел, как люди используют sub aud amr и т. д. в политиках в других примерах в Интернете, хотя полное руководство кажется недостаточно документированным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...