Мне было интересно, как использовать simulate-principal-policy
с использованием интерфейса командной строки AWS для предполагаемой роли.
Чтобы обеспечить некоторый контекст, как часть запуска моего приложения, я хочу убедиться, что приложение имеет необходимые разрешениячтобы получить доступ ко всем необходимым ресурсам AWS.Я делаю это, получая идентификатор вызывающего абонента с помощью aws sts get-caller-identity
и использую возвращенный идентификатор вызывающего абонента в качестве источника политики arn для запроса simulate-principal-policy
.
Когда наше приложение работает в EC2, оно использует предполагаемую роль.поэтому get-caller-identity
возвращает предполагаемую роль arn.
Если я попытаюсь выполнить simulate-principal-policy
, используя моего пользователя arn в качестве источника политики arn, команда будет работать нормально.
aws iam simulate-principal-policy --action-names "sqs:Receivemessage" --policy-source-arn "arn:aws:sts::123456789021:user/divesh"
Однакопопытка выполнить указанную выше команду с использованием предполагаемой роли сообщает об ошибке.
aws iam simulate-principal-policy --action-names "sqs:Receivemessage" --policy-source-arn "arn:aws:sts::123456789021:assumed-role/development/development-session"
An error occurred (InvalidInput) when calling the SimulatePrincipalPolicy operation: Invalid Entity Arn: arn:aws:sts::123456789021:assumed-role/development/development-session does not clearly define entity type and name.
Наше приложение работает в кластере Kubernetes и использует kiam , чтобы связать роли IAM с модулями.