Gestire i tag dei progetti

Questo documento spiega come gestire le coppie chiave-valore dei tag esistenti che organizzano i tuoi progetti in Google Distributed Cloud (GDC) air-gapped. I tag sono visibili agli amministratori tramite le autorizzazioni Identity and Access Management (IAM). Puoi impostare le autorizzazioni per le coppie chiave-valore dei tag per stabilire chi può visualizzarle quando sono associate a un progetto. Puoi anche visualizzare gli attributi dei tag esistenti per monitorare come vengono applicati nella tua organizzazione, ad esempio:

Per saperne di più sui tag, consulta Introduzione ai tag.

Questo documento è destinato agli amministratori IT del gruppo di amministratori della piattaforma, responsabili dell'organizzazione e della gestione dei progetti in un universo GDC. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC air-gapped.

Prima di iniziare

  • Per ottenere le autorizzazioni necessarie per concedere ad altri utenti le autorizzazioni per i tag o per esaminare gli spazi dei nomi delle coppie chiave-valore dei tag, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore tag (tag-admin).

  • Per ottenere le autorizzazioni necessarie per elencare un progetto con un tag, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Visualizzatore progetto (project-viewer).

Applicare le autorizzazioni alla coppia chiave-valore del tag

Ogni chiave e valore tag richiede binding di ruolo specifici per consentire agli utenti di accedervi e gestirli.

Imposta i ruoli appropriati per le chiavi e i valori dei tag per applicare le autorizzazioni.

  1. Identifica il nome del ruolo che vuoi assegnare e gli spazi dei nomi richiesti per applicare il ruolo. Per saperne di più, consulta Utilizzo dei tag.

  2. Concedi le autorizzazioni del ruolo per un tag applicando la risorsa RoleBinding per ogni spazio dei nomi definito:

    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
    

    Sostituisci quanto segue:

    • BINDING_NAME: il nome personalizzato per l'associazione del ruolo.

    • NAMESPACE: lo spazio dei nomi a cui applicare l'associazione di ruolo, ad esempio platform, lo spazio dei nomi di gestione della chiave del tag o lo spazio dei nomi dei criteri del valore del tag.

    • GROUP_SUBJECT: il tipo di soggetto a cui applicare le autorizzazioni del ruolo. Questo valore può essere User, Group o ServiceAccount. Per saperne di più, consulta la sezione Riferimento ai soggetti della documentazione di Kubernetes.

    • GROUP_NAME: il nome del gruppo personalizzato.

    • TAG_ROLE_NAME: il nome del ruolo del tag da applicare, ad esempio tag-admin o tag-KEY_NAME-admin.

    Ad esempio, per concedere l'autorizzazione del ruolo tag-admin a un utente per una coppia chiave-valore del tag, implementa le seguenti risorse personalizzate RoleBinding nello spazio dei nomi platform, nella chiave del tag managementNamespace e nel valore del tag 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
    

Trovare lo spazio dei nomi di gestione

Uno spazio dei nomi di gestione è lo spazio dei nomi generato dal sistema creato per una chiave tag.

  • Trova lo spazio dei nomi di gestione della chiave tag specifica:

    kubectl get tagkey TAG_KEY_NAME --namespace platform \
        -o jsonpath='{.status.managementNamespace}'
    

    Sostituisci TAG_KEY_NAME con il nome della chiave del tag.

Trovare lo spazio dei nomi del criterio

Uno spazio dei nomi delle policy è lo spazio dei nomi generato dal sistema creato per un valore tag.

  • Trova lo spazio dei nomi della policy del valore tag specifico:

    kubectl get tagvalue TAG_VALUE_NAME --namespace MANAGEMENT_NAMESPACE \
        -o jsonpath='{.status.policyNamespace}'
    

    Sostituisci quanto segue:

    • TAG_VALUE_NAME: il nome del valore tag.
    • MANAGEMENT_NAMESPACE: il nome dello spazio dei nomi di gestione per la chiave tag corrispondente al valore del tag. Per saperne di più, consulta Trovare lo spazio dei nomi di gestione.

Elenco dei progetti con un tag

Per elencare tutti i progetti associati a una coppia chiave-valore specifica, completa i seguenti passaggi:

  • Elenca tutti i progetti che corrispondono alla coppia chiave-valore del tag:

    kubectl get project --namespace platform --label tag.resourcemanager.gdc.goog/TAG_KEY_NAME=TAG_VALUE_NAME
    

    Sostituisci quanto segue:

    • TAG_KEY_NAME: il nome della chiave tag.
    • TAG_VALUE_NAME: il nome del valore tag.

    L'output è simile al seguente:

    NAME            AGE
    project-1       17d
    project-2       10d
    project-3       4d
    

Passaggi successivi