IAMロール信頼ポリシーのPrincipalにIAMロールを指定した際に「Invalid principal in policy」エラーが発生した理由は存在しないIAMロールを指定していたから

AWS
AWS
この記事は約2分で読めます。

タイトル通りです。

Lambdaから異なるアカウントのIAMロールにAssumeRoleしたかったので、異なるアカウントのIAMロール信頼ポリシーを以下のように設定しようとしました。

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

すると、コンソールの上部に

信頼ポリシーを更新できませんでした
Invalid principal in policy: "AWS":"arn:aws:iam::xxx:role/xxx"

とのエラー表示が。
「Invalid」と表示されたので形式が間違っているのかと思いましたが、実際は存在しないIAMロールを指定したためでした。

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

抜けていた「service-role」を付けるとエラーなく保存できました。

タイトルとURLをコピーしました