web-dev-qa-db-ja.com

AWS信頼ポリシーはフィールドプリンシパルを禁止しています

AWS CLIを使用して既存のAmazon EC2インスタンスにAWS IAMロールをアタッチ に従って、IAMロールを作成してEC2インスタンスに割り当てようとしています。

ポリシーは次のようになります。

{
 "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

ここにも同様の質問がありますが、この問題を修正できませんでした。

任意の助けをいただければ幸いです。

14
Matrix

Service Roleを作成する最も簡単な方法は次のとおりです。

  • IAMコンソールに移動します
  • ロールをクリックします
  • 新しいロールの作成
  • Amazon EC2サービスロールを選択します
  • 次に、ポリシーを添付します

信頼ポリシーが作成されます。

信頼ポリシーは、実際のポリシー(アクセス許可を割り当てるビット)とは別の場所に保存されることに注意してください。エラーメッセージに基づいて、ロールは原則を必要としないため(ただし、信頼ポリシーは必要)、信頼ポリシーを通常の場所に配置しているようです。

10
John Rotenstein

「信頼関係」または「信頼ポリシー」として知られているものを更新しようとしたときに、同じ問題に直面しました。 「プリンシパル」は、「信頼ポリシー」でのみ機能するようになります。誤って、権限タブに該当する通常のポリシーを更新している可能性があります。以下のように、「信頼関係」タブでポリシーを更新してください。

    {
      "Version": "2012-10-17",
      "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
           "Service": [
           "ec2.amazonaws.com",
           "lambda.amazonaws.com"
           ]
          },
         "Action": "sts:AssumeRole"
       }
     ] 
   }
4
Abhishek Sinha