저장소 태그

Google Cloud 조직 내에서 보고, 감사, 액세스 제어를 위해 태그를 사용하여 Google Cloud에서 저장소와 기타 리소스를 그룹화합니다.

자동화 및 청구 목적으로 Artifact Registry 내에서 저장소를 그룹화하려면 라벨을 사용합니다. 태그와 라벨은 서로 독립적으로 작동하며 동일한 저장소에 모두 적용할 수 있습니다. 태그와 라벨 간의 차이점에 대한 자세한 내용은 태그 및 라벨을 참조하세요.

태그란 무엇인가요?

태그는 세분화된 액세스 제어를 위해 리소스에 적용할 수 있는 키-값 쌍입니다.

프로젝트 관리자는 조직 수준에서 Google Cloud 간에 리소스에 대해 태그를 만들고 Resource Manager에서 이를 관리합니다. Artifact Registry 저장소에 태그를 연결하면 사용자는 IAM 조건이 있는 태그를 사용하여 저장소에 조건부 액세스 권한을 부여할 수 있습니다. 개별 아티팩트에 태그를 연결할 수 없습니다.

다음 제한사항에 유의하세요.

  • 조직 정책은 상위 프로젝트 이상에서 상속된 태그를 조건부로 참조할 수 있지만 저장소에 직접 연결하는 태그를 지원하지 않습니다.

  • 태그 연결 및 저장소의 태그 바인딩 보기에는 Cloud 감사 로그가 생성되지 않습니다.

태그 및 태그를 사용한 조건부 액세스 제어에 대한 자세한 내용은 태그 및 액세스 제어를 참조하세요.

필수 권한

필요한 권한은 수행할 작업에 따라 달라집니다.

원하는 권한을 얻으려면 관리자에게 리소스 계층 구조의 적절한 수준에서 제안된 역할을 부여해 달라고 요청하세요.

태그 보기

태그 정의와 리소스에 연결된 태그를 보려면 태그 뷰어 역할(roles/resourcemanager.tagViewer) 또는 다음 권한이 포함된 다른 역할이 필요합니다.

필수 권한

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • listTagBindings: 적절한 리소스 유형. 예를 들면 Compute Engine 인스턴스에 연결된 태그를 보려면 compute.instances.listTagBindings가 필요합니다.
  • listEffectiveTags
  • : 적절한 리소스 유형. 예를 들어 Compute Engine 인스턴스에 연결되거나 상속된 모든 태그를 보려면 compute.instances.listEffectiveTags가 필요합니다.

조직 수준에서 태그를 보려면 조직 리소스에 대한 조직 뷰어 역할(roles/resourcemanager.organizationViewer)이 필요합니다.

태그 관리

태그 정의를 생성, 업데이트, 삭제하려면 태그 관리자 역할(roles/resourcemanager.tagAdmin)이나 다음 권한이 포함된 다른 역할이 필요합니다.

필수 권한

  • resourcemanager.tagKeys.create
  • resourcemanager.tagKeys.update
  • resourcemanager.tagKeys.delete
  • resourcemanager.tagKeys.list
  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.getIamPolicy
  • resourcemanager.tagKeys.setIamPolicy
  • resourcemanager.tagValues.create
  • resourcemanager.tagValues.update
  • resourcemanager.tagValues.delete
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • resourcemanager.tagValues.getIamPolicy
  • resourcemanager.tagValues.setIamPolicy

조직 수준에서 태그를 관리하려면 조직 리소스에 대한 조직 뷰어 역할(roles/resourcemanager.organizationViewer)이 필요합니다.

리소스의 태그 관리

리소스에 연결된 태그를 추가하고 삭제하려면 태그 값태그 값이 연결된 리소스 모두에 태그 사용자 역할(roles/resourcemanager.tagUser)이나 동등한 권한을 가지 다른 역할이 필요합니다. 태그 사용자 역할에는 다음 권한이 포함됩니다.

필수 권한

  • 태그 값을 연결할 리소스에 필요한 권한
    • 리소스별 createTagBinding 권한(예: Compute Engine 인스턴스의 경우 compute.instances.createTagBinding)
    • 리소스별 deleteTagBinding 권한(예: Compute Engine 인스턴스의 경우 compute.instances.deleteTagBinding)
  • 태그 값에 필요한 권한:
    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete
  • 프로젝트 및 태그 정의를 볼 수 있는 권한:
    • resourcemanager.tagValues.get
    • resourcemanager.tagValues.list
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.projects.get

저장소에 태그 연결

프로젝트 관리자가 태그를 만든 후에 개발자가 태그를 저장소에 연결할 수 있습니다. 각 태그에는 키와 값이 있습니다. 값을 저장소에 바인딩하여 태그를 저장소에 지정합니다.

저장소에 태그를 연결하려면 다음 안내를 따르세요.

콘솔

  1. 관리자로부터 연결할 태그 값을 가져옵니다.

    태그 값을 다음 유형의 식별자 중 하나와 연결할 수 있습니다.

    • 네임스페이스화된 이름(예: 123456789012/env/dev)
    • 영구 ID(예: tagValues/567890123456)
  2. Google Cloud 콘솔에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  3. 태그를 지정할 저장소를 선택합니다.

  4. 저장소 세부정보 섹션에서 더보기를 클릭합니다.

    상속된 태그를 포함하여 저장소의 기존 태그가 표시됩니다.

  5. 수정 태그 수정 아이콘을 클릭합니다.

  6. 직접 태그 섹션에서 범위 선택을 클릭합니다.

  7. 저장소 프로젝트를 선택합니다.

  8. 필드에 입력하여 태그 목록을 필터링한 후 태그 키를 선택합니다.

  9. 필드에 입력하여 태그 목록을 필터링한 후 태그 값을 선택합니다.

  10. 저장을 클릭합니다.

  11. 확인을 클릭합니다.

    태그가 저장소에 연결됩니다.

