Целевая политика AWS запретила полевого принципала
Я пытаюсь создать роль IAM и назначить ее экземпляру EC2 в соответствии с разделом "Присоединение роли AWS IAM к существующему экземпляру Amazon EC2 с помощью интерфейса командной строки AWS".
Политика выглядит следующим образом:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Но это дает эту ошибку:
This policy contains the following error: Has prohibited field Principal
Здесь есть похожий вопрос, но он не мог решить эту проблему.
Любая помощь будет оценена.
Ответы
Ответ 1
Самый простой способ создать роль службы:
- Перейдите в консоль IAM
- Нажмите Роли
- Создать новую роль
- Выберите службу службы Amazon EC2
- Затем добавьте свои политики.
Он создаст для вас политику доверия.
Обратите внимание, что политика доверия хранится в отдельной папке с фактической политикой (бит, который назначает разрешения). Основываясь на сообщении об ошибке, кажется, что вы устанавливаете политику доверия в нормальное место, потому что для ролей не нужен принцип (но политики доверия).
Ответ 2
Столкнулся с той же проблемой при попытке обновить "Доверительные отношения" или так же известной как "Политика доверия". "Принципал" приходит играть только в "Трастовой политике". Возможно, вы по ошибке обновляете обычную политику, попав под вкладку "Права". Попробуйте обновить политику на вкладке "Доверительные отношения", как показано ниже:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"ec2.amazonaws.com",
"lambda.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}