IAM 系の操作だけ InvalidClientTokenId になったときの対処方法

IAM 系の操作だけ InvalidClientTokenId になったときの対処方法

GetSessionToken APIで取得した一時認証情報を使ってIAM操作を行う際、MFA情報を含めないと InvalidClientTokenId エラーが発生する理由と対処法を説明します。
2026.07.28

困っていた内容

GetSessionToken API で取得した一時的な認証情報で AWS リソースを操作しています。
IAM 系の操作だけInvalidClientTokenIdで失敗します。
アクセスキーなどは有効でした。なぜでしょうか?

エラーメッセージ
$ aws iam create-role --role-name hato-role --assume-role-policy-document file://policy.json

aws: [ERROR]: An error occurred (InvalidClientTokenId) when calling the CreateRole operation: The security token included in the request is invalid

どう対応すればいいの?

GetSessionToken API 実行時に MFA 情報を含めてください。

コマンド例
$ aws sts get-session-token \
    --serial-number "【MFA のシリアルナンバー】" \
    --token-code "【MFA のトークンコード】"

GetSessionToken API で作成した一時的な認証情報は、呼び出しで使用した IAM ユーザーの権限に基づきますが、次の制限があります。

  • MFA 認証情報が含まれていない場合、IAM API の呼び出しはできない。
  • AssumeRoleまたはGetCallerIdentity以外の STS API の呼び出しはできない。

そのため、アクセスキーや権限に問題がない場合も、MFA 情報が含まれていない場合はエラーが発生します。

一時的な認証情報で IAM 系の操作を行いたい場合は、呼び出し元の IAM ユーザーで MFA を設定し、GetSessionToken API 実行時に MFA 情報を含めて一時的な認証情報を取得してください。

https://repost.aws/ja/knowledge-center/authenticate-mfa-cli

参考資料

The temporary security credentials created by GetSessionToken can be used to make API calls to any Amazon Web Services service with the following exceptions:

  • You cannot call any IAM API operations unless MFA authentication information is included in the request.
  • You cannot call any STS API except AssumeRole or GetCallerIdentity .

GetSessionToken が IAM ユーザーの認証情報によって呼び出された場合、一時的なセキュリティ認証情報は IAM ユーザーと同じアクセス権限を持ちます。

リクエストに MFA 情報が含まれていない場合は、IAM API オペレーションを呼び出せません。

AssumeRole または GetCallerIdentity を除く AWS STS API オペレーションを呼び出せません。


AWSテクニカルサポートノートについて

過去にクラスメソッドのAWS総合支援サービスで頂いたお問合せの中から、通常のAWS利用時でも有益になりうる情報をテクニカルサポートチームがTIPSとしてご紹介しています。技術サポートは、無料でご提供しております。詳細は下記ボタンからご覧ください。

クラスメソッドのAWSサポートの詳細を見る

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事