이 페이지에서는 일반적인 워크로드 아이덴티티 제휴 오류의 해결 방법을 설명합니다.
Google Cloud API가 SecurityTokenService에서 발급한 사용자 인증 정보를 허용하지 않음
SecurityTokenService API에서 반환된 액세스 토큰은 제휴 액세스 토큰입니다.
대부분의 Google Cloud API가 ID 제휴를 지원하지만 특정 API 메서드에는 제한사항이 적용될 수 있습니다. 제한사항 목록은 ID 제휴: 제품 및 제한사항을 참조하세요.
제휴 액세스 토큰이 지원되지 않는 서비스에 제휴 액세스 토큰을 사용하려고 시도하면 다음 오류가 발생할 수 있습니다.
{
"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을 호출하여 제휴 액세스 토큰을 무제한 액세스 토큰으로 교환합니다.
자세한 내용은 ID 제휴를 사용하여 단기 사용자 인증 정보 가져오기를 참조하세요.
워크로드 아이덴티티 제휴와 함께 사용할 ID 공급업체 허용 목록
허용되지 않는 ID 공급업체를 워크로드 아이덴티티 풀 제공업체로 구성하려고 하면 다음 오류가 발생합니다.
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 공급업체 구성 제한의 지침을 따라 워크로드 아이덴티티 제휴와 함께 사용할 ID 공급업체를 허용 목록에 추가합니다.
입력 JWK가 유효한 JSON 형식이 아님
OIDC 제공업체를 구성하는 중에 Input JWK is
not in a valid json format 오류가 발생하는 경우 자체 서명 인증서로 보호된 엔드포인트가 Google Cloud에서 지원되지 않기 때문일 수 있습니다. 특히 x5c 및 x5t 필드는 지원되지 않으며 OIDC JWK에서 삭제해야 합니다.
JWK 관련 문제를 해결하려면 다음을 수행합니다.
JWK를 수정하고
x5c(X.509 인증서 체인) 및x5t(X.509 인증서 SHA-1 지문) 필드를 삭제합니다.{ "kty": "RSA", "use": "sig", "kid": "example-key-id", "alg": "RS256", "n": "base64url-modulus", "e": "AQAB" }나머지 JWK 필드가 OIDC 사양에 설명된 대로 적절한 형식인지 확인합니다.
업데이트된 JWK로 OIDC 제공업체를 구성합니다.
제공된 사용자 인증 정보 발급자에 연결하는 중 오류 발생
다음 오류는 Google Cloud 가 IdP의 OIDC 메타데이터 문서 또는 JWKS를 가져올 수 없기 때문에 발생할 수 있습니다.
{
"error": "invalid_grant",
"error_description":"Error connecting to the given credential's issuer."
}
이 오류는 일반적으로 공개 인터넷에서 도달할 수 있도록 엔드포인트가 구성되지 않았기 때문에 발생합니다. 이 오류를 해결하려면 OIDC 엔드포인트를 공개적으로 사용할 수 있고 OIDC 사양을 준수하는지 확인합니다. 자세한 내용은 외부 ID 공급업체 준비를 참조하세요.
오류가 수신되면 토큰 발행자, 토큰의 iss 클레임이 올바른지 확인합니다.
매핑된 google.subject 클레임이 127바이트 제한을 초과함
다음 오류가 표시되는 경우 SecurityTokenService API에서 수신한 수신 사용자 인증 정보가 문자 수 제한을 초과하는 google.subject 클레임을 생성하기 때문입니다.
{
"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."
}
이 문제를 해결하려면 extract 함수를 사용하여 불필요한 문자를 삭제하고 긴 클레임에서 고유한 주제 식별자를 추출하세요. 예를 들면 다음과 같습니다.
google.subject=assertion.sub.extract('/users/{sub_claim}')
오류 429 너무 많은 요청
SecurityTokenService API에서 토큰을 요청하는 동안 429 Too Many Requests 오류가 표시되면 Google Cloud 프로젝트가 API의 비율 할당량 한도를 초과한 것입니다.
오류에는 다음과 유사한 메시지가 포함됩니다.
{
"error": "quota_exceeded",
"error_description":"The request was throttled due to rate limit: sts.googleapis.com/requests. Please retry after a few seconds."
}
이 문제를 해결하려면 오류 메시지에 제공된 sts.googleapis.com/requests 측정항목 이름을 확인하고 IAM 할당량 페이지에서 해당 측정항목 이름을 찾아 사용률이 할당량을 초과하는지 확인한 후 할당량 증가를 요청하세요.