Целевая политика 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"
       }
     ] 
   }