Container Registry 서비스 계정

Container Registry 서비스 에이전트는 Google Cloud 서비스와 상호작용할 때 Container Registry를 대신하여 동작하는 Google 관리형 서비스 계정입니다.

최소 권한의 보안 원칙을 적용하도록 이 서비스 계정에 2020년 10월 5일 이후에 Container Registry API가 사용 설정된 프로젝트의 Container Registry 서비스 에이전트 역할이 부여됩니다. 이 역할에는 다음 권한이 있습니다.

  • 주제 게시: pubsub.topics.publish
  • 스토리지 객체 ACL 읽기: storage.objects.getIamPolicy
  • 스토리지 객체 데이터 및 메타데이터 읽기: storage.objects.get
  • 버킷의 스토리지 객체 나열 및 객체 메타데이터 읽기: storage.objects.list

이전에 Container Registry 서비스 계정에 편집자 역할이 부여되었습니다. 편집자 역할은 프로젝트에서 대부분의 리소스를 만들고 삭제할 수 있는 권한을 부여하므로 Container Registry 서비스 계정에 이 역할이 있으면 권한을 제한하는 것이 좋습니다.

서비스 계정 ID 찾기

Container Registry 서비스 계정의 ID는 다음과 같습니다.

service-[PROJECT_NUMBER]@containerregistry.iam.gserviceaccount.com

서비스 계정을 찾으려면 프로젝트에 액세스할 수 있는 주 구성원 목록을 확인합니다.

Console

  1. IAM 페이지로 이동합니다.

  2. Google 관리 계정을 주 구성원 목록에 추가하려면 Google 제공 역할 부여 포함 체크박스를 선택합니다.

  3. 목록을 필터링하려면 필터 필드에 containerregistry를 입력합니다.

gcloud

다음 명령어를 실행하여 containerregistry 문자열이 포함된 주 구성원을 나열합니다.

gcloud projects get-iam-policy PROJECT-ID \
    --flatten="bindings[].members"
    --filter="containerregistry"

PROJECT-ID를 Google Cloud 프로젝트 ID로 바꿉니다.

현재 권한 확인

Container Registry 서비스 계정의 현재 권한을 확인하려면 다음 명령어를 실행합니다.

gcloud projects get-iam-policy PROJECT-ID  \
    --flatten="bindings[].members" \
    --format='table(bindings.role)' \
    --filter="bindings.members:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com"

각 항목의 의미는 다음과 같습니다.

  • PROJECT-ID는 Google Cloud 프로젝트 ID입니다.
  • PROJECT-NUMBER는 Google Cloud 프로젝트 번호입니다.

Google Cloud Console에서 또는 다음 명령어를 사용하여 프로젝트 ID와 프로젝트 번호를 가져올 수 있습니다.

PROJECT=$(gcloud config get-value project)
echo $PROJECT && gcloud projects list --filter="$PROJECT" --format="value(PROJECT_NUMBER)"

권한 변경

Container Registry 서비스 에이전트 역할을 부여하고 편집자 역할을 취소하려면 다음 안내를 따르세요.

  1. 다음 명령어를 사용하여 Container Registry 서비스 에이전트 역할을 부여합니다.

    gcloud projects add-iam-policy-binding PROJECT-ID \
    --member=serviceAccount:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com --role=roles/containerregistry.ServiceAgent
    
  2. 다음 명령어를 사용하여 편집자 역할을 취소합니다.

    gcloud projects remove-iam-policy-binding PROJECT-ID \
    --member=serviceAccount:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com --role=roles/editor