2017-12-07 5 views
2

GCP의 모든 프로젝트에서 모든 서버의 스냅 샷을 스크립트에서 가져와야합니다.스크립트를 사용하여 GCP에서 스냅 샷 찍기

프로젝트 수 : 05

가 서버에서 스크립트를 작성 : 프로젝트 당 10 개

서버 자동화 서버

스크립트가 : 지금 현재로

gcloud compute --project $PROJECT_ID disks snapshot ${DEVICE_NAME} --snapshot-names gcp-${DEVICE_NAME}-${DATE} --zone ${INSTANCE_ZONE})

을 내가 내 이메일을 내 X 전자 메일을 구성했습니다 서버 으로 gcloud auth (내 이메일 ID는 모든 프로젝트의 스냅 샷을 찍을 수 있도록 모든 프로젝트에 액세스 할 수 있습니다.) 그래서 스크립팅을 통해 동일한 작업을 수행 할 수 있습니다.

나는 사용자 인증 (전자 메일 id를 언급 함)을 통해이 작업을 수행하지 않기를 바란다.

모든 응용 프로그램이나 API 키 등을 사용하여 위 작업을 수행 할 수있는 가능성이 있습니까? 모든 프로젝트에 대한 액세스 권한을 응용 프로그램이나 API 키에 부여하고이를 사용하여 스냅 샷을 사용자 X가 5 개 프로젝트에 액세스 할 수있는 경우

및 사용자 Y는 5 개 프로젝트의 또 다른 세트에 액세스 할 수 있습니다 스크립트

가 사용됩니다.

gcloud auth 응용 프로그램 또는 API 키 등을 통해 수행 된 경우이 시간에 스크립트 를 사용하는 모든 10 개 프로젝트에 대한 스냅 샷을 취할 필요,

이 가능하거나 위의 경우에 다른 방법

답변

1

이 가능합니다 :

  1. 클라우드 프로젝트에서 service account을 만듭니다.
  2. 각 10 개의 프로젝트로 이동하여 서비스 계정에 "Editor", "compute.instanceAdmin"또는 "compute.storageAdmin"IAM 권한을 부여하십시오.
  3. 스크립트에 gcloud auth activate-service-account을 사용하면 스크립트가 서비스 계정으로 실행됩니다.

다른 프로젝트에 여러 서비스 계정을 사용할 수도 있습니다.

+0

내 프로젝트 중 하나에서 서비스 계정을 만드는 동안 '프로젝트 권한을 수정할 수있는 권한이 없습니다. 서비스 계정에이 프로젝트에 대한 액세스 권한을 부여하려면 프로젝트 소유자에게 프로젝트 권한에 추가하도록 요청하십시오 .'. 현재 나는'editor','service account admin'권한을 가지고 있습니다. 이것 이외의 모든 것은 서비스 계정을 생성/편집하기 위해'소유자 '로부터 모든 액세스가 필요합니다. –