Esta página descreve resoluções para erros comuns da Workload Identity Federation.
A APIGoogle Cloud não aceita a credencial emitida a partir de SecurityTokenService
As chaves de acesso devolvidas pela API
SecurityTokenService
são chaves de acesso federadas.
Embora a maioria das Google Cloud APIs suporte a federação de identidades, determinados métodos da API podem ter limitações. Para ver uma lista de limitações, consulte o artigo
Federação de identidades: produtos e limitações.
Se encontrar o seguinte erro, pode estar a tentar usar um token de acesso federado com um serviço que não os suporta.
{
"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 este erro, troque o token de acesso federado por um token de acesso não restrito chamando GenerateAccessToken
.
Para mais informações, consulte o artigo Obter credenciais de curta duração com federação de identidades.
Adicione um fornecedor de identidade à lista de autorizações para utilização com a Workload Identity Federation
Se tentar configurar um fornecedor de identidade não permitido como um fornecedor do Workload Identity Pool, ocorre 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 este problema, siga as instruções em Restrinja a configuração do fornecedor de identidade para adicionar o fornecedor de identidade à lista de autorizações para utilização com a Workload Identity Federation.
O JWK introduzido não está num formato JSON válido
Se estiver a configurar um fornecedor de OIDC e receber o erro Input JWK is
not in a valid json format
, pode dever-se ao facto de os pontos finais protegidos com certificados autoassinados não serem suportados pelo Google Cloud. Especificamente, os campos x5c
e x5t
não são suportados e têm de ser removidos do JWK OIDC.
Para resolver problemas com o seu JWK, faça o seguinte:
Edite o seu JWK e remova os campos
x5c
(cadeia de certificados X.509) ex5t
(impressão digital SHA-1 do certificado X.509).{ "kty": "RSA", "use": "sig", "kid": "example-key-id", "alg": "RS256", "n": "base64url-modulus", "e": "AQAB" }
Verifique se os restantes campos JWK estão formatados corretamente, conforme descrito na especificação OIDC.
Configure o fornecedor OIDC com o JWK atualizado.
Erro ao estabelecer ligação ao emissor das credenciais fornecidas
Se receber o seguinte erro, pode dever-se ao facto de Google Cloud não conseguir obter o documento de metadados OIDC ou o JWKS do seu IdP:
{
"error": "invalid_grant",
"error_description":"Error connecting to the given credential's issuer."
}
Normalmente, este erro ocorre porque os pontos finais não estão configurados para serem acessíveis a partir da Internet pública. Para resolver este erro, verifique se o ponto final do OIDC está disponível publicamente e em conformidade com a especificação do OIDC. Para mais informações, consulte o artigo Preparar o fornecedor de identidade externo.
Se continuar a receber o erro, verifique se o emissor do token, a reivindicação iss
no token, está correto.
A reivindicação google.subject mapeada excede o limite de 127 bytes
Se receber o seguinte erro, significa que as credenciais recebidas pela API
SecurityTokenService
geram uma reivindicação google.subject
que excede o limite de carateres:
{
"error": "invalid_request",
"error_description":"The size of mapped attribute google.subject exceeds the 127 bytes limit. Either modify your attribute mapping or the incoming assertion to produce a mapped attribute that is less than 127 bytes."
}
Para resolver este problema, use a função extract
para remover carateres desnecessários e extrair um identificador de assunto único de uma reivindicação mais longa, por exemplo:
google.subject=assertion.sub.extract('/users/{sub_claim}')
Erro 429 Demasiados pedidos
Se receber o erro 429 Too Many Requests
ao pedir um token à API SecurityTokenService
, significa que o seu projeto excedeu o limite de quota de velocidade para a API. Google Cloud
O erro inclui uma mensagem semelhante à seguinte:
{
"error": "quota_exceeded",
"error_description":"The request was throttled due to rate limit: sts.googleapis.com/requests. Please retry after a few seconds."
}
Para resolver este problema, identifique o sts.googleapis.com/requests
nome da métrica
indicado na mensagem de erro, localize o nome da métrica correspondente na
página de quotas da IAM, confirme
se a percentagem de utilização excede a quota e peça um aumento da quota.