このページでは、Workload Identity 連携の一般的なエラーの解決方法について説明します。
Google Cloud API が SecurityTokenService
から発行された認証情報を受け入れない
次のエラーが発生した場合は、最初にサービス アカウントの認証情報と交換するのではなく、SecurityTokenService
から発行された認証情報を使用して Google Cloud API に直接アクセスしようとしている可能性があります。
{
"error": {
"code": 401,
"message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED",
}
}
このエラーを解決するには、GenerateAccessToken
を呼び出して、SecurityTokenService
で作成した認証情報をサービス アカウント トークンと交換します。詳細については、ID 連携により有効期間の短い認証情報を取得するをご覧ください。
Workload Identity 連携で使用する ID プロバイダを許可リストに登録する
許可されていない ID プロバイダを Workload Identity プール プロバイダとして構成しようとすると、次のエラーが発生します。
FAILED_PRECONDITION: Precondition check failed.
- '@type': type.googleapis.com/google.rpc.PreconditionFailure
violations:
- description: "Org Policy violated for value: '{PROVIDER}'."
subject: orgpolicy:projects/{PROJECT}/locations/global/workloadIdentityPools/{POOL}
type: constraints/iam.workloadIdentityPoolProviders
この問題を解決するには、ID プロバイダの構成を制限するの手順に沿って、Workload Identity 連携で使用する ID プロバイダを許可リストに登録します。
入力された JWK が有効な JSON 形式ではない
OIDC プロバイダを構成しているときに Input JWK is
not in a valid json format
エラーが発生した場合は、自己署名証明書で保護されているエンドポイントが Google Cloud でサポートされていないことが原因である可能性があります。具体的には、x5c
フィールドと x5t
フィールドはサポートされていないため、OIDC JWK から削除する必要があります。
指定された認証情報の発行者への接続中にエラーが発生する
次のエラーが表示された場合、Google Cloud が IdP の OIDC メタデータ ドキュメントまたは JWKS を取得できないためにエラーが発生している可能性があります。
{
"error": "invalid_grant",
"error_description":"Error connecting to the given credential's issuer."
}
このエラーは通常、公共のインターネットからエンドポイントにアクセスできるように構成されていないことが原因で発生します。このエラーを解決するには、OIDC エンドポイントが一般公開されていて OIDC 仕様に準拠していることを確認します。詳細については、外部 ID プロバイダの準備をご覧ください。
それでもエラーが表示される場合は、トークン発行元(トークンの iss
クレーム)が正しいことを確認します。