Managed Kafka-ACL erstellen

Verwaltete Kafka-Access Control Lists (ACLs) bieten eine detaillierte Autorisierung für Vorgänge in Ihrem Managed Service for Apache Kafka-Cluster. Beim Erstellen einer Managed Kafka-ACL-Ressource wird eine Reihe von Berechtigungsregeln für ein bestimmtes Kafka-Ressourcenmuster definiert. Grundlegende Konzepte finden Sie unter Zugriffssteuerung mit IAM und Kafka-ACLs.

Hinweise

Sie benötigen einen vorhandenen Managed Service for Apache Kafka-Cluster.

Erforderliche Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Managed Kafka ACL Editor (roles/managedkafka.aclEditor) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer verwalteten Kafka-ACL benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen einer verwalteten Kafka-ACL erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Erstellen einer verwalteten Kafka-ACL erforderlich:

  • Erteilen Sie diese Berechtigung für den übergeordneten Cluster: managedkafka.acls.create

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Mit der Rolle Managed Kafka ACL Editor (roles/managedkafka.aclEditor) werden Berechtigungen zum Erstellen, Aufrufen, Aktualisieren und Löschen von ACL-Ressourcen erteilt. Weitere Informationen zur Rolle finden Sie unter Vordefinierte Rollen für Managed Service for Apache Kafka.

Eigenschaften einer Managed Kafka-ACL

Wenn Sie eine ACL-Ressource für Managed Kafka erstellen, müssen Sie die folgenden Attribute definieren:

ACL-ID

Dies ist die eindeutige Kennung für die Managed Kafka-ACL-Ressource im Cluster und am Standort. Die Struktur von ACL_ID definiert auch das Ressourcenmuster (Ressourcentyp, Ressourcenname, Muster-Typ), auf das die ACL-Regeln angewendet werden.

