Gérer les tags de projet

Ce document explique comment gérer les paires clé/valeur de vos tags existants qui organisent vos projets dans Google Distributed Cloud (GDC) sous air gap. Les administrateurs peuvent afficher les tags à l'aide des autorisations Identity and Access Management (IAM). Vous pouvez définir des autorisations pour vos paires clé-valeur de tags afin de contrôler qui peut les consulter lorsqu'elles sont liées à un projet. Vous pouvez également afficher les attributs de tag existants pour suivre la façon dont vos tags sont appliqués dans votre organisation. En voici quelques exemples :

Pour en savoir plus sur les tags, consultez la page Présentation des tags.

Ce document s'adresse aux administrateurs informatiques du groupe d'administrateurs de plate-forme, qui sont chargés d'organiser et de gérer les projets dans un univers GDC. Pour en savoir plus, consultez Audiences pour la documentation GDC sous air gap.

Avant de commencer

  • Pour obtenir les autorisations nécessaires pour accorder à d'autres utilisateurs des autorisations sur les tags ou pour inspecter les espaces de noms des paires clé/valeur de tag, demandez à votre administrateur IAM de l'organisation de vous accorder le rôle Administrateur de tags (tag-admin).

  • Pour obtenir les autorisations nécessaires pour lister un projet avec un tag, demandez à votre administrateur IAM de l'organisation de vous accorder le rôle Lecteur de projet (project-viewer).

Appliquer des autorisations à votre paire clé-valeur de tag

Chaque clé et valeur de tag nécessite des liaisons de rôle spécifiques pour que les utilisateurs puissent y accéder et les gérer.

Définissez les rôles appropriés pour vos clés et valeurs de tag afin d'appliquer des autorisations.

  1. Identifiez le nom du rôle souhaité et les espaces de noms requis pour appliquer ce rôle. Pour en savoir plus, consultez Utilisation des tags.

  2. Accordez les autorisations de rôle pour un tag en appliquant la ressource RoleBinding pour chaque espace de noms défini :

    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
    

    Remplacez les éléments suivants :

    • BINDING_NAME : nom personnalisé de l'association de rôle.

    • NAMESPACE : espace de noms auquel appliquer l'association de rôle, tel que platform, l'espace de noms de gestion de la clé de tag ou l'espace de noms de stratégie de la valeur du tag.

    • GROUP_SUBJECT : type de sujet auquel appliquer les autorisations du rôle. Cette valeur peut être User, Group ou ServiceAccount. Pour en savoir plus, consultez la documentation Kubernetes sur les sujets.

    • GROUP_NAME : nom du groupe personnalisé.

    • TAG_ROLE_NAME : nom du rôle de tag à appliquer, tel que tag-admin ou tag-KEY_NAME-admin.

    Par exemple, pour accorder l'autorisation de rôle tag-admin à un utilisateur pour une paire clé-valeur de tag, déployez les ressources personnalisées RoleBinding suivantes dans l'espace de noms platform, la clé de tag managementNamespace et la valeur de 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
    

Rechercher l'espace de noms de gestion

Un espace de noms de gestion est un espace de noms généré par le système et créé pour une clé de tag.

  • Recherchez l'espace de noms de gestion de la clé de tag spécifique :

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

    Remplacez TAG_KEY_NAME par le nom de votre clé de tag.

Rechercher l'espace de noms de la règle

Un espace de noms de règle est un espace de noms généré par le système et créé pour une valeur de tag.

  • Recherchez l'espace de noms de la règle associé à la valeur de tag spécifique :

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

    Remplacez les éléments suivants :

    • TAG_VALUE_NAME : nom de la valeur du tag.
    • MANAGEMENT_NAMESPACE : nom de l'espace de noms de gestion pour la clé de tag correspondant à la valeur de tag. Pour en savoir plus, consultez Trouver l'espace de noms de gestion.

Lister les projets avec un tag

Pour lister tous les projets associés à une paire clé/valeur spécifique, procédez comme suit :

  • Répertoriez tous les projets qui correspondent à votre paire clé/valeur de tag :

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

    Remplacez les éléments suivants :

    • TAG_KEY_NAME : nom de la clé du tag.
    • TAG_VALUE_NAME : nom de la valeur du tag.

    Le résultat ressemble à ce qui suit :

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

Étapes suivantes