Zugriffssteuerung mit IAM


In diesem Thema wird beschrieben, wie Sie mit Identity and Access Management steuern, wie Config Connector Google Cloud-Ressourcen erstellen und verwalten.

Zum Installieren von Config Connector müssen Sie sich durch Erstellen eines IAM-Kontos authentifizieren Dienstkonto und verwenden dann die Identitätsföderation von Arbeitslasten für GKE for GKE, IAM binden Dienstkonten mit den Kubernetes-Dienstkonten. Mit IAM können Sie Config Connector führt Aktionen für bestimmte Ressourcen aus. Indem er die Berechtigungen einschränkt, die Ihren Dienstkonten zugewiesen sind, haben Sie mehr Kontrolle darüber, Ressourcen, die Config Connector erstellen kann.

Sie können Ressourcen mit einem einzelnen Dienstkonto oder mehreren Dienstkonten verwalten Dienstkonten.

Einzelnes Dienstkonto

Wenn Sie Config Connector mit dem GKE-Add-on oder manuell installieren können Sie den Clustermodus in Ihrem ConfigConnector festlegen. CustomResource. Im Clustermodus können Sie ein einziges IAM-Dienstkonto für folgende Aufgaben verwenden: Ressourcen erstellen und verwalten, auch wenn Sie Config Connector zum Verwalten für mehrere Projekte.

Das folgende Diagramm zeigt, wie dieser Modus funktioniert, zwei Projekte verwaltet:

Diagramm, das zeigt, wie Config Connector mithilfe desselben Dienstkontos mehrere Projekte verwaltet

Mehrere Dienstkonten

Um mehrere Dienstkonten zu verwenden, können Sie den Namespace-Modus in Ihrer ConfigConnector-CustomResource festlegen. Im Namespace-Modus können Sie Berechtigungen basierend auf den jeweiligen Anforderungen verschiedener IAM-Dienstkonten aufteilen und Berechtigungen in verschiedenen Kubernetes-Namespaces trennen, da Sie jedem Namespace ein anderes Dienstkonto zuordnen können.

Wählen Sie den Namespace-Modus aus, wenn Sie:

  • IAM-Berechtigungen im Kubernetes-Namespace isolieren
  • Die Verwaltung einer großen Anzahl von Google Cloud-Ressourcen mehrere Google Cloud-Projekte in einem einzelnen Cluster erstellen.

Sie können beispielsweise ein IAM-Dienstkonto für jedes Projekt erstellen, Ressourcen aus jedem Projekt im selben Kubernetes-Namespace organisieren und dann das entsprechende IAM-Dienstkonto an den Kubernetes-Namespace binden. So können Sie IAM-Berechtigungen für Projekt zu erstellen, sodass jedes Projekt einen eigenen, unabhängigen Satz von Berechtigungen hat.

Das folgende Diagramm bietet einen Überblick über die Funktionsweise des Namespace-Modus, wobei Jedes Projekt wird von einem anderen Dienstkonto verwaltet:

Diagramm, das zeigt, wie Config Connector mehrere Projekte mithilfe der beiden verwaltet
anderer Dienst
Konten

Im Namespace-Modus ist standardmäßig jedes IAM-Dienstkonto an einen Namespace gebunden. Wenn Sie Ressourcen in diesem Namespace erstellen, verwendet Config Connector dieses Dienstkonto zur Erstellung von Google Cloud-Ressourcen. Es gibt einen dedizierten cnrm-controller-manager-Pod des Config Connector für jeden Namespace, der die Identität des IAM-Dienstkontos übernimmt die mit dem Namespace verknüpft sind.

Informationen zum Konfigurieren des Namespace-Modus finden Sie unter Config Connector im Namespace-Modus installieren.

Berechtigungen nach der Installation anpassen

Während der Installation von Config Connector haben Sie möglicherweise eine temporäre einfache Rolle zugewiesen und die Rolle dem Dienstkonto, für das Sie konfiguriert haben Config Connector. Wenn Sie Config Connector in Namespaced konfiguriert haben angezeigt werden, stehen Ihnen möglicherweise als ein IAM-Dienstkonto.

Nach Abschluss der Installation müssen Sie möglicherweise die allgemeinen Berechtigungen entsprechend den Sicherheitsaspekten und Best Practices.

Ein Hauptvorteil von Config Connector sind einheitliche Tools. Das bedeutet, dass Sie Config Connector selbst, um IAM-Rollen und Berechtigungen. Sie können die IAMPolicyMember oder IAMPartialPolicy Ressourcen in Config Connector, um IAM-Berechtigungen zu konfigurieren. Dazu ist ein IAM-Dienstkonto mit Administratorberechtigungen für Ihre Projekte, Ordner oder Ihre Organisation erforderlich. Dieses Dienstkonto muss für die Bindung an den Config Connector konfiguriert entweder im Cluster- oder im Namespace-Modus.

