태그를 리소스에 결합하거나 네트워크 방화벽 정책에 사용하기 전에 태그를 만드세요. 네트워크 액세스를 제어하기 위해 VM 인스턴스에 바인딩된 경우에만 태그가 적용됩니다.
개요는 방화벽 태그를 참조하세요.
태그에 권한 부여
tagAdmin
역할을 사용하면 새 태그를 만들거나 기존 태그를 업데이트 및 삭제할 수 있습니다. 조직 관리자는 조직 수준에서 이 역할을 부여할 수 있으며, 프로젝트 소유자는 프로젝트 수준에서 이 역할을 부여할 수 있습니다.
gcloud
사용자에게
tagAdmin
역할을 부여합니다.gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagAdmin
다음을 바꿉니다.
ORGANIZATION_ID
: 조직의 IDEMAIL_ADDRESS
: 사용자의 이메일 주소
사용자에게
tagUser
역할을 부여합니다.gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser
다음을 바꿉니다.
ORGANIZATION_ID
: 조직의 IDTAG_KEY
: 태그 키EMAIL_ADDRESS
: 사용자의 이메일 주소
태그 관리를 위한 커스텀 역할
tagAdmin
역할을 사용하면 새 태그를 만들고, 기존 태그를 업데이트 및 삭제할 수 있습니다. 이러한 기능 중 일부가 필요한 경우 관련 권한이 있는 커스텀 IAM 역할을 만들고 새 역할을 대상 사용자에게 부여할 수 있습니다. 관련 권한 목록은 IAM 권한을 참조하세요.
방화벽 정책에 사용되는 태그는 GCE_FIREWALL 용도로 지정되어야 합니다. 태그를 네트워킹 기능에 사용하려면 GCE_FIREWALL 용도가 필요하지만 다른 작업에는 태그를 사용할 수 있습니다.
네트워크 방화벽 정책에 사용되는 태그에는 단일 VPC로 제한되는 범위가 있어야 합니다.
태그 키 및 값 만들기
태그를 네트워크 방화벽 정책에 연결하기 전에 태그 키와 값을 만들어야 합니다.
gcloud
필요한 권한을 가져온 후 태그 키를 만듭니다.
gcloud resource-manager tags keys create TAG_KEY \ --parent organizations/ORGANIZATION_ID \ --purpose GCE_FIREWALL \ --purpose-data network=PROJECT_ID/NETWORK
다음을 바꿉니다.
TAG_KEY
: 태그 키ORGANIZATION_ID
: 조직의 IDPROJECT_ID
: 프로젝트의 IDNETWORK
: 네트워크의 이름
관련 태그 값을 태그 키에 추가합니다. 명령어를 여러 번 실행하여 여러 값을 추가합니다. 태그 키에 추가된 각 태그 값이 고유한지 확인합니다.
gcloud resource-manager tags values create TAG_VALUE \ --parent ORGANIZATION_ID/TAG_KEY
다음을 바꿉니다.
ORGANIZATION_ID
: 조직의 IDTAG_KEY
: 태그 키TAG_VALUE
: 태그 키에 할당할 값
네트워크 방화벽 정책 만들기
태그를 만든 후 네트워크 방화벽 정책에 태그를 사용할 수 있습니다. 기존 네트워크 방화벽 정책이 없으면 새 방화벽 정책을 만듭니다.
gcloud
네트워크 방화벽 정책을 만듭니다.
gcloud compute network-firewall-policies create \ FIREWALL_POLICY_NAME \ --global
다음을 바꿉니다.
FIREWALL_POLICY_NAME
: 새 네트워크 전역 네트워크 방화벽 정책의 이름
태그를 사용한 방화벽 정책 규칙 만들기
태그와 네트워크 방화벽 정책을 만든 후 특정 소스 태그 값과 대상 태그 값으로 네트워크 방화벽 정책 규칙을 만들어 해당 소스 태그와 대상 태그가 있는 VM 간에 원하는 트래픽을 허용할 수 있습니다.
gcloud
특정 소스 및 대상 키와 값을 사용하여 네트워크 방화벽 정책 규칙을 만듭니다.
gcloud compute network-firewall-policies rules create 1 \ --firewall-policy FIREWALL_POLICY_NAME \ --src-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \ --target-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \ --direction DIRECTION \ --action ACTION \ --layer4-configs tcp:PORT \ --global-firewall-policy
다음을 바꿉니다.
FIREWALL_POLICY_NAME
: 새 네트워크 전역 네트워크 방화벽 정책의 이름ORGANIZATION_ID
: 조직의 IDTAG_KEY
: 태그 키TAG_VALUE
: 태그 키에 할당할 값DIRECTION
: 규칙이ingress
또는egress
규칙인지를 나타냄ACTION
: 다음 작업 중 하나입니다.allow
: 규칙과 일치하는 연결을 허용합니다.deny
: 규칙과 일치하는 연결을 거부합니다.goto_next
: 계층 구조의 다음 수준(폴더 또는 네트워크)으로 연결 평가를 전달합니다.
PORT
: 리소스에 액세스할 포트 번호
VM 인스턴스에 태그 바인딩
태그 관리자는 개별 VM 인스턴스에 태그를 바인딩할 수 있습니다.
태그를 리소스에 바인딩하면 태그 값이 리소스에 연결됩니다. 태그 하나에 지정된 키의 값이 여러 개 있을 수 있지만 태그 키당 하나의 값만 리소스에 바인딩할 수 있습니다. 예를 들어 web-backend 및 mysql 태그 값을 동일한 VM 인스턴스에 바인딩할 수 없습니다. 이들은 같은 태그 키 vm-function에 속하기 때문입니다.
예를 들어 개발자인 사샤는 API 백엔드와 지원 데이터베이스 저장소로 구성된 애플리케이션을 설정하려고 합니다. 백엔드와 데이터베이스 서버 간의 트래픽을 허용하려면 사샤가 web-backend 및 mysql 태그 값을 다른 VM에 바인딩해야 합니다.
gcloud
tagUser
역할을 부여합니다.gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser
다음을 바꿉니다.
ORGANIZATION_ID
: 조직의 IDTAG_KEY
: 태그 키EMAIL_ADDRESS
: 사용자의 이메일 주소
이 명령어에서 사용자는 키의 모든 현재 및 미래 값을 사용할 수 있습니다. 다음과 같이 특정 태그 값에만 액세스 권한을 선택적으로 부여할 수도 있습니다.
gcloud resource-manager tags values add-iam-policy-binding ORGANIZATION_ID/TAG_KEY/TAG_VALUE \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser
다음을 바꿉니다.
ORGANIZATION_ID
: 조직의 IDTAG_KEY
: 태그 키TAG_VALUE
: 태그 키에 할당할 값EMAIL_ADDRESS
: 사용자의 이메일 주소
태그를 바인딩할 리소스에
tagUser
역할을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:EMAIL_ADDRESS \ --role=roles/resourcemanager.tagUser
다음을 바꿉니다.
PROJECT_ID
: 프로젝트의 프로젝트 IDEMAIL_ADDRESS
: 사용자의 이메일 주소
태그 키-값 쌍에 대해
PARENT
값을 가져옵니다.프로젝트 및 영역의 전체 이름 프리픽스를 정의합니다.
FULL_NAME_PREFIX=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/
VM ID를 가져옵니다.
VM_ID=$(gcloud compute instances describe VM_NAME --zone ZONE--format='value(id)')
FULL_NAME_PREFIX
및VM_ID
값을 연결합니다.PARENT="$FULL_NAME_PREFIX$VM_ID" echo $PARENT
다음을 바꿉니다.
PROJECT_NUMBER
: 프로젝트 수입니다.ZONE
: VM이 있는 영역입니다.VM_NAME
: 작업할 VM의 이름입니다.
바인딩을 나열합니다.
gcloud resource-manager tags bindings list \ --location LOCATION_NAME \ --parent PARENT
다음을 바꿉니다.
LOCATION_NAME
: 태그가 속한 위치(여기서는 VM 인스턴스 영역)PARENT
: 앞의 명령어에서 파생된 대로 바인딩에 연결된 전체 리소스 이름
바인딩을 삭제하고 만듭니다.
gcloud resource-manager tags bindings delete \ --location LOCATION_NAME \ --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \ --parent PARENT gcloud resource-manager tags bindings create \ --location LOCATION_NAME \ --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \ --parent PARENT
다음을 바꿉니다.
LOCATION_NAME
: 태그가 속한 위치ORGANIZATION_ID
: 조직의 IDTAG_KEY
: 태그 키TAG_VALUE
: 태그 키의 값PARENT
: 태그 값에 연결할 리소스의 전체 리소스 이름
피어링된 네트워크에서 태그 사용
네트워크 피어링에서 태그를 사용할 수 있습니다. 피어링된 두 네트워크에서 태그를 사용하려면 지정된 순서에 따라 다음 작업을 수행하세요.
- 각기 다른 피어 네트워크에 있는 두 사용자에게
tagAdmin
역할을 할당합니다. 조직 관리자는 조직 수준에서 사용자에게tagAdmin
역할을 부여하고 프로젝트 소유자는 프로젝트 수준에서 이 역할을 부여할 수 있습니다. - 첫 번째 네트워크 사용자가 첫 번째 네트워크에 태그 키와 값을 만들게 합니다.
- 두 번째 네트워크 사용자가 두 번째 네트워크에 태그 키와 값을 만들게 합니다.
- 두 사용자에게 두 네트워크 모두에 태그를 결합하는 데 필요한 권한을 부여합니다.
- 첫 번째 네트워크의 사용자 및 리소스에 태그를 결합합니다.
- 두 번째 네트워크의 사용자 및 리소스에 태그를 결합합니다.
- 두 번째 네트워크의 사용자에게 첫 번째 네트워크의
tagUser
권한을 부여합니다. - 첫 번째 네트워크의 사용자에게 두 번째 네트워크의
tagUser
권한을 부여합니다. - 첫 번째 네트워크에 방화벽 정책 규칙을 만듭니다.
- 두 번째 네트워크에 방화벽 정책 규칙을 만듭니다.
다음 단계
- 태그 만들기에 대한 자세한 내용은 태그 생성 및 관리를 참조하세요.