Sie können einer ACL-Ressource von Managed Kafka eine einzelne neue Berechtigungsregel (ACL-Eintrag) hinzufügen, ohne die gesamte Liste der Einträge zu ersetzen. Dies ist nützlich, um bestimmte Berechtigungen schrittweise zu erteilen.
Dieser Vorgang entspricht dem Erstellen einer einzelnen Apache Kafka-ACL-Bindung. Es ist nicht erforderlich, dass die ACL-Ressource bereits vorhanden ist, und es ist kein eTag für die Nebenläufigkeitssteuerung 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 Berechtigungen 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 Berechtigungen, die zum Hinzufügen eines ACL-Eintrags erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um einen ACL-Eintrag hinzuzufügen:
-
Erteilen Sie diese Berechtigung für den übergeordneten Cluster:
managedkafka.acls.updateEntries
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Die Rolle Managed Kafka ACL Editor (roles/managedkafka.aclEditor) enthält die erforderliche Berechtigung zum Hinzufügen oder Entfernen einzelner ACL-Einträge. Weitere Informationen finden Sie unter Vordefinierte Rollen für Google Cloud Managed Service for Apache Kafka.
ACL-Eintrag hinzufügen
-
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 add-acl-entryaus:gcloud managed-kafka acls add-acl-entry ACL_ID \ --cluster=CLUSTER_ID \ --location=LOCATION \ --principal=PRINCIPAL \ --operation=OPERATION \ --permission-type=PERMISSION_TYPE \ --host=HOST
Ersetzen Sie Folgendes:
ACL_ID(erforderlich): Die eindeutige ID der Managed Kafka-ACL-Ressource, der Sie einen ACL-Eintrag hinzufügen möchten. Gibt das Ressourcenmuster an, für das der neue Eintrag gilt. Weitere Informationen zur ACL-ID finden Sie unter ACL-ID.CLUSTER_ID(erforderlich): Die ID des Clusters, der die ACL-Ressource enthält.LOCATION(erforderlich): Die Region, in der sich der Cluster befindet. Unterstützte StandortePRINCIPAL(erforderlich): Das Hauptkonto (Nutzer oder Dienstkonto), für das der ACL-Eintrag gilt. Verwenden Sie das FormatUser:{google_service_account_email}oder das PlatzhalterzeichenUser:*.OPERATION(erforderlich): Der Vorgangstyp, den der ACL-Eintrag gewährt oder verweigert. Zulässige Werte sindALL,READ,WRITE,CREATE,DELETE,ALTER,DESCRIBE,CLUSTER_ACTION,DESCRIBE_CONFIGS,ALTER_CONFIGSundIDEMPOTENT_WRITE.PERMISSION_TYPE(optional, Standardwert:ALLOW): Der konfigurierte Zugriffstyp:ALLOWoderDENY.HOST(optional, Standardwert*): Der Client-Host. Für Google Cloud Managed Service for Apache Kafka muss dieser Wert auf das Platzhalterzeichen'*'festgelegt werden.
Befehlsbeispiel
Führen Sie den folgenden Befehl aus, um einem bestimmten Dienstkonto das Lesen aus einem Thema 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 \
--host='*' \
--operation=READ \
--permission-type=ALLOW \
--principal='User:service-account@test-project.iam.gserviceaccount.com' \
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, für den dieser Eintrag gilt.permissionType: Gibt an, ob der ZugriffALLOWoderDENYist.principal: der Nutzer oder das 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. Das Format istprojects/{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.