gcloud CLI 및 p12 서비스 계정 키

gcloud CLI를 사용하면 개발자는 비공개 키를 사용하여 로봇 계정이라고도 하는 서비스 계정을 인증할 수 있습니다. 이 페이지에서는 Google Cloud의 서비스 계정에 대한 p12 키를 만들고 사용하는 방법을 설명합니다.

pyca/cryptography 설치

pyca/cryptography 라이브러리(버전 >= 2.5)를 사용하면 gcloud CLI에서 서비스 계정을 식별하는 p12 형식 키 파일을 디코딩할 수 있습니다. 여기에는 암호화 루틴이 포함되어 있으므로 pyca/cryptography는 gcloud CLI와 함께 배포되지 않습니다.

시스템에 Python Package Index에 대한 명령줄 인터페이스인 pip가 설치되어 있으면 다음 명령어를 실행하여 pyca/cryptography를 설치합니다. 자세한 내용은 설치 안내를 참조하세요.

python -m pip install cryptography

CLOUDSDK_PYTHON_SITEPACKAGES=1

pyca/cryptographic이 설치되면 CLOUDSDK_PYTHON_SITEPACKAGES 환경 변수를 1로 설정해야 합니다. 이 환경 변수 설정은 gcloud CLI가 자체 google-cloud-sdk/lib 디렉터리 외부에서 포함할 라이브러리를 검색하도록 지시합니다. 일반적으로 CLOUDSDK_PYTHON_SITEPACKAGES=1을 설정하면 안전하지만 정상적으로 작동하지 않으면 실행을 취소해야 할 수도 있습니다.

서비스 계정 만들기

새 서비스 계정을 만들고 p12 키 파일을 다운로드하려면 서비스 계정 키 만들기의 단계를 수행합니다.

이 키 파일은 기밀로 취급되어야 하며, 신뢰할 수 없는 사람이 키 파일에 액세스하지 못하도록 주의해야 합니다. Unix 계열 시스템에서는 다음 명령어를 사용하여 원격으로 연결된 다른 사용자(루트 사용자 이외)가 파일을 볼 수 없도록 할 수 있습니다.

chmod 0600 YOUR_KEY_FILE.p12

gcloud CLI를 통해 서비스 계정 사용

gcloud auth activate-service-account를 사용하여 서비스 계정 사용자 인증 정보를 사용할 수 있습니다.

gcloud CLI를 통해 서비스 계정을 사용하려면 gcloud auth activate-service-account를 실행하고 필요한 --key-file 플래그와 함께 키 파일 경로로 전달한 후 위치 인수로 계정을 부여하세요.

사용하는 계정은 Google Cloud 콘솔에 등록된 서비스 계정의 이메일이어야 하지만 확인되지는 않습니다. 단지 사용 중인 계정을 기억하는 데 유용합니다.

gcloud auth activate-service-account --key-file ~/mykeys/my_key_file.p12 my_service_account@developer.gserviceaccount.com
Activated service account credentials for my_service_account@developer.gserviceaccount.com.

경고: gcloud auth activate-service-account는 비공개 키의 사본을 만들어 $HOME/.config/gcloud/legacy_credentials/my_service_account@developer.gserviceaccount.com/private_key.p12$HOME/.config/gcloud/credentials.db에 저장합니다. 이 사본은 0600 권한으로 생성되며(사용자 개인 용도로 읽기/쓰기), $HOME/.config/gcloud에 저장된 모든 내용은 기밀로 취급되어야 합니다. gcloud CLI에서 저장된 인증 데이터를 안전하고 확실하게 삭제하려면 $HOME/.config/gcloud만 삭제해야 합니다. Google Cloud 콘솔에서 다운로드한 키 파일의 안전한 관리 책임은 사용자에게 있습니다. 의심스러운 경우 Google Cloud 콘솔에서 키를 취소하세요.

서비스 계정이 활성화되었으므로 새용자 정보 인증 목록에서 계정이 표시됩니다.

gcloud auth list
        Credentialed Accounts
ACTIVE    ACCOUNT
*         my_service_account@developer.gserviceaccount.com

To set the active account, run:
    $ gcloud config set account my_service_account@developer.gserviceaccount.com

맨 위로