Neste documento, explicamos como gerenciar os pares de chave-valor de tag atuais que organizam seus projetos no Google Distributed Cloud (GDC) com isolamento físico. As tags podem ser visualizadas por administradores com o uso de permissões do Identity and Access Management (IAM). É possível definir permissões para seus pares de chave-valor de tag para aplicar quem pode visualizá-los quando eles estão vinculados a um projeto. Você também pode conferir os atributos de tag atuais para acompanhar como as tags são aplicadas na sua organização, como:
Para mais informações sobre tags, consulte Visão geral de tags.
Este documento é destinado a administradores de TI do grupo de administradores de plataforma, responsáveis por organizar e gerenciar projetos em um universo do GDC. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Para receber as permissões necessárias para conceder a outros usuários permissões de tag ou inspecionar namespaces de par de chave-valor de tag, peça ao administrador do IAM da organização para conceder a você o papel de administrador de tags (
tag-admin).Para receber as permissões necessárias para listar um projeto com uma tag, peça ao administrador do IAM da organização para conceder a você a função de leitor de projetos (
project-viewer).
Aplicar permissões ao par de chave-valor da tag
Cada chave e valor de tag exige vinculações de papéis específicas para que os usuários possam acessar e gerenciar.
Defina as funções adequadas para suas chaves e valores de tag e aplique permissões.
Identifique o nome da função pretendida e os namespaces necessários para aplicar essa função. Para mais informações, consulte Uso de tags.
Conceda as permissões de função para uma tag aplicando o recurso
RoleBindingpara cada namespace definido: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 EOFSubstitua:
BINDING_NAME: o nome personalizado da vinculação de papel.NAMESPACE: o namespace a que a vinculação de função será aplicada, comoplatform, o namespace de gerenciamento da chave de tag ou o namespace de política do valor da tag.GROUP_SUBJECT: o tipo de assunto a que as permissões de papel serão aplicadas. Esse valor pode serUser,GroupouServiceAccount. Para mais informações, consulte Referência a assuntos na documentação do Kubernetes.GROUP_NAME: o nome do grupo personalizado.TAG_ROLE_NAME: o nome da função da tag a ser aplicada, comotag-adminoutag-KEY_NAME-admin.
Por exemplo, para conceder a permissão de papel
tag-admina um usuário para um par de chave-valor de tag, implante os seguintes recursos personalizadosRoleBindingno namespaceplatform, a chave de tagmanagementNamespacee o valor de tagpolicyNamespace: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
Encontrar o namespace de gerenciamento
Um namespace de gerenciamento é o namespace gerado pelo sistema criado para uma chave de tag.
Encontre o namespace de gerenciamento da chave de tag específica:
kubectl get tagkey TAG_KEY_NAME --namespace platform \ -o jsonpath='{.status.managementNamespace}'Substitua
TAG_KEY_NAMEpelo nome da chave de tag.
Encontrar o namespace da política
Um namespace de política é o namespace gerado pelo sistema criado para um valor de tag.
Encontre o namespace da política do valor de tag específico:
kubectl get tagvalue TAG_VALUE_NAME --namespace MANAGEMENT_NAMESPACE \ -o jsonpath='{.status.policyNamespace}'Substitua:
TAG_VALUE_NAME: o nome do valor da tag.MANAGEMENT_NAMESPACE: o nome do namespace de gerenciamento da chave de tag correspondente ao valor da tag. Para mais informações, consulte Encontrar o namespace de gerenciamento.
Listar projetos com uma tag
Para listar todos os projetos vinculados a um par de chave-valor específico, faça o seguinte:
Liste todos os projetos que correspondem ao seu par de chave-valor de tag:
kubectl get project --namespace platform --label tag.resourcemanager.gdc.goog/TAG_KEY_NAME=TAG_VALUE_NAMESubstitua:
TAG_KEY_NAME: o nome da chave de tag.TAG_VALUE_NAME: o nome do valor da tag.
O resultado será o seguinte:
NAME AGE project-1 17d project-2 10d project-3 4d