AssumeRoleWithWebIdentity で InvalidIdentityToken エラーが発生するのはどうしてですか

AssumeRoleWithWebIdentity で InvalidIdentityToken エラーが発生するのはどうしてですか

2026.02.18

困っていた内容

GitLab CI/CD や GitHub Actions などから AWS へ OIDC 認証を行う際に、以下のように AssumeRoleWithWebIdentity で InvalidIdentityToken エラーが発生します。

An error occurred (InvalidIdentityToken) when calling the AssumeRoleWithWebIdentity operation: Couldn't retrieve verification key from your identity provider, please reference AssumeRoleWithWebIdentity documentation for requirements

どのような原因が考えられるのか教えてください。

どう対応すればいいの?

このエラーは、AWS STS が OIDC ID プロバイダー(GitLab、GitHub Actions など)のエンドポイントにアクセスできない場合などに発生します。

OIDC 認証では、AWS STS がトークンを検証する際に、OIDC ID プロバイダーの以下のエンドポイントへアクセスする必要があります。

  • .well-known/openid-configuration
  • jwks_uri(JSON Web Key Set)

これらのエンドポイントにアクセスできないと、InvalidIdentityToken エラーとなります。

re:Post のナレッジ記事では、他にも以下のような状況でエラーが発生すると説明されています。

https://repost.aws/ja/knowledge-center/iam-oidc-idp-federation

このエラーは、次の理由で発生する可能性があります。

  • OIDC ID プロバイダーの .well-known および jwks_uri エンドポイントに、パブリックインターネットからアクセスできない。
  • カスタムファイアウォールが API リクエストをブロックしている。
  • OIDC ID プロバイダーから STS エンドポイントへの API リクエストに 5 秒を超える遅延がある。
  • JSON Web キーセット (JWKS) に多数のキーがあり、STS が OIDC ID プロバイダーのキーを検証できないため、リクエストにスロットリングが発生している。

アクセスエラーを解消するには

OIDC ID プロバイダーの .well-known/openid-configuration と jwks_uri を、パブリックインターネットからアクセス可能な状態にする必要があります。

ファイアウォールやホワイトリストでアクセス制限を設けている場合は、以下の対処方法をご検討ください。

1. パブリックアクセスを許可する

.well-known/openid-configuration と jwks_uri へのパブリックアクセスを許可します。

2. ホワイトリストの範囲を広げる

特定の IP アドレス範囲のみ許可している場合、AWS STS からのアクセスが通るよう範囲を調整します。
ただし、AWS STS がトークン検証時に使用する送信元 IP アドレスの範囲は公開されていないため、確実な運用のためにはパブリックアクセスの許可を推奨します。

参考情報

https://repost.aws/ja/knowledge-center/iam-sts-invalididentitytoken

https://repost.aws/ja/knowledge-center/iam-oidc-idp-federation

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_providers_create_oidc.html

この記事をシェアする

FacebookHatena blogX

関連記事