[2025年版] Amazon Cognito ユーザープールの削除保護を無効化しようとしたら InvalidSmsRoleTrustRelationshipException が発生する場合の対処
こんにちは、製造ビジネステクノロジー部の若槻です。
今回は、Amazon Cognito user pools のユーザープールの削除保護を無効化しようとしたら、InvalidSmsRoleTrustRelationshipException
が発生して削除が行えない場合の対処についてです。
事象
ユーザープールを削除しようとマネジメントコンソールからユーザープールの削除保護を無効化しようとしました。
しかし、以下のエラーメッセージが表示され、削除保護の無効化に失敗しました。
ユーザープール「CognitoUserPool279BBD48-V4GM5j8AxtkY」の削除に失敗しました。 後でもう一度お試しください。
- 削除保護の非アクティブ化に失敗しました
発生したエラーメッセージの詳細は以下の通りです。エラーコードは InvalidSmsRoleTrustRelationshipException
でした。
削除保護の非アクティブ化に失敗しました
requestId: 7be08207-4b56-4c72-9f93-27617b8c8588
time: Sun Oct 19 2025 22:01:47 GMT+0900 (日本標準時)
code: InvalidSmsRoleTrustRelationshipException
message: Role does not have a trust relationship allowing Cognito to assume the role
原因
原因は、Cognito ユーザープールに関連付けられた SMS 送信用の IAM ロールが存在していなかったためでした。
ROLE_NAME="Main-CognitoUserPoolsmsRole738960F0-QXEteE1GO6Z6"
$ aws iam get-role --role-name ${ROLE_NAME}
An error occurred (NoSuchEntity) when calling the GetRole operation: The role with name Main-CognitoUserPoolsmsRole738960F0-QXEteE1GO6Z6 cannot be found.
なぜこのような状態になっていたかと言うと、この Cognito ユーザープールは AWS CDK で作成したのものだったのですが、ユーザープールを CDK(CloudFormtion)スタックから論理的に削除した際に、ユーザープール本体は削除保護により物理削除されなかったのに対し、ユーザープールに関連付けられた IAM ロールだけ物理削除されてしまっていたようです。
対処方法
対処方法は、SMS 送信用の IAM ロールを再作成することです。
SMS 設定を編集するメニューから IAM ロールを新規作成します。今回は削除前のロールと同名にしましたが、別名でも問題ありません。
ロールが作成できました。
再度ユーザープールの削除を試みてみます。
正常に削除できました!
後片付けとして、再作成した IAM ロールを削除しておきます。CLI の場合は以下の手順です。
# 1. アタッチされているマネージドポリシーを確認
$ aws iam list-attached-role-policies \
--role-name ${ROLE_NAME}
{
"AttachedPolicies": [
{
"PolicyName": "Cognito-1760879805280",
"PolicyArn": "arn:aws:iam::XXXXXXXXXXXX:policy/service-role/Cognito-1760879805280"
}
]
}
# 2. 表示されたポリシーを全てデタッチ
$ aws iam detach-role-policy \
--role-name ${ROLE_NAME} \
--policy-arn ${POLICY_ARN}
# 3. ロールを削除
$ aws iam delete-role \
--role-name ${ROLE_NAME}
おわりに
Amazon Cognito user pools のユーザープールの削除保護を無効化しようとしたら、InvalidSmsRoleTrustRelationshipException
が発生して削除が行えない場合の対処についてです。
実は以前に下記の記事で同様の事象の対処方法について紹介していましたが、2025 年から Amazon Cognito の UI が刷新されたため、改めて記事にしました。
以上