IAM ポリシーを作成または更新する際に発生する、「Has prohibited field Principal」というエラーの解決方法を教えてください。

所要時間1分
0

AWS Identity and Access Management (IAM) ポリシーを作成または更新する際に発生する、「Has prohibited field Principal」というエラーを解決したいです。

解決策

IAM ID ベースのポリシーに Principal 要素が含まれている場合、「Has prohibited field Principal (使用できないフィールド Principal が含まれています)」というエラーが表示されます。Principal 要素は、リソースにアクセスできる IAM を制御するために、リソースベースのポリシーでのみ使用できます。ポリシーは IAM ID にアタッチするため、ID ベースのポリシーでは Principal 要素を使用する必要はありません。

リソースベースのポリシーは、リソースに関連付けられた AWS サービスで作成する必要があります。AWS サービスがリソースベースのポリシーを使用しているかどうかを確認する方法については、「IAM と連携する AWS サービス」を参照してください。

IAM のロール用に作成できるリソースベースのポリシーは、信頼ポリシーのみです。IAM ロールのアクセス許可を追加または削除するには、アクセス許可ポリシーではなくロールの信頼ポリシーを更新します。

ロール信頼ポリシーの例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

アクセス許可ポリシーの例

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::111122223333/Test"
  }
}

関連情報

ID ベースのポリシーとリソースベースのポリシー

IAM を使用して別の AWS アカウントのリソースにアクセスする方法を教えてください

ロールを切り替えるユーザーアクセス許可を付与する

コメントはありません

関連するコンテンツ