Einer Managed Kafka-ACL einen ACL-Eintrag hinzufügen

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

  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 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=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 Standorte
    • PRINCIPAL (erforderlich): Das Hauptkonto (Nutzer oder Dienstkonto), für das der ACL-Eintrag gilt. Verwenden Sie das Format User:{google_service_account_email} oder das Platzhalterzeichen User:*.
    • OPERATION (erforderlich): Der Vorgangstyp, den der ACL-Eintrag gewährt oder verweigert. Zulässige Werte sind ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS und IDEMPOTENT_WRITE.
    • PERMISSION_TYPE (optional, Standardwert: ALLOW): Der konfigurierte Zugriffstyp: ALLOW oder DENY.
    • 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 Zugriff ALLOW oder DENY ist.
      • 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 ist projects/{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.

Nächste Schritte

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