Projekt-Tags verwalten

In diesem Dokument wird beschrieben, wie Sie Ihre vorhandenen Tag-Schlüssel/Wert-Paare verwalten, mit denen Sie Ihre Projekte in Google Distributed Cloud (GDC) mit Air Gap organisieren. Tags können von Administratoren mit IAM-Berechtigungen (Identity and Access Management) aufgerufen werden. Sie können Berechtigungen für Ihre Schlüssel/Wert-Paare für Tags festlegen, um zu bestimmen, wer sie sehen kann, wenn sie an ein Projekt gebunden sind. Sie können auch vorhandene Tag-Attribute aufrufen, um nachzuvollziehen, wie Ihre Tags in Ihrer Organisation angewendet werden. Beispiele:

Weitere Informationen zu Tags finden Sie unter Tags – Übersicht.

Dieses Dokument richtet sich an IT-Administratoren in der Gruppe der Plattformadministratoren, die für die Organisation und Verwaltung von Projekten in einem GDC-Universum verantwortlich sind. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Hinweis

  • Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Tag-Administrator“ (tag-admin) zuzuweisen, damit Sie die Berechtigungen erhalten, die Sie benötigen, um anderen Nutzern Tag-Berechtigungen zu erteilen oder Tag-Namespace für Schlüssel/Wert-Paare zu prüfen.

  • Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Projektbetrachter“ (project-viewer) zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Auflisten eines Projekts mit einem Tag benötigen.

Berechtigungen auf Ihr Tag-Schlüssel/Wert-Paar anwenden

Für jeden Tag-Schlüssel und Tag-Wert sind bestimmte Rollenbindungen erforderlich, damit Nutzer darauf zugreifen und sie verwalten können.

Weisen Sie Ihren Tag-Schlüsseln und ‑Werten die entsprechenden Rollen zu, um Berechtigungen anzuwenden.

  1. Ermitteln Sie den gewünschten Rollennamen und die erforderlichen Namespaces, um diese Rolle anzuwenden. Weitere Informationen finden Sie unter Tag-Verwendung.

  2. Gewähren Sie die Rollenberechtigungen für ein Tag, indem Sie die RoleBinding-Ressource für jeden definierten Namespace anwenden:

    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
    

    Ersetzen Sie Folgendes:

    • BINDING_NAME: Der benutzerdefinierte Name für die Rollenbindung.

    • NAMESPACE: Der Namespace, auf den die Rollenbindung angewendet werden soll, z. B. platform, der Verwaltungs-Namespace des Tag-Schlüssels oder der Richtlinien-Namespace des Tag-Werts.

    • GROUP_SUBJECT: Die Art des Subjekts, auf das die Rollenberechtigungen angewendet werden sollen. Dieser Wert kann User, Group oder ServiceAccount sein. Weitere Informationen finden Sie in der Kubernetes-Dokumentation unter Referring to subjects.

    • GROUP_NAME: der Name der benutzerdefinierten Gruppe.

    • TAG_ROLE_NAME: Der Name der anzuwendenden Tag-Rolle, z. B. tag-admin oder tag-KEY_NAME-admin.

    Wenn Sie einem Nutzer beispielsweise die Berechtigung für die Rolle tag-admin für ein Tag-Schlüssel/Wert-Paar erteilen möchten, stellen Sie die folgenden benutzerdefinierten RoleBinding-Ressourcen im Namespace platform, dem managementNamespace des Tag-Schlüssels und dem policyNamespace des Tag-Werts bereit:

    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
    

Verwaltungs-Namespace finden

Ein Verwaltungs-Namespace ist der vom System generierte Namespace, der für einen Tag-Schlüssel erstellt wird.

  • Suchen Sie den Verwaltungs-Namespace des jeweiligen Tag-Schlüssels:

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

    Ersetzen Sie TAG_KEY_NAME durch den Namen Ihres Tag-Schlüssels.

Richtlinien-Namespace suchen

Ein Richtlinien-Namespace ist der vom System generierte Namespace, der für einen Tag-Wert erstellt wird.

  • So finden Sie den Richtlinien-Namespace des jeweiligen Tag-Werts:

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

    Ersetzen Sie Folgendes:

    • TAG_VALUE_NAME: der Name des Tag-Werts.
    • MANAGEMENT_NAMESPACE: Der Name des Management-Namespace für den entsprechenden Tag-Schlüssel des Tag-Werts. Weitere Informationen finden Sie unter Verwaltungs-Namespace finden.

Projekte mit einem Tag auflisten

So listen Sie alle Projekte auf, die an ein bestimmtes Schlüssel/Wert-Paar gebunden sind:

  • Alle Projekte auflisten, die Ihrem Schlüssel/Wert-Paar für Tags entsprechen:

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

    Ersetzen Sie Folgendes:

    • TAG_KEY_NAME: der Name des Tag-Schlüssels.
    • TAG_VALUE_NAME: der Name des Tag-Werts.

    Die Ausgabe sieht etwa so aus:

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

Nächste Schritte