애플리케이션 기본 사용자 인증 정보 작동 방식

이 페이지에서는 애플리케이션 기본 사용자 인증 정보(ADC)가 사용자 인증 정보를 찾는 위치에 대해 설명합니다. ADC의 작동 방법을 알고 있으면 ADC에 사용되는 사용자 인증 정보와 이를 찾는 방법을 이해하는 데 도움이 될 수 있습니다.

Application Default Credentials (ADC) 는 애플리케이션 환경을 기준으로 사용자 인증 정보를 자동으로 검색하기 위해 인증 라이브러리에 사용되는 전략입니다. 그런 다음 인증 라이브러리는 Cloud 클라이언트 라이브러리 및 Google API 클라이언트 라이브러리에 이러한 사용자 인증 정보를 제공합니다. ADC를 사용할 때는 Google Cloud 서비스 및 API에 대한 애플리케이션 인증 방법을 변경하지 않고 개발 또는 프로덕션 환경에서 코드를 실행할 수 있습니다.

ADC에 사용자 인증 정보를 제공하는 방법은 애플리케이션 기본 사용자 인증 정보 설정을 참조하세요.

주문 검색

ADC는 다음 위치에서 사용자 인증 정보를 검색합니다.

  1. GOOGLE_APPLICATION_CREDENTIALS 환경 변수
  2. Google Cloud CLI를 사용하여 설정된 사용자 인증 정보
  3. 메타데이터 서버에서 반환된 연결된 서비스 계정

ADC가 사용자 인증 정보를 확인하는 위치의 순서는 각 위치의 상대적 장점과 관련이 없습니다. ADC에 사용자 인증 정보를 제공하는 가장 좋은 방법은 애플리케이션 기본 사용자 인증 정보 설정을 참조하세요.

GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정하여 이 코드를 App Engine 로컬 에뮬레이터에서도 사용할 수 있습니다.

GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 사용하여 사용자 인증 정보 JSON 파일의 위치를 제공할 수 있습니다. 이 JSON 파일은 다음 파일 유형 중 하나일 수 있습니다.

  • 직원 ID 제휴의 사용자 인증 정보 구성 파일

    직원 ID 제휴를 사용하면 외부 ID 공급업체(IdP)를 통해 사용자를 인증하여 Google Cloud 리소스에 액세스하도록 승인할 수 있습니다. 자세한 내용은 Identity and Access Management(IAM) 문서의 직원 ID 제휴를 참조하세요.

  • 워크로드 아이덴티티 제휴의 사용자 인증 정보 구성 파일

    워크로드 아이덴티티 제휴를 사용하면 외부 IdP를 통해 워크로드를 인증하고 Google Cloud 리소스에 액세스하도록 승인할 수 있습니다. 자세한 내용은 Identity and Access Management(IAM) 문서의 클라이언트 라이브러리, gcloud CLI 또는 Terraform을 사용하여 인증을 참조하세요.

  • 서비스 계정 키

    서비스 계정 키는 보안 위험을 초래하므로 권장하지 않습니다. 다른 사용자 인증 정보 파일 유형과 달리 손상된 서비스 계정 키는 추가 정보 없이 악의적인 행위자에 의해 사용될 수 있습니다. 자세한 내용은 서비스 계정 키 사용 및 관리 권장사항을 참조하세요.

gcloud CLI를 사용하여 제공된 사용자 인증 정보

gcloud auth application-default login 명령어를 실행하여 ADC에 사용자 인증 정보를 제공할 수 있습니다. 이 명령어는 제공된 사용자 인증 정보(일반적으로 사용자 계정)가 포함된 JSON 파일을 파일 시스템의 잘 알려진 위치에 배치합니다. 위치는 운영체제에 따라 다릅니다.

  • Linux, macOS: $HOME/.config/gcloud/application_default_credentials.json
  • Windows: %APPDATA%\gcloud\application_default_credentials.json

gcloud CLI를 사용하여 ADC에 제공하는 사용자 인증 정보는 gcloud CLI가 Google Cloud에 인증하는 데 사용하는 사용자 인증 정보인 gcloud 사용자 인증 정보와는 다릅니다. 이 두 가지 사용자 인증 정보에 대한 자세한 내용은 gcloud CLI 인증 구성 및 ADC 구성 을 참조하세요.

기본적으로 사용자 인증 정보로 생성된 로컬 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 플래그를 사용해서 범위를 지정합니다.

연결된 서비스 계정

많은 Google Cloud 서비스를 통해 Google Cloud API에 액세스하기 위한 사용자 인증 정보를 제공하는 데 사용할 수 있는 서비스 계정을 연결할 수 있습니다. ADC가 GOOGLE_APPLICATION_CREDENTIALS 환경 변수 또는 로컬 ADC 사용자 인증 정보에 대해 잘 알려진 위치에서 사용할 수 있는 사용자 인증 정보를 찾지 못하면 메타데이터 서버를 사용하여 코드가 실행 중인 서비스에 대한 사용자 인증 정보를 가져옵니다.

연결된 서비스 계정의 사용자 인증 정보를 사용하는 것이 Google Cloud의 프로덕션 환경에서 사용자 인증 정보를 찾는 데 선호되는 방법입니다. 연결된 서비스 계정을 사용하려면 다음 단계를 따르세요.

  1. 사용자 관리형 서비스 계정을 만듭니다.
  2. 해당 서비스 계정에 가능한 최소 권한의 IAM 역할을 부여합니다.
  3. 코드가 실행 중인 리소스에 서비스 계정을 연결합니다.

서비스 계정을 만들기에 대한 자세한 내용은 서비스 계정 만들기 및 관리를 참조하세요. 서비스 계정 연결에 대한 자세한 내용은 리소스에 서비스 계정 연결을 참조하세요. 서비스 계정에 필요한 IAM 역할을 확인하려면 사전 정의된 역할 선택을 참조하세요.

다음 단계