この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
困っていた内容
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に置き換えてください。