gcloud CLI

  1. 관리자로부터 연결할 태그 값을 가져옵니다.

    태그 값을 다음 유형의 식별자 중 하나와 연결할 수 있습니다.

    • 네임스페이스화된 이름(예: 123456789012/env/dev)
    • 영구 ID(예: tagValues/567890123456)
  2. 다음 명령어를 사용하여 태그 값을 연결합니다.

    gcloud alpha resource-manager tags bindings create \
        --tag-value=TAG_VALUE \
        --parent=REPOSITORY_ID \
        --location=LOCATION
    

    다음 값을 바꿉니다.

    • TAG_VALUE: 연결할 태그 값의 영구 ID 또는 네임스페이스화된 이름입니다.

    • REPOSITORY_ID: 리소스 유형(//artifactregistry.googleapis.com/)을 식별하는 API 도메인 이름을 포함하여 저장소의 전체 ID입니다(예: //artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo).

    • LOCATION: 저장소의 위치입니다.

    다음 예시를 참조하세요.

    • 태그 값: 815471563813/env/dev
    • 프로젝트: my-project
    • 저장소: my-repo
    • 저장소 위치: us-east1

    다음 gcloud CLI 명령어는 태그를 저장소에 연결합니다.

    gcloud alpha resource-manager tags bindings create \
        --tag-value=815471563813/env/dev \
        --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
        --location=us-east1
    

저장소에 연결된 태그 나열

액세스 권한이 있는 리소스에 연결된 태그를 나열할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 보려는 저장소를 선택합니다.

  3. 저장소 세부정보 섹션에서 더보기를 클릭합니다.

    태그 목록에는 직접 태그 및 리소스 계층 구조의 상위에서 상속된 태그가 포함된 모든 저장소 태그가 표시됩니다.

gcloud CLI

저장소에 연결된 태그를 나열하려면 다음 명령어를 실행합니다.

gcloud alpha resource-manager tags bindings list \
        --parent=REPOSITORY_ID \
        --location=LOCATION

이 명령어는 지정된 리소스에 직접 연결된 태그만 나열하므로 상위 프로젝트 이상에서 상속된 태그는 반환하지 않습니다. --parent 플래그로 저장소 대신 프로젝트를 지정하여 상위 프로젝트에서 상속된 태그를 나열할 수 있습니다.

예를 들어 이 명령어는 my-project 프로젝트 및 us-east1 위치의 my-repo 저장소에 연결된 태그를 나열합니다.

gcloud alpha resource-manager tags bindings list \
    --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
    --location=us-east1

이 명령어는 프로젝트 번호 7890123456에 연결된 태그를 나열합니다.

gcloud alpha resource-manager tags bindings list \
    --parent=//cloudresourcemanager.googleapis.com/projects/7890123456 \

저장소에서 태그 분리

저장소에 직접 연결된 태그를 분리할 수 있습니다. 상위 프로젝트 또는 리소스 계층의 다른 부분에서 상속되는 태그를 삭제해야 하는 경우 프로젝트 관리자는 태그가 연결된 리소스에서 분리해야 합니다.

저장소에 연결된 태그를 삭제하려면 다음 안내를 따르세요.

콘솔

  1. 삭제할 태그 값을 가져옵니다. 태그 값을 모르는 경우 저장소에 연결된 태그를 나열합니다.

  2. Google Cloud 콘솔에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  3. 저장소를 선택합니다.

  4. 저장소 세부정보 섹션에서 더보기를 클릭합니다.

    상속된 태그를 포함하여 저장소의 기존 태그가 표시됩니다.

  5. 수정 태그 수정 아이콘을 클릭합니다.

  6. 직접 태그 섹션에서 삭제할 태그를 찾습니다.

  7. 삭제할 태그 옆에 있는 삭제 아이콘을 클릭합니다.

  8. 저장을 클릭합니다.

  9. 확인을 클릭합니다.

    태그가 저장소에서 삭제됩니다.

gcloud CLI

  1. 삭제할 태그 값을 가져옵니다. 태그 값을 모르는 경우 저장소에 연결된 태그를 나열합니다.

  2. 다음 명령어를 사용하여 태그 값을 분리합니다.

    gcloud alpha resource-manager tags bindings delete \
        --tag-value=TAG_VALUE \
        --parent=REPOSITORY_ID \
        --location=LOCATION
    

    다음 값을 바꿉니다.

    • TAG_VALUE: 분리할 태그 값입니다.

    • REPOSITORY_ID: 리소스 유형(//artifactregistry.googleapis.com/)을 식별하는 API 도메인 이름을 포함하여 저장소의 전체 ID입니다(예: //artifactregistry.googleapis.com/projects/my-project/my-repo).

    • LOCATION: 저장소의 위치입니다.

    다음 예시를 참조하세요.

    • 태그 값: 815471563813/env/dev
    • 프로젝트: my-project
    • 저장소: my-repo
    • 저장소 위치: us-east1

    다음 gcloud CLI 명령어는 저장소에서 태그를 분리합니다.

    gcloud alpha resource-manager tags bindings delete \
        --tag-value=815471563813/env/dev \
        --parent=//artifactregistry.googleapis.com/projects/my-project/locations/us-east1/repositories/my-repo \
        --location=us-east1
    

다음 단계