In den folgenden Abschnitten finden Sie verschiedene Richtlinienbeispiele, in denen IAM-Berechtigungen mit Config Connector verwaltet werden.

Berechtigung für Organisationsinhaber

Um die Berechtigungen von Config Connector zu erweitern, damit er alle Projekte und für eine bestimmte Organisation erstellen möchten, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie das folgende YAML-Manifest:

    apiVersion: iam.cnrm.cloud.google.com/v1beta1
    kind: IAMPolicyMember
    metadata:
     name: iampolicymember-orglevel-permission
     namespace: NAMESPACE
    spec:
     member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com
     role: roles/owner
     resourceRef:
       kind: Organization
       external: ORGANIZATION_ID
    

    Ersetzen Sie Folgendes:

    • NAMESPACE durch den Namen Ihres Namespace
    • SERVICE_ACCOUNT_NAME durch den Namen Ihres Dienstkontos
    • HOST_PROJECT_ID durch die ID des Hostprojekts Ihres Dienstkontos
    • roles/owner durch die entsprechende Rolle
    • ORGANIZATION_ID durch Ihre Organisations-ID
  2. Wenden Sie das YAML-Manifest mit kubectl oder einem Konfigurationsverwaltungstool Ihrer Wahl auf Ihren Cluster an.

Berechtigung „Ordnerinhaber“

Um die Berechtigungen von Config Connector zu erweitern, damit er alle Projekte und Ordner in einem angegebenen Ordner führen Sie die folgenden Schritte aus:

  1. Erstellen Sie das folgende YAML-Manifest:

    apiVersion: iam.cnrm.cloud.google.com/v1beta1
    kind: IAMPolicyMember
    metadata:
     name: iampolicymember-orglevel-permission
     namespace: NAMESPACE
    spec:
     member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com
     role: roles/owner
     resourceRef:
       kind: Folder
       external: folders/FOLDER_ID
    

    Ersetzen Sie Folgendes:

    • NAMESPACE durch den Namen Ihres Namespace
    • SERVICE_ACCOUNT_NAME durch den Namen Ihres Dienstkontos
    • HOST_PROJECT_ID durch die ID des Hostprojekts Ihres Dienstkontos
    • roles/owner durch die entsprechende Rolle
    • FOLDER_ID durch Ihre Ordner-ID
  2. Wenden Sie das YAML-Manifest mit kubectl oder einem Konfigurationsverwaltungstool Ihrer Wahl auf Ihren Cluster an.

Berechtigungen des Projektinhabers

So erlauben Sie Config Connector, die Ressourcen eines bestimmten Projekts zu verwalten: führen Sie die folgenden Schritte aus:

  1. Erstellen Sie das folgende YAML-Manifest:

    apiVersion: iam.cnrm.cloud.google.com/v1beta1
    kind: IAMPolicyMember
    metadata:
     name: iampolicymember-orglevel-permission
     namespace: NAMESPACE
    spec:
     member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com
     role: roles/owner
     resourceRef:
       kind: Project
       external: projects/PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • NAMESPACE durch den Namen Ihres Namespace
    • SERVICE_ACCOUNT_NAME durch den Namen Ihres Dienstkontos
    • HOST_PROJECT_ID durch die ID des Hostprojekts Ihres Dienstkontos
    • roles/owner durch die entsprechende Rolle
    • PROJECT_ID durch Ihre Zielprojekt-ID
  2. Wenden Sie das YAML-Manifest mit kubectl oder einem Konfigurationsverwaltungstool Ihrer Wahl auf Ihren Cluster an.

Vordefinierte Rollen

Wenn Sie Config Connector eingeschränktere Berechtigungen gewähren möchten, haben Sie folgende Möglichkeiten: Weisen Sie Ihrem Config Connector eine oder mehrere IAM-Rollen zu indem Sie einige IAMPolicyMember Ressourcen oder eine kombinierte IAMPartialPolicy . Die folgenden Rollen werden dem Config Connector normalerweise zugewiesen Dienstkonto:

  • Bearbeiter: Wenn Sie die Rolle Bearbeiter zuweisen, sind die meisten Config Connector-Funktionen verfügbar, mit Ausnahme von projekt- oder organisationsbezogenen Konfigurationen wie IAM-Änderungen.

  • Rolle „IAM-Dienstkonto-Administrator“: Gewähren der roles/iam.serviceAccountAdmin Berechtigungen ermöglichen es Config Connector, den IAM-Dienst zu konfigurieren Konten.

  • Resource Manager: Gewähren eines Resource Manager-Rolle wie roles/resourcemanager.folderCreator ermöglicht Config Connector, Ordner und Unternehmen.

Benutzerdefinierte Rollen

Wenn die vordefinierten Rollen nicht Ihren Anforderungen entsprechen, können Sie benutzerdefinierte Rollen mit von Ihnen definierten Berechtigungen.

Weitere Informationen hierzu finden Sie unter Benutzerdefinierte Rollen erstellen und verwalten.

Nächste Schritte