Resolver problemas com a federação de identidade da carga de trabalho

Nesta página, descrevemos as resoluções de erros comuns com a federação de identidade da carga de trabalho.

A API Google Cloud não aceita a credencial emitida por SecurityTokenService

Caso você encontre o seguinte erro, talvez esteja tentando acessar uma API Google Cloud diretamente usando uma credencial emitida por SecurityTokenService em vez de trocar por uma credencial da conta de serviço primeiro.

{
  "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",
  }
}

Para resolver esse erro, troque a credencial gerada em SecurityTokenService por um token da conta de serviço chamando GenerateAccessToken. Para mais informações, consulte Como receber credenciais de curta duração com federação de identidade.

Adicionar um provedor de identidade à lista de permissões para uso com a federação de identidade da carga de trabalho

Se você tentar configurar um provedor de identidades não permitido como um provedor de pool de identidades de carga de trabalho, encontrará o seguinte erro:

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

Para resolver esse problema, siga as instruções em Restringir a configuração do provedor de identidade para colocar o provedor de identidade na lista de permissões para uso com a federação de identidade da carga de trabalho.

Erro ao se conectar ao emissor da credencial

Se você receber o seguinte erro, pode ser que o Google Cloud não consiga buscar o documento de metadados OIDC do seu IdP ou o JWKS:

{
  "error": "invalid_grant",
  "error_description":"Error connecting to the given credential's issuer."
 }

Esse erro geralmente ocorre porque os endpoints não estão configurados para serem alcançáveis da Internet pública. Para resolver esse erro, verifique se o endpoint do OIDC está disponível publicamente e está em conformidade com a especificação do OIDC. Para mais informações, consulte Como preparar o provedor de identidade externo.

Se você ainda receber o erro, verifique se o emissor do token e a declaração iss estão corretos.