IAMロールの「信頼されたエンティティ」のPrincipal要素に覚えのないロールIDが設定されている場合の原因と対処法

2023.05.16

困っていた内容

IAMロールの「信頼されたエンティティ」の Principal要素 がいつの間にか変更されていました。
設定の変更は行っていませんが、自動的に変更されるようなことはありますか? 原因を教えてください。

■ 設定していた「信頼されたエンティティ」

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::XXXXXXXXXXXX:role/TestRole"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

■ いつの間にか変わっていた「信頼されたエンティティ」

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "AROATU7HFULVI7ZVOW2EK"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

原因

この事象の原因は、Principal要素に設定されている ロール(例: TestRole) が削除されたために発生しています。

ロール信頼ポリシーの Principal要素 に特定のIAMロールを指定した場合、ロールの一意のプリンシパルIDに変換されます。
このロールの一意のプリンシパルIDを保持しているロールが存在していると、ロール信頼ポリシーの Principal要素 はARNで表示されますが、該当のロールが削除された場合、ARNの変換が行えなくなりロールの一意のプリンシパルIDが表示されることになります。

確認してみた & 対処法

アカウント1でロール: TestRole を作成し、アカウント2で以下の様に設定します。

この時、TestRole の ロールID を確認すると以下の通りとなっていました。

"RoleId": "AROATU7HFULVI7ZVOW2EK"

TestRole を削除してみると以下の様に Principal要素 が自動的に変更されます。

さらに先ほど削除したロールと同じ名前の TestRole を作成して ロールID を確認してみます。

"RoleId": "AROATU7HFULVIOPWY5P5J"

ロールを再作成しているため、ロールIDはもちろん最初のIDとは異なります。

*ロールIDはコンソールでは表示されないため、AWS CLIでご確認ください。

aws iam get-role --role-name ロールの名前

信頼されたエンティティの Principal要素 で参照されているロールを削除して再作成した場合は、ポリシーのロールを編集して プリンシパルID を正しいARNに置き換えてください。

参照情報