本文档介绍了如何管理现有的标记键值对,这些键值对用于在 Google Distributed Cloud (GDC) 经过网闸隔离 中整理项目。管理员可以使用 Identity and Access Management (IAM) 权限查看标记。您可以为标记键值对设置权限,以强制规定在标记键值对绑定到项目时,哪些人可以查看它们。您还可以查看现有标记属性,以帮助跟踪组织中标记的应用情况,例如:
如需详细了解标记,请参阅标记概览。
本文档适用于平台管理员群组中的 IT 管理员,他们负责在 GDC 宇宙中组织和管理项目。如需了解详情,请参阅 GDC 经过网闸隔离文档的受众群体。
准备工作
如需获得向其他用户授予标记权限或检查标记键值对命名空间所需的权限,请让组织 IAM 管理员为您授予“标记管理员”角色 (
tag-admin)。如需获得列出带有标记的项目的权限,请让您的组织 IAM 管理员为您授予 Project Viewer 角色 (
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:角色绑定的自定义名称。GROUP_SUBJECT:要应用角色权限的正文类型。此值可以是User、Group或ServiceAccount。如需了解详情,请参阅 Referring to subjects 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