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(entsprichttopic/*)Alle Gruppen:
allConsumerGroups(entsprichtconsumerGroup/*)Alle Transaktions-IDs:
allTransactionalIds(entsprichttransactionalId/*)
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 PlatzhalterzeichenUser:*.Vorgang:Der Kafka-Vorgangstyp, z. B.
ALL,READ,WRITE,CREATE,DELETE,ALTER,DESCRIBE,CLUSTER_ACTION,DESCRIBE_CONFIGS,ALTER_CONFIGSoderIDEMPOTENT_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:
ALLOWoderDENY(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,GROUPoderTRANSACTIONAL_ID.Ressourcenname: Der ACL-Ressourcenname (oder das übereinstimmende Präfix für den
PREFIXED-Mustertyp), der aus dem Namen abgeleitet wird. Für den RessourcentypCLUSTERist dies immer"kafka-cluster". Kann das Platzhalterliteral"*"sein.ACL-Mustertyp: Der aus dem Namen abgeleitete ACL-Mustertyp. Eine der folgenden Optionen:
LITERALoderPREFIXED.
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
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init Führen Sie den Befehl
gcloud managed-kafka acls createaus: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-topicodercluster.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.comoder'User:*'.OPERATION_1,OPERATION_2: der Vorgangstyp, z. B.ALLoderREAD.PERMISSION_1,PERMISSION_2: Der Berechtigungstyp, z. B.ALLOWoderDENY.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
Erstellen Sie eine lokale Datei wie
acl_entries.yamlmit 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: "*"Führen Sie den Befehl
gcloud managed-kafka acls createaus und verweisen Sie auf die Datei:gcloud managed-kafka acls create ACL_ID \ --cluster=CLUSTER_ID \ --location=LOCATION \ --acl-entries-from-file=acl_entries.yamlErsetzen Sie Folgendes:
ACL_ID(erforderlich): Die ID für die neue ACL-Ressource, z. B.topic/my-topicodercluster.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.