이 페이지에서는 Google Cloud 태그와 Pub/Sub에서 이 태그를 사용하는 방법을 설명합니다. 태그는 Pub/Sub 주제, 구독, 스냅샷에 적용할 수 있습니다. Pub/Sub 스키마에 태그를 적용하는 기능이 지원될 예정입니다.
태그 정보
태그는Google Cloud내에서 리소스에 연결할 수 있는 키-값 쌍입니다. 태그를 사용하면 리소스에 특정 태그가 있는지 여부에 따라 정책을 조건부로 허용하거나 거부할 수 있습니다. 예를 들어 리소스에 특정 태그가 있는지 여부에 따라 Identity and Access Management(IAM) 역할을 조건부로 부여할 수 있습니다. 태그에 대한 자세한 내용은 태그 개요를 참조하세요.
값을 Google Cloud 리소스에 연결하는 태그 바인딩 리소스를 만들어 태그를 리소스에 연결합니다.
필수 권한
태그를 관리하는 데 필요한 권한을 얻으려면 관리자에게 다음의 IAM 역할을 부여해 달라고 요청합니다.
- 태그 뷰어(
roles/resourcemanager.tagViewer) - 태그가 연결된 리소스 - 조직 수준에서 태그를 보고 관리하는 데 필요한 권한:
조직 뷰어(
roles/resourcemanager.organizationViewer) - 조직 -
태그 정의 생성, 업데이트, 삭제에 필요한 권한:
태그 관리자(
roles/resourcemanager.tagAdmin) - 태그를 생성, 업데이트 또는 삭제할 리소스 - 리소스에 태그를 연결하고 삭제하는 데 필요한 권한:
태그 사용자(
roles/resourcemanager.tagUser) - 태그 값과 해당 태그 값을 연결하거나 삭제하는 리소스
역할 부여 방법에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
Pub/Sub 주제, 구독 또는 스냅샷에 태그를 연결하려면 Pub/Sub 편집자 역할 (roles/pubsub.editor)이 필요합니다.
태그 키 및 값 만들기
태그를 연결하려면 먼저 태그를 만들고 값을 구성해야 합니다. 태그 키 및 태그 값을 만들려면 태그 만들기 및 태그 값 추가를 참조하세요.
리소스 생성 중에 태그 추가
주제, 구독 또는 스냅샷을 만들 때 태그를 추가할 수 있습니다. 리소스 생성 중에 태그를 추가하면 리소스에 필수 메타데이터를 즉시 제공할 수 있으며, 더 나은 구성, 비용 추적, 자동화된 정책 적용에도 도움이 됩니다.
콘솔
- Google Cloud 콘솔에서 Pub/Sub 페이지로 이동합니다.
- 새 주제, 구독 또는 스냅샷을 만드는 옵션을 선택합니다.
- 태그 관리를 클릭합니다.
- 조직이 태그 관리 패널에 표시되지 않으면 태그 범위 선택을 클릭합니다. 조직 또는 프로젝트 수준에서 정의된 태그를 추가하도록 선택한 다음 해당 ID를 입력합니다.
- 태그 추가를 클릭합니다.
- 목록에서 연결할 태그의 키를 선택합니다. 키워드를 입력하여 목록을 필터링할 수 있습니다.
- 목록에서 연결할 태그의 값을 선택합니다. 키워드를 입력하여 목록을 필터링할 수 있습니다.
- 저장을 클릭합니다. 태그 섹션이 태그 정보로 업데이트됩니다.
- 주제, 구독 또는 스냅샷을 만듭니다. 새 주제, 구독 또는 스냅샷이 제공된 태그로 생성됩니다.
gcloud
주제, 구독 또는 스냅샷을 만드는 동안 태그를 추가하려면 다음 명령어를 실행합니다.
gcloud pubsub topics create TOPIC_ID --tags=TAG_KEY=TAG_VALUE
다음을 바꿉니다.
- TOPIC_ID: 주제의 ID
- TAG_KEY: 연결된 태그 키의 영구 ID 또는 네임스페이스 이름입니다(예: tagKeys/567890123456).
- TAG_VALUE: 연결된 태그 값의 영구 ID 또는 네임스페이스 이름(예: tagValues/567890123456)
태그를 쉼표로 구분하여 여러 태그를 지정합니다(예: TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2).
API
다음 URL로 POST 요청을 보냅니다.
https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID요청 본문에 다음 JSON을 제공합니다.
{
"name": "projects/PROJECT_ID/topics/TOPIC_ID"
"tags": {
"TAGKEY_NAME": "TAGVALUE_NAME"
}
}
다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- TOPIC_ID: 주제의 ID
- TAGKEY_NAME: 연결된 태그 키의 영구 ID 또는 네임스페이스 이름(예: tagKeys/567890123456)
- TAGVALUE_NAME: 연결된 태그 값의 영구 ID 또는 네임스페이스 이름(예: tagValues/567890123456)
필수 태그 적용
조직 정책을 준수하기 위해 리소스가 생성될 때 비용 센터 태그와 같은 특정 태그가 있는지 확인하도록 리소스에 필수 태그를 적용할 수 있습니다. 조직 정책과 커스텀 제약 조건을 사용하여 이를 수행할 수 있습니다. 강제 적용은 리소스 생성 시 발생하며 필수 태그가 없는 리소스의 프로비저닝을 방지합니다. 자세한 내용은 조직 정책을 사용하여 필수 태그 시행을 참고하세요.
태그를 적용하도록 맞춤 제약 조건 설정
콘솔
Google Cloud 콘솔에서 조직 정책 페이지로 이동합니다.
페이지 상단의 프로젝트 선택 도구를 선택합니다.
프로젝트 선택 도구에서 커스텀 제약 조건을 적용할 조직을 선택합니다.
다음 매개변수를 사용하여 맞춤 제약 조건 설정
- 시행 방법:
Govern tags - 리소스 유형: 필수 태그를 적용하려는 Google CloudREST 리소스의 정규화된 이름입니다(예:
file.googleapis.com/Instance). - 조건: 리소스에 적용할 태그 키를 지정하는 Common Expression Language(CEL) 조건입니다(예: 태그 키
1234567890/owner의 태그 바인딩을 적용하는resource.hasDirectTagKey("1234567890/owner")).resource.hasDirectTagKeyCEL 함수는 리소스에 직접 적용된 태그만 일치시키며 리소스 계층 구조에서 상위 항목으로부터 상속된 태그는 고려하지 않습니다. - 작업:
Allow또는Deny- 허용: 지정된 조건이 충족되면 리소스를 만들거나 업데이트하는 작업이 허용됩니다.
- 거부: 지정된 조건이 충족되면 리소스를 만들거나 업데이트하는 작업이 차단됩니다.
- 시행 방법:
제약 조건 만들기를 클릭합니다.
gcloud
커스텀 제약조건에 대한 YAML 파일을 만듭니다.
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- GOVERN_TAGS
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
다음을 바꿉니다.
ORGANIZATION_ID: 조직 ID(예:1234567890)CONSTRAINT_NAME: 새 커스텀 제약 조건에 사용할 이름. 커스텀 제약 조건은custom.으로 시작해야 하며 대문자, 소문자 또는 숫자만 포함할 수 있습니다(예:custom.enforceMandatoryTags).RESOURCE_NAME: 필수 태그를 적용할Google Cloud REST 리소스의 정규화된 이름입니다(예:file.googleapis.com/Instance).CONDITION: 리소스에 적용할 태그 키를 지정하는 Common Expression Language (CEL) 조건입니다. 예를 들어1234567890/owner태그 키의 태그 바인딩을 적용하려면resource.hasDirectTagKey("1234567890/owner")을 사용합니다.ACTION:condition이 충족될 때 수행할 작업.ALLOW또는DENY일 수 있습니다.거부 작업은 지정된 조건이 충족되면 리소스를 만들거나 업데이트하는 작업이 차단됨을 의미합니다.
허용 작업은 지정된 조건이 충족되면 리소스를 만들거나 업데이트하는 작업이 허용됨을 의미합니다. 이는 조건에 명시적으로 나열된 경우를 제외한 다른 모든 사례가 차단된다는 의미이기도 합니다.
DISPLAY_NAME: 제약조건에 대한 사용자 친화적인 이름. 이 필드의 최대 길이는 200자(영문 기준)입니다.DESCRIPTION: 정책을 위반할 때 오류 메시지로 표시할 사용자 친화적인 제약 조건 설명. 이 필드의 최대 길이는 2,000자(영문 기준)입니다.
커스텀 제약 조건을 설정하여 조직의 조직 정책에 사용할 수 있도록 합니다.
커스텀 제약 조건을 정의한 후 조직 정책 변경사항을 테스트하고 분석하고 제약 조건을 적용할 수 있습니다.
기존 리소스에 태그 추가
기존 주제, 구독 또는 스냅샷에 태그를 추가하려면 다음 단계를 따르세요.
콘솔
- Google Cloud 콘솔에서 Pub/Sub 페이지로 이동합니다.
- 태그를 연결하려는 리소스의 페이지를 선택합니다. 예를 들어 주제에 태그를 연결하려면 주제 페이지로 이동합니다.
- 태그를 클릭합니다.
- 조직이 태그 패널에 표시되지 않으면 범위 선택을 클릭합니다. 조직을 선택하고 열기를 클릭합니다.
- 태그 추가를 클릭합니다.
- 목록에서 연결할 태그의 키를 선택합니다. 키워드를 입력하여 목록을 필터링할 수 있습니다.
- 목록에서 연결할 태그의 값을 선택합니다. 키워드를 입력하여 목록을 필터링할 수 있습니다.
- 저장을 클릭합니다.
- 확인 대화상자에서 확인을 클릭하여 태그를 연결합니다.
태그가 업데이트되었음을 확인하는 알림이 표시됩니다.
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는 리소스 유형(//pubsub.googleapis.com/)을 식별하는 API 도메인 이름을 포함한 리소스의 전체 ID입니다. 예를 들어 태그를/projects/PROJECT_ID/topics/TOPIC_ID에 연결하려면 전체 ID는//pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID입니다.
리소스에 연결된 태그 나열
주제, 구독 또는 스냅샷에 직접 연결되거나 상속되는 태그 바인딩 목록을 볼 수 있습니다.
콘솔
- Google Cloud 콘솔에서 Pub/Sub 페이지로 이동합니다.
태그를 보려는 리소스의 페이지를 선택합니다. 예를 들어 주제의 태그를 보려면 주제 페이지로 이동합니다.
태그는 콘솔의 주제 페이지에 있는 태그 섹션에 표시됩니다.
gcloud
리소스에 연결된 태그 바인딩 목록을 가져오려면 gcloud resource-manager tags bindings list 명령어를 사용합니다.
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID
다음을 바꿉니다.
-
RESOURCE_ID는 리소스 유형(//pubsub.googleapis.com/)을 식별하는 API 도메인 이름을 포함한 리소스의 전체 ID입니다. 예를 들어 태그를/projects/PROJECT_ID/topics/TOPIC_ID에 연결하려면 전체 ID는//pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID입니다.
다음과 비슷한 응답이 표시됩니다.
name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
tagValue: tagValues/567890123456
resource: //pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
리소스에서 태그 분리
주제, 구독 또는 스냅샷에 직접 연결된 태그를 분리할 수 있습니다. 상속된 태그는 동일한 키와 다른 값으로 태그를 연결하여 재정의할 수 있지만 분리할 수는 없습니다.
콘솔
- Google Cloud 콘솔에서 Pub/Sub 페이지로 이동합니다.
- 태그를 삭제하려는 리소스의 페이지를 선택합니다. 예를 들어 주제에서 태그를 삭제하려면 주제 페이지로 이동합니다.
- 태그를 클릭합니다.
- 태그 패널에서 분리하려는 태그 옆에 있는 항목 삭제를 클릭합니다.
- 저장을 클릭합니다.
- 확인 대화상자에서 확인을 클릭하여 태그를 분리합니다.
태그가 업데이트되었음을 확인하는 알림이 표시됩니다.
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는 리소스 유형(//pubsub.googleapis.com/)을 식별하는 API 도메인 이름을 포함한 리소스의 전체 ID입니다. 예를 들어 태그를/projects/PROJECT_ID/topics/TOPIC_ID에 연결하려면 전체 ID는//pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID입니다.
태그 키 및 값 삭제
태그 키 또는 값 정의를 삭제할 때는 태그가 주제, 구독 또는 스냅샷에서 분리되었는지 확인합니다. 태그 정의 자체를 삭제하기 전에 태그 바인딩이라는 기존 태그 연결을 삭제해야 합니다. 태그 키와 태그 값을 삭제하려면 태그 삭제를 참조하세요.
Identity and Access Management 조건 및 태그
태그와 IAM 조건을 사용하여 계층 구조 내 사용자에게 역할 바인딩을 조건부로 부여할 수 있습니다. 리소스에 연결된 태그를 변경하거나 삭제하면 조건부 역할 바인딩이 포함된 IAM 정책이 적용되는 경우 해당 리소스에 대한 사용자 액세스 권한이 삭제될 수 있습니다. 자세한 내용은 Identity and Access Management 조건 및 태그를 참조하세요.
다음 단계
- 태그를 지원하는 다른 서비스 참조하기
- IAM에서 태그를 사용하는 방법은 태그 및 액세스 제어 참조하기