이 문서에서는 에어 갭 적용 Google Distributed Cloud (GDC)에서 프로젝트를 구성하는 기존 태그 키-값 쌍을 관리하는 방법을 설명합니다. 태그는 Identity and Access Management (IAM) 권한을 사용하여 관리자가 볼 수 있습니다. 태그 키-값 쌍이 프로젝트에 바인딩될 때 이를 볼 수 있는 사용자를 강제 적용하도록 태그 키-값 쌍의 권한을 설정할 수 있습니다. 기존 태그 속성을 확인하여 조직에서 태그가 적용되는 방식을 추적할 수도 있습니다.
태그에 대한 자세한 내용은 태그 개요를 참고하세요.
이 문서는 GDC 유니버스에서 프로젝트를 구성하고 관리하는 플랫폼 관리자 그룹 내 IT 관리자를 대상으로 합니다. 자세한 내용은 GDC 오프라인 문서의 대상을 참고하세요.
시작하기 전에
다른 사용자에게 태그 권한을 부여하거나 태그 키-값 쌍 네임스페이스를 검사하는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 태그 관리자 역할 (
tag-admin)을 부여해 달라고 요청하세요.태그가 있는 프로젝트를 나열하는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 프로젝트 뷰어 역할(
project-viewer)을 부여해 달라고 요청하세요.
태그 키-값 쌍에 권한 적용
각 태그 키와 태그 값에는 사용자가 액세스하고 관리할 수 있도록 특정 역할 바인딩이 필요합니다.
권한을 적용할 태그 키와 값에 적절한 역할을 설정합니다.
의도한 역할 이름과 해당 역할을 적용하는 데 필요한 네임스페이스를 식별합니다. 자세한 내용은 태그 사용을 참고하세요.
정의된 각 네임스페이스에
RoleBinding리소스를 적용하여 태그에 대한 역할 권한을 부여합니다.kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: BINDING_NAME namespace: NAMESPACE subjects: - kind: GROUP_SUBJECT name: GROUP_NAME apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: TAG_ROLE_NAME apiGroup: rbac.authorization.k8s.io EOF다음을 바꿉니다.
BINDING_NAME: 역할 바인딩의 맞춤 이름입니다.NAMESPACE: 역할 바인딩을 적용할 네임스페이스입니다(예:platform, 태그 키의 관리 네임스페이스 또는 태그 값의 정책 네임스페이스).GROUP_SUBJECT: 역할 권한을 적용할 주체의 종류입니다. 이 값은User,Group또는ServiceAccount일 수 있습니다. 자세한 내용은 주체 참조 Kubernetes 문서를 참고하세요.GROUP_NAME: 맞춤 그룹 이름입니다.TAG_ROLE_NAME: 적용할 태그 역할의 이름입니다(예:tag-admin또는tag-KEY_NAME-admin).
예를 들어 태그 키-값 쌍에 대한
tag-admin역할 권한을 사용자에게 부여하려면 다음RoleBinding커스텀 리소스를platform네임스페이스, 태그 키managementNamespace, 태그 값policyNamespace에 배포합니다.kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tag-admin-binding namespace: platform subjects: - kind: User name: user-1 apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: tag-admin apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tag-admin-mgmt-binding namespace: g-t-tag-key-1 subjects: - kind: User name: user-1 apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: tag-admin apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: tag-admin-policy-binding namespace: g-t-tag-value-1 subjects: - kind: User name: user-1 apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: tag-admin apiGroup: rbac.authorization.k8s.io EOF
관리 네임스페이스 찾기
관리 네임스페이스는 태그 키에 대해 생성된 시스템 생성 네임스페이스입니다.
특정 태그 키의 관리 네임스페이스를 찾습니다.
kubectl get tagkey TAG_KEY_NAME --namespace platform \ -o jsonpath='{.status.managementNamespace}'TAG_KEY_NAME을 태그 키 이름으로 바꿉니다.
정책 네임스페이스 찾기
정책 네임스페이스는 태그 값을 위해 생성된 시스템 생성 네임스페이스입니다.
특정 태그 값의 정책 네임스페이스를 찾습니다.
kubectl get tagvalue TAG_VALUE_NAME --namespace MANAGEMENT_NAMESPACE \ -o jsonpath='{.status.policyNamespace}'다음을 바꿉니다.
TAG_VALUE_NAME: 태그 값의 이름입니다.MANAGEMENT_NAMESPACE: 태그 값의 해당 태그 키에 대한 관리 네임스페이스의 이름입니다. 자세한 내용은 관리 네임스페이스 찾기를 참고하세요.
태그가 있는 프로젝트 나열
특정 키-값 쌍과 바인드된 모든 프로젝트를 나열하려면 다음 단계를 완료하세요.
태그 키-값 쌍과 일치하는 모든 프로젝트를 나열합니다.
kubectl get project --namespace platform --label tag.resourcemanager.gdc.goog/TAG_KEY_NAME=TAG_VALUE_NAME다음을 바꿉니다.
TAG_KEY_NAME: 태그 키의 이름입니다.TAG_VALUE_NAME: 태그 값의 이름입니다.
출력은 다음과 비슷합니다.
NAME AGE project-1 17d project-2 10d project-3 4d