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
ここにも同様の質問がありますが、この問題を修正できませんでした。
任意の助けをいただければ幸いです。
Service Roleを作成する最も簡単な方法は次のとおりです。
信頼ポリシーが作成されます。
信頼ポリシーは、実際のポリシー(アクセス許可を割り当てるビット)とは別の場所に保存されることに注意してください。エラーメッセージに基づいて、ロールは原則を必要としないため(ただし、信頼ポリシーは必要)、信頼ポリシーを通常の場所に配置しているようです。
「信頼関係」または「信頼ポリシー」として知られているものを更新しようとしたときに、同じ問題に直面しました。 「プリンシパル」は、「信頼ポリシー」でのみ機能するようになります。誤って、権限タブに該当する通常のポリシーを更新している可能性があります。以下のように、「信頼関係」タブでポリシーを更新してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"ec2.amazonaws.com",
"lambda.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}