태그 생성 및 관리

이 가이드에서는 서비스 계정 리소스의 태그를 만들고 관리하는 방법을 설명합니다.

태그 정보

태그는 Google Cloud 내 리소스에 연결할 수 있는 키-값 쌍입니다. 태그를 사용하면 리소스에 특정 태그가 있는지 여부에 따라 정책을 조건부로 허용하거나 거부할 수 있습니다. 예를 들어 리소스에 특정 태그가 있는지 여부에 따라 Identity and Access Management(IAM) 역할을 조건부로 부여할 수 있습니다. 태그에 대한 자세한 내용은 태그 개요를 참조하세요.

값을 Google 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

서비스 계정에 태그를 연결하는 데 필요한 권한을 얻으려면 서비스 계정에 대한 서비스 계정 관리자(roles/iam.ServiceAccountAdmin) IAM 역할을 부여해 달라고 관리자에게 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

태그 키 및 값 만들기

태그를 연결하려면 먼저 태그를 만들고 값을 구성해야 합니다. 태그 키 및 태그 값을 만들려면 태그 만들기태그 값 추가를 참조하세요.

서비스 계정에 태그 연결

태그를 만든 후에는 이를 서비스 계정에 연결해야 합니다.

gcloud

서비스 계정에 태그를 연결하려면 gcloud resource-manager tags bindings create 명령어를 사용하여 태그 바인딩 리소스를 만들어야 합니다.

      gcloud resource-manager tags bindings create \
          --tag-value=TAGVALUE_NAME \
          --parent=RESOURCE_ID
      

다음을 바꿉니다.

  • TAGVALUE_NAME: 연결된 태그 값의 영구 ID 또는 네임스페이스 이름입니다(예: tagValues/567890123456).
  • RESOURCE_ID: API 도메인 이름(//iam.googleapis.com/)을 포함한 서비스 계정의 고유 ID 또는 이메일입니다. 예를 들어 프로젝트 test-project에서 고유 ID가 1029384756인 서비스 계정의 전체 ID는 //iam.googleapis.com/projects/test-project/serviceAccounts/1029384756입니다.

서비스 계정에 연결된 태그 나열

서비스 계정에 직접 연결되거나 서비스 계정에 상속된 태그 바인딩 목록을 볼 수 있습니다.

gcloud

리소스에 연결된 태그 바인딩 목록을 가져오려면 gcloud resource-manager tags bindings list 명령어를 사용합니다.

      gcloud resource-manager tags bindings list \
          --parent=RESOURCE_ID
      

다음을 바꿉니다.

  • RESOURCE_ID: API 도메인 이름(//iam.googleapis.com/)을 포함한 서비스 계정의 고유 ID 또는 이메일입니다. 예를 들어 프로젝트 test-project에서 고유 ID가 1029384756인 서비스 계정의 전체 ID는 //iam.googleapis.com/projects/test-project/serviceAccounts/1029384756입니다.

다음과 비슷한 응답이 표시됩니다.

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
          tagValue: tagValues/567890123456
          resource: //iam.googleapis.com/projects/test-project/serviceAccounts/1029384756
      

서비스 계정에서 태그 분리

서비스 계정에 직접 연결된 태그를 분리할 수 있습니다. 상속된 태그는 동일한 키와 다른 값으로 태그를 연결하여 재정의할 수 있지만 분리할 수는 없습니다. 태그를 삭제하려면 먼저 태그와 연결된 모든 리소스에서 키와 값을 분리해야 합니다.

gcloud

태그 바인딩을 삭제하려면 gcloud resource-manager tags bindings delete 명령어를 사용합니다.

      gcloud resource-manager tags bindings delete \
          --tag-value=TAGVALUE_NAME \
          --parent=RESOURCE_ID
      

다음을 바꿉니다.

  • TAGVALUE_NAME: 연결된 태그 값의 영구 ID 또는 네임스페이스 이름입니다(예: tagValues/567890123456).
  • RESOURCE_ID: API 도메인 이름(//iam.googleapis.com/)을 포함한 서비스 계정의 고유 ID 또는 이메일입니다. 예를 들어 프로젝트 test-project에서 고유 ID가 1029384756인 서비스 계정의 전체 ID는 //iam.googleapis.com/projects/test-project/serviceAccounts/1029384756입니다.

태그 키 및 값 삭제

태그 키 또는 값 정의를 삭제할 때는 태그가 서비스 계정에서 분리되었는지 확인하세요. 태그 정의 자체를 삭제하기 전에 태그 바인딩이라는 기존 태그 연결을 삭제해야 합니다. 태그 키와 태그 값을 삭제하려면 태그 삭제를 참조하세요.

Identity and Access Management 조건 및 태그

태그와 IAM 조건을 사용하여 계층 구조 내 사용자에게 역할 바인딩을 조건부로 부여할 수 있습니다. 리소스에 연결된 태그를 변경하거나 삭제하면 조건부 역할 바인딩이 포함된 IAM 정책이 적용되는 경우 해당 리소스에 대한 사용자 액세스 권한이 삭제될 수 있습니다. 자세한 내용은 Identity and Access Management 조건 및 태그를 참조하세요.

다음 단계