사용 중인 주 구성원에게 태스크를 수행하는 데 필요한 권한이 없거나 개발 환경에서 서비스 계정을 사용하려는 경우 서비스 계정 가장을 사용할 수 있습니다.
서비스 계정 가장을 사용하는 경우 인증된 주 구성원(사용자 계정 또는 서비스 계정)으로 시작하고 사용 사례에 필요한 승인이 있는 서비스 계정에 대해 단기 사용자 인증 정보를 요청합니다. 인증된 주 구성원에게 서비스 계정을 가장하는 데 필요한 권한이 있어야 합니다.
서비스 계정 가장에는 사전 인증된 ID가 필요하고 가장을 사용하여 생성된 사용자 인증 정보가 유지되지 않기 때문에 서비스 계정 가장은 서비스 계정 키를 사용하는 것보다 안전합니다. 반면 서비스 계정 키로 인증하려면 사전 인증이 필요하지 않으며 영구 키는 노출될 경우 고위험 사용자 인증 정보입니다.
서비스 계정 가장에 대한 자세한 내용은 서비스 계정 가장을 참조하세요.
시작하기 전에
서비스 계정 가장을 사용하기 전에 필요한 API를 사용 설정하고 필요한 역할이 있는지 확인해야 합니다.
API 사용 설정
서비스 계정을 가장하려면 프로젝트에서 Service Account Credentials API를 사용 설정해야 합니다.
필요한 역할
주 구성원에게 서비스 계정을 가장하는 데 필요한 권한이 있는지 확인하려면 관리자에게 서비스 계정에 대한 서비스 계정 토큰 생성자(roles/iam.serviceAccountTokenCreator
) IAM 역할을 주 구성원에게 부여해 달라고 요청합니다.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 서비스 계정을 가장하는 데 필요한 iam.serviceAccounts.getAccessToken
권한이 포함되어 있습니다.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 사용하여 주 구성원에게 이 권한을 부여할 수도 있습니다.
자신이 만든 프로젝트에서 작업하는 경우에도 주 구성원에게 이러한 역할을 부여해야 합니다.
가장에 필요한 역할에 대한 자세한 내용은 서비스 계정 인증 역할을 참조하세요.
다음 방법을 사용해서 서비스 계정 가장을 사용할 수 있습니다.
gcloud CLI 사용
gcloud CLI에서는 서비스 계정 가장을 사용하는 간단한 방법을 제공합니다. 이 방법은 gcloud CLI를 사용하여 서비스 계정으로 Google Cloud 리소스 또는 서비스에 액세스해야 하는 경우에 적합합니다.
특정 gcloud CLI 명령어의 서비스 계정을 가장하거나 모든 명령어에 자동으로 가장을 사용하도록 gcloud CLI를 설정할 수 있습니다.
특정 gcloud CLI 명령어에 가장 사용
특정 gcloud CLI 명령어에 가장을 사용하려면 --impersonate-service-account
플래그를 사용합니다. 예를 들어 다음 명령어는 지정된 서비스 계정으로 제공하는 ID와 액세스를 사용하여 스토리지 버킷을 나열합니다.
gcloud storage buckets list --impersonate-service-account=SERVICE_ACCT_EMAIL
이 플래그를 사용하면 gcloud CLI가 지정된 서비스 계정의 단기 사용자 인증 정보를 요청하고 이를 사용하여 API에 인증하고 액세스를 승인합니다. gcloud CLI에 로그인된 주 구성원(일반적으로 사용자 계정)에는 서비스 계정에 대해 필요한 권한이 있어야 합니다.
기본적으로 gcloud CLI로 가장 사용
기본적으로 서비스 계정에서 제공하는 ID와 액세스를 사용하도록 gcloud CLI를 설정하려면 gcloud CLI 구성 명령어를 사용합니다.
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
이 구성 속성을 설정하면 gcloud CLI가 지정된 서비스 계정의 단기 사용자 인증 정보를 요청하고 이를 사용하여 API에 인증하고 모든 명령어에 대한 리소스 액세스를 승인합니다. gcloud CLI에 로그인된 주 구성원은 서비스 계정에 필요한 권한이 있어야 합니다.
클라이언트 라이브러리 사용을 위한 애플리케이션 기본 사용자 인증 정보 설정
서비스 계정 가장을 사용하여 로컬 애플리케이션 기본 사용자 인증 정보(ADC) 파일을 설정할 수 있습니다. 가장을 지원하는 클라이언트 라이브러리는 이러한 사용자 인증 정보를 자동으로 사용할 수 있습니다. 가장을 사용하여 생성된 로컬 ADC 파일은 다음 언어에서 지원됩니다.
- C#
- Go
- 자바
- Node.js
- Python
서비스 계정 가장을 사용하여 로컬 ADC 파일을 만듭니다.
gcloud auth application-default login --impersonate-service-account SERVICE_ACCT_EMAIL
이제 사용자 인증 정보로 로컬 ADC 파일을 설정한 후와 동일한 방법으로 지원되는 언어를 사용하는 클라이언트 라이브러리를 사용할 수 있습니다. 사용자 인증 정보는 인증 라이브러리에서 자동으로 검색됩니다. 자세한 내용은 클라이언트 라이브러리 사용을 위한 인증을 참조하세요.
단기 사용자 인증 정보 생성 및 관리
앞의 방법으로 사용 사례가 해결되지 않으면 단기 토큰을 생성하고 관리해야 합니다. 예를 들어 다른 유형의 단기 사용자 인증 정보(액세스 토큰 이외의 사용자 인증 정보)가 필요하거나 프로덕션 환경에서 가장을 사용해야 하는 경우 이 방법을 사용합니다.
단기 토큰 생성에 대한 자세한 내용은 서비스 계정에 단기 사용자 인증 정보 만들기를 참조하세요.
다음 단계
- ADC에서 사용자 인증 정보를 찾는 방법 자세히 알아보기
- 인증 방법 살펴보기