이 페이지에서는 애플리케이션 기본 사용자 인증 정보(ADC)를 사용할 때 발생할 수 있는 몇 가지 일반적인 문제에 대해 설명합니다.
사용자 인증 정보가 있는 위치를 포함하여 ADC 작동 방식에 대한 자세한 내용은 애플리케이션 기본 사용자 인증 정보의 작동 방식을 참조하세요.
사용자 인증 정보가 작동하지 않음
API 요청이 이 API에서 지원되지 않는 사용자 인증 정보, 프로젝트에 사용 설정되지 않은 API, 설정 중인 할당량 프로젝트 없음에 대한 오류 메시지를 반환하면 다음 정보를 검토합니다.
두 가지 유형의 Google Cloud API가 있습니다.
리소스 기반 API는 결제 및 할당을 위해 액세스되는 리소스와 연결된 프로젝트를 사용합니다.
클라이언트 기반 API는 결제 및 할당을 위해 리소스에 액세스 중인 클라이언트와 연결된 프로젝트를 사용합니다.
클라이언트 기반 API에 인증을 수행하기 위해 사용자 인증 정보를 제공할 때는 결제 및 할당량에 사용할 프로젝트를 지정해야 합니다. 이 프로젝트를 할당량 프로젝트라고 부릅니다.
할당량 프로젝트를 지정하는 데에는 다음 옵션을 포함해서 여러 방법이 있습니다.
다른 프로젝트를 할당량 프로젝트로 사용하도록 ADC 파일을 업데이트합니다.
gcloud auth application-default set-quota-project YOUR_PROJECT
gcloud CLI를 사용하여 API를 호출하는 경우 gcloud CLI 구성에서 할당량 프로젝트를 설정할 수 있습니다.
gcloud config set billing/quota_project YOUR_PROJECT
REST 또는 RPC API를 직접 호출하는 경우
x-goog-user-project
HTTP 헤더를 사용해서 각 요청에 할당량 프로젝트를 지정합니다. 자세한 내용은 REST 요청으로 할당량 프로젝트 설정을 참조하세요.
결제 프로젝트로 지정할 수 있으려면 결제 프로젝트에 대해 serviceusage.services.use
IAM 권한이 있어야 합니다. serviceusage.services.use
권한은 Service Usage Consumer IAM 역할에 포함되어 있습니다. 프로젝트에 대해 serviceusage.services.use
권한이 없으면 보안 관리자 또는 프로젝트에서 서비스 사용 소비자 역할을 부여할 수 있는 프로젝트 소유자에게 문의하세요.
할당량 프로젝트에 대한 자세한 내용은 할당량 프로젝트 개요를 참조하세요. 할당량 프로젝트 설정을 위한 추가 방법은 할당량 프로젝트 설정을 참조하세요.
잘못된 사용자 인증 정보
사용자 인증 정보가 필요한 액세스를 제공하는 것으로 보이지 않거나 찾을 수 없는 경우 다음을 확인하세요.
로컬 환경에서 gcloud CLI를 사용하여 Google Cloud에 액세스하는 경우 사용 중인 사용자 인증 정보를 알아야 합니다. gcloud CLI를 사용할 때는
gcloud auth login
명령어를 사용하여 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다. ADC에 제공한 사용자 인증 정보는 사용하지 않습니다. 이러한 두 가지 사용자 인증 정보 세트에 대한 자세한 내용은 gcloud CLI 인증 구성 및 ADC 구성을 참조하세요.서비스 계정 키 또는 다른 JSON 파일을 ADC에 사용하는 경우에만
GOOGLE_APPLICATION_CREDENTIALS
환경 변수가 설정되어 있는지 확인합니다. 환경 변수가 가리키는 사용자 인증 정보가 GKE용 워크로드 아이덴티티 제휴를 포함하여 다른 사용자 인증 정보보다 우선합니다.요청을 수행하는 주 구성원에게 필요한 IAM 역할이 있는지 확인합니다. 사용자 인증 정보를 사용하는 경우 사용자 계정과 관련된 이메일 주소에 역할을 부여해야 합니다. 서비스 계정을 사용하는 경우 서비스 계정에 필요한 역할이 있어야 합니다.
API 요청에 API 키를 제공하는 경우 API 키가 다른 위치의 ADC보다 우선합니다.
GOOGLE_APPLICATION_CREDENTIALS
환경 변수를 설정했고 API 키를 사용하는 경우 API에서 사용자가 ADC에 제공된 사용자 인증 정보가 무시된다는 경고가 반환될 수 있습니다. 경고를 중지하려면GOOGLE_APPLICATION_CREDENTIALS
환경 변수를 설정 해제합니다.
인식할 수 없는 사용자 인증 정보 유형
API 요청으로 'JSON에서 사용자 인증 정보를 만드는 중 오류가 발생했습니다. 인식할 수 없는 사용자 인증 정보 유형' 오류가 반환되면 유효한 사용자 인증 정보를 사용 중인지 확인합니다. 클라이언트 ID 파일은 ADC에 대한 사용자 인증 정보를 제공하는 데 지원되지 않습니다.
범위를 사용할 때 액세스가 차단됨
로컬 ADC 파일을 만들려고 할 때 '이 앱은 차단되었습니다' 또는 '액세스 차단됨: 승인 오류'와 비슷한 오류가 반환되면 기본 ADC 설정 명령어에서 지원되지 않는 범위를 사용하려고 시도하는 것일 수 있습니다. 일반적으로 이 문제는 Google Drive와 같이 Google Cloud 외부의 애플리케이션에 범위를 추가할 때 발생합니다.
기본적으로 사용자 인증 정보로 생성된 로컬 ADC 파일에서 생성된 액세스 토큰에는 클라우드 전체 범위의 https://www.googleapis.com/auth/cloud-platform
이 포함됩니다.
범위를 명시적으로 지정하려면 gcloud auth application-default login
명령어에 –-scopes
플래그를 사용합니다.
Google Drive와 같이 Google Cloud 외부 서비스의 범위를 추가하려면 OAuth 클라이언트 ID를 만들고, –-client-id-file
플래그를 사용해서 이를 gcloud auth application-default login
명령어에 제공하고, -–scopes
플래그를 사용해서 범위를 지정합니다.