태그 생성 및 관리
이 가이드에서는 Firestore 데이터베이스에서 태그를 만들고 관리하는 방법을 설명합니다.
태그 정보
태그는 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
Firestore 인스턴스에 태그를 연결하려면 Datastore 소유자 역할(roles/datastore.owner
)이 필요합니다.
태그 키 및 값 만들기
태그를 연결하려면 먼저 태그를 만들고 값을 구성해야 합니다. 태그 키 및 태그 값을 만들려면 태그 만들기 및 태그 값 추가를 참조하세요.
데이터베이스에 태그 연결
태그를 만든 후에는 이를 데이터베이스에 연결해야 합니다.
gcloud
데이터베이스에 태그를 연결하려면 gcloud resource-manager tags bindings create
명령어를 사용하여 태그 바인딩 리소스를 만들어야 합니다.
gcloud resource-manager tags bindings create \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
다음을 바꿉니다.
TAGVALUE_NAME
: 연결된 태그 값의 영구 ID 또는 네임스페이스 이름입니다(예:tagValues/567890123456
).-
RESOURCE_ID
는 리소스 유형(//firestore.googleapis.com/
)을 식별하는 API 도메인 이름을 포함한 리소스의 전체 ID입니다. 예를 들어 태그를projects/firestore-test-project
의 데이터베이스에 연결하려면 전체 ID는//firestore.googleapis.com/projects/firestore-test-project/databases/\(default\)
입니다. LOCATION
: 리소스 위치입니다. 태그를 폴더나 프로젝트와 같은 전역 리소스에 연결하는 경우 이 플래그를 생략해야 합니다. 리전별 또는 영역별 리소스에 태그를 연결하는 경우 위치를 지정해야 합니다(예:us-central1
(리전) 또는us-central1-a
(영역)).
데이터베이스에 연결된 태그 나열
데이터베이스에 직접 연결되거나 상속되는 태그 바인딩 목록을 볼 수 있습니다.
gcloud
리소스에 연결된 태그 바인딩 목록을 가져오려면 gcloud resource-manager tags bindings list
명령어를 사용합니다.
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID \ --location=LOCATION
다음을 바꿉니다.
-
RESOURCE_ID
는 리소스 유형(//firestore.googleapis.com/
)을 식별하는 API 도메인 이름을 포함한 리소스의 전체 ID입니다. 예를 들어 태그를projects/firestore-test-project
의 데이터베이스에 연결하려면 전체 ID는//firestore.googleapis.com/projects/firestore-test-project/databases/\(default\)
입니다. LOCATION
: 리소스 위치입니다. 폴더나 프로젝트와 같은 전역 리소스에 연결된 태그를 보는 경우 이 플래그를 생략해야 합니다. 리전별 또는 영역별 리소스에 연결된 태그를 보는 경우 위치를 지정해야 합니다(예:us-central1
(리전) 또는us-central1-a
(영역)).
다음과 비슷한 응답이 표시됩니다.
name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456 tagValue: tagValues/567890123456 resource: //firestore.googleapis.com/projects/firestore-test-project/databases/(default)
데이터베이스에서 태그 분리
데이터베이스에 직접 연결된 태그는 분리할 수 있습니다. 상속된 태그는 동일한 키와 다른 값으로 태그를 연결하여 재정의할 수 있지만 분리할 수는 없습니다. 태그를 삭제하려면 먼저 태그와 연결된 모든 리소스에서 키와 값을 분리해야 합니다.
gcloud
태그 바인딩을 삭제하려면 gcloud resource-manager tags bindings delete
명령어를 사용합니다.
gcloud resource-manager tags bindings delete \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
다음을 바꿉니다.
TAGVALUE_NAME
: 연결된 태그 값의 영구 ID 또는 네임스페이스 이름입니다(예:tagValues/567890123456
).-
RESOURCE_ID
는 리소스 유형(//firestore.googleapis.com/
)을 식별하는 API 도메인 이름을 포함한 리소스의 전체 ID입니다. 예를 들어 태그를projects/firestore-test-project
의 데이터베이스에 연결하려면 전체 ID는//firestore.googleapis.com/projects/firestore-test-project/databases/\(default\)
입니다. LOCATION
: 리소스 위치입니다. 태그를 폴더나 프로젝트와 같은 전역 리소스에 연결하는 경우 이 플래그를 생략해야 합니다. 리전별 또는 영역별 리소스에 태그를 연결하는 경우 위치를 지정해야 합니다(예:us-central1
(리전) 또는us-central1-a
(영역)).
태그 키 및 값 삭제
태그 키 또는 값 정의를 삭제할 때는 태그가 데이터베이스에서 분리되었는지 확인합니다. 태그 정의 자체를 삭제하기 전에 태그 바인딩이라는 기존 태그 연결을 삭제해야 합니다. 태그 키와 태그 값을 삭제하려면 태그 삭제를 참조하세요.
Identity and Access Management 조건 및 태그
태그와 IAM 조건을 사용하여 계층 구조 내 사용자에게 역할 바인딩을 조건부로 부여할 수 있습니다. 리소스에 연결된 태그를 변경하거나 삭제하면 조건부 역할 바인딩이 포함된 IAM 정책이 적용되는 경우 해당 리소스에 대한 사용자 액세스 권한이 삭제될 수 있습니다. 자세한 내용은 Identity and Access Management 조건 및 태그를 참조하세요.
다음 단계
- 태그를 지원하는 다른 서비스를 참조하세요.
- IAM에서 태그를 사용하는 방법은 태그 및 액세스 제어를 참조하세요.