Wählen Sie ein ACL_ID basierend auf dem Ressourcenmuster aus, das Sie für die ACL-Bindung verwenden möchten:

  • Cluster:cluster (gilt für die Clusterressource selbst)

  • Spezifisches Thema:topic/{topic_name}

  • Spezifische Gruppe:consumerGroup/{group_name}

  • Spezifische Transaktions-ID: transactionalId/{transactional_id}

  • Alle Themen mit einem Präfix:topicPrefixed/{prefix}

  • Alle Verbrauchergruppen mit einem Präfix:consumerGroupPrefixed/{prefix}

  • Alle Transaktions-IDs mit einem Präfix:transactionalIdPrefixed/{prefix}

  • Alle Themen:allTopics (entspricht topic/*)

  • Alle Gruppen:allConsumerGroups (entspricht consumerGroup/*)

  • Alle Transaktions-IDs:allTransactionalIds (entspricht transactionalId/*)

Weitere Informationen finden Sie in den Richtlinien zum Benennen einer Managed Service for Apache Kafka-Ressource.

Sie können die ACL-ID nach dem Erstellen nicht mehr ändern. Sie ist unveränderlich.

ACL-Einträge

Dies ist die Liste der spezifischen Berechtigungsregeln, die auf das durch die ACL-ID definierte Ressourcenmuster angewendet werden.

  • Sie müssen beim Erstellen der Ressource mindestens einen ACL-Eintrag angeben. Eine leere Liste ist nicht zulässig.

  • Die maximale Anzahl zulässiger Einträge pro Managed Kafka-ACL-Ressource beträgt 100. Wenn Sie mehr Regeln für ein einzelnes Ressourcenmuster benötigen, müssen Sie ACLs direkt mit Standard-Apache Kafka-Tools verwalten.

  • Jeder ACL-Eintrag enthält die folgenden Felder:

    • Hauptkonto:Der Nutzer oder das Dienstkonto, auf das die Regel angewendet wird. Geben Sie das Format User:{google_service_account_email} an oder verwenden Sie das Platzhalterzeichen User:*.

    • Vorgang:Der Kafka-Vorgangstyp, z. B. ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS oder IDEMPOTENT_WRITE (Groß-/Kleinschreibung wird nicht beachtet). Gültige Kombinationen aus Vorgängen und Ressourcentypen finden Sie in der Apache Kafka-Dokumentation unter Operations and Resources on Protocols.

    • Berechtigungstyp:ALLOW oder DENY (keine Berücksichtigung der Groß- und Kleinschreibung).

    • Host muss für Managed Service for Apache Kafka auf den Platzhalter * gesetzt werden.

Sie können diese Einträge direkt in der Befehlszeile mit dem Flag --acl-entry oder durch Bereitstellen einer JSON- oder YAML-Datei mit dem Flag --acl-entries-from-file angeben.

Attribute für reine Ausgabemuster für Ressourcen

Wenn Sie eine ACL erstellen, werden die folgenden Felder für das Ressourcenmuster in Managed Service for Apache Kafka basierend auf der angegebenen ACL-ID ausgefüllt:

  • Ressourcentyp: Der ACL-Ressourcentyp, der vom Namen abgeleitet wird. Eine der folgenden Möglichkeiten: CLUSTER, TOPIC, GROUP oder TRANSACTIONAL_ID.

  • Ressourcenname: Der ACL-Ressourcenname (oder das übereinstimmende Präfix für den PREFIXED-Mustertyp), der aus dem Namen abgeleitet wird. Für den Ressourcentyp CLUSTER ist dies immer "kafka-cluster". Kann das Platzhalterliteral "*" sein.

  • ACL-Mustertyp: Der aus dem Namen abgeleitete ACL-Mustertyp. Eine der folgenden Optionen: LITERAL oder PREFIXED.

Diese Felder dienen nur der Ausgabe und sollen die Zuordnung von Managed Kafka-ACL-Ressourcen zu Kafka-ACL-Bindungen erleichtern.

ETag

Das ETag wird für die Nebenläufigkeitserkennung verwendet. Ein ETag wird in der Antwort auf die Vorgänge GetAcl und CreateAcl zurückgegeben. Aufrufer müssen dieses ETag in die Anfrage an UpdateAcl einfügen, damit ihre Änderungen auf dieselbe Version der ACL-Einträge angewendet werden, die im Kafka-Cluster vorhanden ist.

Ein Terminalzeichen 'T' im ETag gibt an, dass die ACL-Einträge gekürzt wurden. Im Kafka-Cluster sind weitere Einträge für die ACL vorhanden, die aufgrund von Wiederholungsfeldlimits nicht in der ACL zurückgegeben werden können.

ACLs erstellen

  1. Install the Google Cloud CLI.

  2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Führen Sie den Befehl gcloud managed-kafka acls create aus:

    gcloud managed-kafka acls create ACL_ID \
      --cluster=CLUSTER_ID \
      --location=LOCATION \
      --acl-entries-from-file=PATH_TO_FILE | \
      --acl-entry=principal=PRINCIPAL,operation=OPERATION, \
      permission-type=PERMISSION-TYPE,host=HOST \

    Ersetzen Sie Folgendes:

    • ACL_ID (erforderlich): die eindeutige ID für die Managed Kafka-ACL-Ressource. Dadurch wird das Ressourcenmuster definiert. Weitere Informationen zur ACL-ID finden Sie unter ACL-ID.
    • CLUSTER_ID (erforderlich): Die ID des Clusters, in dem die ACL-Ressource erstellt wird.
    • LOCATION (erforderlich): Die Region, in der sich der Cluster befindet, z. B. us-central1. Unterstützte Standorte
    • Sie müssen eines der folgenden Flags angeben, um die ACL-Einträge bereitzustellen:
      • PATH_TO_FILE (erforderlich): Pfad zu einer lokalen JSON- oder YAML-Datei, die die Liste der ACL-Einträge im erforderlichen Format enthält.
      • --acl-entry=principal=PRINCIPAL,operation=OPERATION, permission-type=PERMISSION-TYPE,host=HOST (erforderlich): Gibt einen einzelnen ACL-Eintrag direkt an. Wiederholen Sie dieses Flag für jeden Eintrag, den Sie hinzufügen möchten.

--acl-entry verwenden

Führen Sie den Befehl gcloud managed-kafka acls create aus, um ACL-Einträge direkt anzugeben. Sie können den Befehl mehrmals ausführen, um mehrere ACL-Einträge für eine ACL anzugeben.

gcloud managed-kafka acls create ACL_ID \
  --cluster=CLUSTER_ID \
  --location=LOCATION \
  --acl-entry=principal=PRINCIPAL,operation=OPERATION, \
  permission-type=PERMISSION-TYPE,host=HOST\

Ersetzen Sie Folgendes:

  • ACL_ID (erforderlich): Die ID für die neue ACL-Ressource, z. B. topic/my-topic oder cluster.

  • CLUSTER_ID (erforderlich): die ID Ihres Clusters.

  • LOCATION (erforderlich): Die Region Ihres Clusters, z. B. us-central1.

  • --acl-entry (erforderlich): Gibt einen ACL-Eintrag an. Wiederholen Sie das Flag für mehrere Einträge.

    • PRINCIPAL_1, PRINCIPAL_2: das Hauptkonto für den ACL-Eintrag, z. B. 'User:admin@example.iam.gserviceaccount.com oder 'User:*'.

    • OPERATION_1, OPERATION_2: der Vorgangstyp, z. B. ALL oder READ.

    • PERMISSION_1, PERMISSION_2: Der Berechtigungstyp, z. B. ALLOW oder DENY.

    • HOST_1, HOST_2: Der Host für den ACL-Eintrag. Für Google Cloud Managed Service for Apache Kafka muss dies auf das Platzhalterzeichen '*' festgelegt werden.

--acl-entries-from-file verwenden

  1. Erstellen Sie eine lokale Datei wie acl_entries.yaml mit den erforderlichen ACL-Einträgen im YAML-Format:

    ---
    aclEntries:
    - principal: User:admin@project.iam.gserviceaccount.com
      operation: READ
      permissionType: ALLOW
      host: "*"
    - principal: User:admin@project.iam.gserviceaccount.com
      operation: WRITE
      permissionType: ALLOW
      host: "*"
    
  2. Führen Sie den Befehl gcloud managed-kafka acls create aus und verweisen Sie auf die Datei:

    gcloud managed-kafka acls create ACL_ID \
      --cluster=CLUSTER_ID \
      --location=LOCATION \
      --acl-entries-from-file=acl_entries.yaml
    

    Ersetzen Sie Folgendes:

    • ACL_ID (erforderlich): Die ID für die neue ACL-Ressource, z. B. topic/my-topic oder cluster.

    • CLUSTER_ID (erforderlich): die ID Ihres Clusters.

    • LOCATION (erforderlich): Die Region Ihres Clusters, z. B. us-central1.

    • acl_entries.yaml (erforderlich): Der Pfad zu Ihrer lokalen Datei, die die Liste der ACL-Einträge enthält.

Nächste Schritte

Apache Kafka® ist eine eingetragene Marke der Apache Software Foundation oder deren Tochtergesellschaften in den USA und/oder anderen Ländern.