워크로드 아이덴티티 제휴 문제 해결

이 페이지에서는 일반적인 워크로드 아이덴티티 제휴 오류의 해결 방법을 설명합니다.

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 제휴를 사용하여 단기 사용자 인증 정보 가져오기를 참조하세요.

워크로드 아이덴티티 제휴와 함께 사용할 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 공급업체를 허용 목록에 추가합니다.

제공된 사용자 인증 정보 발급자에 연결하는 중 오류 발생

다음 오류는 Google Cloud가 IdP의 OIDC 메타데이터 문서 또는 JWKS를 가져올 수 없기 때문에 발생할 수 있습니다.

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

이 오류는 일반적으로 공개 인터넷에서 도달할 수 있도록 엔드포인트가 구성되지 않았기 때문에 발생합니다. 이 오류를 해결하려면 OIDC 엔드포인트를 공개적으로 사용할 수 있고 OIDC 사양을 준수하는지 확인합니다. 자세한 내용은 외부 ID 공급업체 준비를 참조하세요.

오류가 수신되면 토큰 발행자, 토큰의 iss 클레임이 올바른지 확인합니다.