In diesem Dokument wird beschrieben, wie Sie einen ACL-Eintrag erstellen und einer Managed Kafka-ACL-Ressource hinzufügen. Wenn die ACL-Ressource von Managed Kafka nicht vorhanden ist, wird sie durch diesen Vorgang auch erstellt.
Dieser Vorgang entspricht dem Erstellen einer einzelnen Apache Kafka-ACL-Bindung. Im Gegensatz zum Aktualisierungsvorgang ist für die Parallelitätssteuerung kein ETag erforderlich.
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 Berechtigung zu erhalten, die Sie zum Hinzufügen eines ACL-Eintrags benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigung managedkafka.acls.updateEntries, die zum Hinzufügen eines ACL-Eintrags erforderlich ist.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
ACL-Eintrag hinzufügen
Console
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie auf den Namen des Clusters, dem Sie einen ACL-Eintrag hinzufügen möchten.
Klicken Sie auf den Tab Zugriffssteuerung.
Klicken Sie auf ACL-Eintrag erstellen.
Geben Sie im Bereich ACL-Eintrag erstellen die Details des ACL-Eintrags ein:
Wählen Sie in der Liste Ressourcentyp den Typ der Clusterressource aus, für die diese ACL gilt. Weitere Informationen finden Sie unter ACL-ID.
Wenn der Ressourcentyp
Topic,Consumer groupoderTransactional IDist, wählen Sie die ID der Ressource aus oder geben Sie sie ein.Wenn der Ressourcentyp
Topic prefix,Consumer group prefixoderTransactional ID prefixist, geben Sie das Präfix für die abzugleichende ACL ein.Geben Sie im Feld Prinzipal den Prinzipal für den ACL-Eintrag ein.
Wählen Sie in der Liste Berechtigungstyp die Option
ALLOWoderDENYaus.Wählen Sie in der Liste Vorgang den Vorgangstyp für den ACL-Eintrag aus.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den Befehl gcloud managed-kafka acls add-acl-entry aus:
gcloud managed-kafka acls add-acl-entry ACL_ID \
--cluster=CLUSTER_ID \
--location=LOCATION \
--principal=PRINCIPAL \
--operation=OPERATION \
--permission-type=PERMISSION_TYPE \
--host=*
Ersetzen Sie Folgendes:
ACL_ID: Die ID der Managed Kafka-ACL-Ressource, die aktualisiert werden soll. Weitere Informationen finden Sie unter ACL-ID. Wenn keine verwaltete Kafka-ACL mit dieser ID vorhanden ist, wird automatisch eine erstellt.CLUSTER_ID: Die ID Ihres Kafka-Clusters.LOCATION: Die Region Ihres Kafka-Clusters.PRINCIPAL: Das Hauptkonto für den neuen ACL-Eintrag.OPERATION: Der Vorgangstyp, z. B.READoderCREATE.PERMISSION_TYPE: Die Berechtigung, die das Hauptkonto für den Vorgang hat. Geben Sie entwederALLOWoderDENYan.
Befehlsbeispiel
Führen Sie den folgenden Befehl aus, um einem bestimmten Dienstkonto das Lesen aus einem Topic mit dem Namen test-topic im Cluster test-cluster in der Region us-central1 zu erlauben.
gcloud managed-kafka acls add-acl-entry topic/test-topic \
--cluster=test-cluster \
--location=us-central1 \
--principal='User:service-account@test-project.iam.gserviceaccount.com' \
--operation=READ \
--permission-type=ALLOW \
--host='*'
Hier ein Beispiel für eine Ausgabe:
acl:
aclEntries:
- host: '*'
operation: READ
permissionType: ALLOW
principal: 'User:service-account@test-project.iam.gserviceaccount.com'
etag: W/another-new-etag
name: projects/test-project/locations/us-central1/clusters/test-cluster/acls/topic/test-topic
patternType: LITERAL
resourceName: test-topic
resourceType: TOPIC
aclCreated: false
Die Ausgabe des Befehls add-acl-entry enthält Informationen zum resultierenden ACL-Status:
acl: In diesem Abschnitt wird die aktualisierte ACL-Ressource beschrieben, nachdem der neue Eintrag hinzugefügt wurde.aclEntries: Dies ist eine Liste mit allen Zugriffssteuerungseinträgen für diese ACL. In diesem Beispiel würde sie jetzt den gerade hinzugefügten Eintrag enthalten. Jeder Eintrag hat die folgenden Felder:host: Der Host für den ACL-Eintrag.operation: Der Kafka-Vorgang, auf den sich dieser Eintrag bezieht.permissionType: Gibt an, ob der ZugriffALLOWoderDENYist.principal: Das Nutzer- oder Dienstkonto, für das dieser Eintrag gilt.
etag: Das ist das Entity-Tag für die aktualisierte ACL. Sie wird für die optimistische Nebenläufigkeitserkennung bei nachfolgenden Aktualisierungen verwendet. Der Wert ändert sich, nachdem ein Eintrag hinzugefügt wurde.name: Die eindeutige Kennung für die ACL-Ressource. Es hat das Formatprojects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id}.patternType: Der Typ des Ressourcenmusters für diese ACL.resourceName: Der Name der Kafka-Ressource, für die diese ACL gilt.resourceType: Der Typ der Kafka-Ressource.
aclCreated: Ein boolescher Wert, der angibt, ob die ACL-Ressource durch das Hinzufügen dieses Eintrags erstellt wurde.