Menambahkan entri ACL ke ACL Managed Kafka

Anda dapat menambahkan satu aturan izin baru yang disebut entri ACL ke resource ACL Managed Kafka tanpa mengganti seluruh daftar entri. Hal ini berguna untuk memberikan izin tertentu secara bertahap.

Operasi ini serupa dengan membuat binding ACL Apache Kafka tunggal. Tidak memerlukan resource ACL sudah ada dan tidak memerlukan eTag untuk kontrol serentak.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang diperlukan guna menambahkan entri ACL, minta administrator untuk memberi Anda peran IAM Managed Kafka ACL Editor (roles/managedkafka.aclEditor) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk menambahkan entri ACL. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk menambahkan entri ACL:

  • Berikan izin ini di cluster induk: managedkafka.acls.updateEntries

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Peran Managed Kafka ACL Editor (roles/managedkafka.aclEditor) berisi izin yang diperlukan untuk menambahkan atau menghapus setiap entri ACL. Untuk mengetahui detail selengkapnya, lihat Peran standar Google Cloud Managed Service for Apache Kafka.

Menambahkan entri ACL

  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. Jalankan perintah gcloud managed-kafka acls add-acl-entry:

    gcloud managed-kafka acls add-acl-entry ACL_ID \
      --cluster=CLUSTER_ID \
      --location=LOCATION \
      --principal=PRINCIPAL \
      --operation=OPERATION \
      --permission-type=PERMISSION_TYPE \
      --host=HOST

    Ganti kode berikut:

    • ACL_ID (wajib): ID unik resource ACL Kafka Terkelola tempat Anda ingin menambahkan entri ACL. Bagian ini mengidentifikasi pola resource yang menerapkan entri baru. Untuk informasi selengkapnya tentang ID ACL, lihat ID ACL.
    • CLUSTER_ID (wajib): ID cluster yang berisi resource ACL.
    • LOCATION (wajib): region tempat cluster berada. Lihat Lokasi yang didukung.
    • PRINCIPAL (wajib): akun utama (pengguna atau akun layanan) yang menjadi tujuan penerapan entri ACL. Gunakan format User:{google_service_account_email} atau karakter pengganti User:*.
    • OPERATION (wajib): jenis operasi yang diberikan atau ditolak oleh entri ACL. Nilai yang diizinkan mencakup ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS, dan IDEMPOTENT_WRITE.
    • PERMISSION_TYPE (opsional, nilai default ALLOW): jenis akses yang dikonfigurasi: ALLOW atau DENY.
    • HOST (opsional, nilai default *): host klien. Untuk Google Cloud Managed Service for Apache Kafka, setelan ini harus ditetapkan ke wildcard '*'.

Contoh perintah

Jalankan perintah berikut untuk mengizinkan akun layanan tertentu membaca dari topik bernama test-topic di cluster test-cluster di region us-central1.

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' \

Berikut contoh output:

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

Output perintah add-acl-entry memberikan informasi tentang status ACL yang dihasilkan:

  • acl: bagian ini menjelaskan resource ACL yang diperbarui setelah entri baru ditambahkan.
    • aclEntries: ini adalah daftar yang berisi semua entri kontrol akses untuk ACL ini. Dalam contoh ini, entri yang baru ditambahkan akan disertakan. Setiap entri memiliki kolom berikut:
      • host: host untuk entri ACL.
      • operation: operasi Kafka yang berlaku untuk entri ini.
      • permissionType: apakah aksesnya ALLOW atau DENY.
      • principal: akun pengguna atau akun layanan yang terkait dengan entri ini.
    • etag: ini adalah tag entity untuk ACL yang diperbarui. ETag digunakan untuk kontrol konkurensi optimis selama update berikutnya. Nilai berubah setelah entri ditambahkan.
    • name: ID unik untuk resource ACL. Formatnya adalah projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id}.
    • patternType: jenis pola resource untuk ACL ini.
    • resourceName: nama resource Kafka yang menjadi tujuan penerapan ACL ini.
    • resourceType: jenis resource Kafka.
  • aclCreated: nilai boolean yang menunjukkan apakah resource ACL dibuat sebagai hasil dari penambahan entri ini.

Langkah berikutnya

Apache Kafka® adalah merek dagang terdaftar milik The Apache Software Foundation atau afiliasinya di Amerika Serikat dan/atau negara lain.