Я пытаюсь создать политику для роли IAM для моих федеративных пользователей (аутентификация через моего поставщика SAML).Я слежу за Создание роли для федерации SAML 2.0 (Консоль) - Управление идентификацией и доступом AWS :
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRoleWithSAML", "Principal": {"Federated": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:saml-provider/PROVIDER-NAME"}, "Condition": {"StringEquals": {"SAML:aud": "https://signin.aws.amazon.com/saml"}} } }
Но я получаю следующую ошибку:
This policy contains the following error: Has prohibited field Principal For more information about the IAM policy grammar, see AWS IAM Policies
Я пытался Google, но безуспешно.Ответ на Политика доверия AWS запретил поле Принципал - Переполнение стека также не помогло.Может кто-нибудь сказать мне, как я могу создать политику и роль для моего провайдера SAML?
Проблема решена. Документация старая и вводящая в заблуждение. Если вы создаете роль для поставщика SAML через консоль IAM, автоматически в нее встроены доверительные отношения. Таким образом, необходимо добавить только разрешения.
В политике произошла ошибка. Вы пропускаете [] в выписке.
Правильная политика будет:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "<COPY & PASTE SAML ARN VALUE HERE>" }, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml" } } } ] }
Попробуйте это