본문 바로가기
CSP (Cloud Service Provider)/GCP

[GCP] Service Account Impersonate

by BTC_오은영석사 2023. 8. 28.

베하~! 안녕하세요 금쪽상담소의 오은영석사와 금쪽이입니다!!

한주동안 잘 지내셨나요?

가을이 성큼성큼 다가오고 있는 것이 느껴지는 여름의 끝자락이네요.

무더웠던 여름날의 마지막으로 배워 볼 주제는 Service Account Impersonate입니다!

그럼 바로 배우러 가볼 까요?!?!

GO! GO!

 


 

Service Account Impersonate 이란?

  • 사용자 또는 다른 Service Account와 같은 주체가 단기 사용자 인증 정보를 사용하여 서비스 계정으로 인증하는 것입니다.
  • Service Account의 Access Token을 Token Creator권한으로 가져와서 Json 키 없이 권한사용할 수 있는 방법입니다.
  • 사용자가 일시적으로 서비스 계정의 역할을 맡을 수 있도록 허용하므로 일반적으로 사용자에게 일시적으로 높은 액세스 권한을 부여하는 데 사용합니다.
  • 사용 중인 주 구성원에게 작업을 수행하는 데 필요한 권한이 없거나 개발 환경에서 서비스 계정을 사용하려는 경우 Service Account Impersonate을 사용할 수 있습니다.

 

Service Account Impersonate 특징

  • 주 구성원은 Service Account Impersonate을 사용하여 서비스 계정으로 명령을 실행할 수 있지만 주 구성원은 Service Account Impersonate을 사용하여 Google Cloud 콘솔에 액세스 불가
  • 인증된 principal(Google 계정 또는 서비스 계정)로 시작하고 사용 사례에 필요한 승인이 있는 Service Account에 대한 단기 사용자 인증 정보 요청
  • 인증된 주체에는 필요한 권한 필요
  • 사전에 인증된 ID가 필요하고 Service Account Impersonate을 사용하여 생성된 사용자 인증 정보는 유지되지 않으므로 서비스 계정 키를 사용하는 것보다 더 안전함
  • 서비스 계정 키를 사용하여 인증하는 경우 사전 인증이 필요하지 않으며 영구 키는 노출될 경우 위험이 높은 사용자 인증 정보로 Service Account Impersonate을 사용 권장

 

필수 역할

아래의 권한을 필수로 부여해야 합니다.

roles/iam.serviceAccountTokenCreator

이 역할은 'iam.serviceAccounts.getAccessToken' Service Account를 가장하는 데 필요한 권한이 포함되어 있습니다.

Admin은 맞춤 역할이나 기타 사전 정의된 역할을 통해 주 구성원에게 이 권한을 부여할 수도 있습니다.

 

Gcloud CLI 사용

gcloud CLI 명령어에 가장을 사용하려면 --impersonate-service-account 플래그를 사용합니다.

예를 들어 버킷의 list를 Service Account Impersonate통해 불러올 수 있습니다.

gcloud storage buckets list --impersonate-service-account=SERVICE_ACCT_EMAIL

이 플래그를 사용하면 gcloud CLI는 지정된 Service Account에 대한 단기 사용자 인증 정보를 요청하고 이를 사용하여 API에 인증하고 액세스를 승인합니다. 

 

기본적으로 서비스 계정에서 제공하는 ID와 액세스 권한을 사용하도록 gcloud CLI를 설정하려면 gcloud CLI config 명령어를 사용합니다.

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

이 설정으로 gcloud CLI는 지정된 서비스 계정에 대한 단기 사용자 인증 정보를 요청하고 이를 사용하여 API에 인증하여 모든 명령어에 대해 리소스에 대한 액세스를 승인합니다. 

 

클라이언트 라이브러리 사용을 위한 애플리케이션 기본 자격 증명 설정

Service Account Impersonate을 사용하여 로컬 ADC(애플리케이션 기본 자격 증명) 파일을 설정할 수 있습니다. 

지원하는 클라이언트 라이브러리는 해당 자격 증명을 자동으로 사용할 수 있습니다.

생성된 로컬 ADC 파일은 다음 언어로 지원됩니다.

  • Go
  • Java
  • Node.js
  • Python
gcloud auth application-default login --impersonate-service-account SERVICE_ACCT_EMAIL

로컬 ADC 파일을 만들 수 있습니다.

 


 

이렇게 오늘은 Service Account Impersonate에 대해 배워보는 시간이였습니다!

Service Account Impersonate를 통해 keyless방식으로 더욱더 안전하게 클라우드를 사용해봅시다!

그럼 다음 시간에 만나요!

베빠~!

 

출처: https://cloud.google.com/docs/authentication/use-service-account-impersonation#required-roles

'CSP (Cloud Service Provider) > GCP' 카테고리의 다른 글

BigQuery - Time Travel이란?  (4) 2023.09.01
[GCP] Service Account Impersonate 실습  (0) 2023.09.01
Filestore란?  (0) 2023.08.18
[GCP] Dataproc 생성 hands-on  (0) 2023.08.18
[GCP] Terraform 로컬 환경 구축하기  (0) 2023.08.18

댓글