Membuat ACL Managed Kafka

Daftar kontrol akses (ACL) Kafka terkelola memberikan otorisasi terperinci untuk operasi dalam cluster Managed Service for Apache Kafka Anda. Membuat resource ACL Kafka Terkelola menentukan serangkaian aturan izin untuk pola resource Kafka tertentu. Untuk konsep dasar, lihat Kontrol akses dengan IAM dan ACL Kafka.

Sebelum memulai

Pastikan Anda memiliki cluster Managed Service for Apache Kafka yang sudah ada.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang diperlukan guna membuat ACL Kafka Terkelola, 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 membuat ACL Kafka Terkelola. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat ACL Kafka Terkelola:

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

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

Peran Managed Kafka ACL Editor (roles/managedkafka.aclEditor) memberikan izin untuk membuat, melihat, memperbarui, dan menghapus resource ACL. Untuk mengetahui informasi selengkapnya tentang peran ini, lihat Peran bawaan Managed Service for Apache Kafka.

Properti ACL Managed Kafka

Saat membuat resource ACL Kafka Terkelola, Anda harus menentukan properti berikut:

ID ACL

Ini adalah ID unik untuk resource ACL Managed Kafka dalam cluster dan lokasi. Struktur ACL_ID juga menentukan pola resource (jenis resource, nama resource, jenis pola) yang aturan ACL-nya berlaku.

Pilih ACL_ID berdasarkan pola resource yang ingin Anda targetkan untuk pengikatan ACL:

  • Cluster: cluster (Berlaku untuk resource cluster itu sendiri)

  • Topik tertentu: topic/{topic_name}

  • Grup tertentu: consumerGroup/{group_name}

  • ID transaksi tertentu: transactionalId/{transactional_id}

  • Semua topik dengan awalan: topicPrefixed/{prefix}

  • Semua grup konsumen dengan awalan: consumerGroupPrefixed/{prefix}

  • Semua ID transaksional dengan awalan: transactionalIdPrefixed/{prefix}

  • Semua topik: allTopics (Mewakili topic/*)

  • Semua grup: allConsumerGroups (Mewakili consumerGroup/*)

  • Semua ID transaksional: allTransactionalIds (Mewakili transactionalId/*)

Untuk mengetahui informasi selengkapnya, lihat Panduan untuk memberi nama resource Managed Service for Apache Kafka.

Anda tidak dapat mengubah ID ACL setelah dibuat. Tidak dapat diubah.

Entri ACL

Ini adalah daftar aturan izin spesifik yang berlaku untuk pola resource yang ditentukan oleh ID ACL.

  • Anda harus memberikan setidaknya satu entri ACL saat membuat resource; daftar kosong tidak diizinkan.

  • Jumlah maksimum entri yang diizinkan per resource ACL Kafka Terkelola adalah 100. Jika Anda memerlukan lebih banyak aturan untuk satu pola resource, Anda harus mengelola ACL secara langsung menggunakan alat Apache Kafka standar.

  • Setiap entri ACL berisi kolom berikut:

    • Akun utama: pengguna atau akun layanan yang menjadi tujuan penerapan aturan. Tentukan menggunakan format User:{google_service_account_email} atau gunakan karakter pengganti User:*.

    • Operation: jenis operasi Kafka, seperti ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS, atau IDEMPOTENT_WRITE (tidak peka huruf besar/kecil). Untuk kombinasi jenis operasi dan resource yang valid, lihat Operasi dan Resource pada Protokol dalam dokumentasi Apache Kafka.

    • Permission-type: salah satu dari ALLOW atau DENY (tidak peka huruf besar/kecil).

    • Host: harus disetel ke wildcard * untuk Managed Service for Apache Kafka.

Anda dapat memberikan entri ini langsung di command line menggunakan flag --acl-entry atau dengan memberikan file JSON atau YAML menggunakan flag --acl-entries-from-file.

Properti pola resource hanya output

Saat Anda membuat ACL, Managed Service untuk Apache Kafka akan mengisi kolom pola resource berikut berdasarkan ID ACL yang diberikan:

  • Jenis resource: jenis resource ACL yang berasal dari nama. Salah satu dari: CLUSTER, TOPIC, GROUP, atau TRANSACTIONAL_ID.

  • Nama resource: nama resource ACL (atau awalan yang cocok, untuk jenis pola PREFIXED) yang berasal dari nama. Untuk jenis resource CLUSTER, ini selalu "kafka-cluster". Dapat berupa literal karakter pengganti "*".

  • Jenis pola ACL: jenis pola ACL yang berasal dari nama. Salah satu dari: LITERAL atau PREFIXED.

Kolom ini hanya berupa output dan disediakan untuk memudahkan pemetaan resource ACL Managed Kafka ke binding ACL Kafka.

Etag

ETag digunakan untuk kontrol konkurensi. Etag ditampilkan dalam respons terhadap operasi GetAcl dan CreateAcl. Pemanggil diwajibkan untuk memasukkan ETag tersebut dalam permintaan ke UpdateAcl untuk memastikan bahwa perubahannya diterapkan ke versi entri ACL yang sama yang ada di Cluster Kafka.

Karakter 'T' terminal di ETag menunjukkan bahwa entri ACL dipangkas. Ada lebih banyak entri untuk ACL di Cluster Kafka, tetapi tidak dapat ditampilkan di ACL karena batas kolom berulang.

Membuat 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 create:

    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 \

    Ganti kode berikut:

    • ACL_ID (wajib): ID unik untuk resource ACL Managed Kafka. Bagian ini menentukan pola resource. Untuk mengetahui informasi selengkapnya tentang ID ACL, lihat ID ACL.
    • CLUSTER_ID (wajib): ID cluster tempat resource ACL dibuat.
    • LOCATION (wajib): region tempat cluster berada, seperti us-central1. Lihat Lokasi yang didukung.
    • Anda harus menentukan salah satu flag berikut untuk memberikan entri ACL:
      • PATH_TO_FILE (wajib): jalur ke file JSON atau YAML lokal yang berisi daftar entri ACL dalam format yang diperlukan.
      • --acl-entry=principal=PRINCIPAL,operation=OPERATION, permission-type=PERMISSION-TYPE,host=HOST (wajib): menentukan satu entri ACL secara langsung. Ulangi tanda ini untuk setiap entri yang ingin Anda tambahkan.

Gunakan --acl-entry

Jalankan perintah gcloud managed-kafka acls create untuk menyediakan entri ACL secara langsung. Anda dapat menjalankan perintah beberapa kali untuk menentukan beberapa entri ACL untuk ACL.

gcloud managed-kafka acls create ACL_ID \
  --cluster=CLUSTER_ID \
  --location=LOCATION \
  --acl-entry=principal=PRINCIPAL,operation=OPERATION, \
  permission-type=PERMISSION-TYPE,host=HOST\

Ganti kode berikut:

  • ACL_ID (wajib): ID untuk resource ACL baru, seperti topic/my-topic atau cluster.

  • CLUSTER_ID (wajib): ID cluster Anda.

  • LOCATION (wajib): region cluster Anda, seperti us-central1.

  • --acl-entry (wajib): menentukan satu entri ACL. Ulangi tanda untuk beberapa entri.

    • PRINCIPAL_1, PRINCIPAL_2: prinsipal untuk entri ACL seperti 'User:admin@example.iam.gserviceaccount.com atau 'User:*'.

    • OPERATION_1, OPERATION_2: jenis operasi seperti ALL atau READ.

    • PERMISSION_1, PERMISSION_2: jenis izin seperti ALLOW atau DENY.

    • HOST_1, HOST_2: host untuk entri ACL. Untuk Google Cloud Managed Service for Apache Kafka, setelan ini harus ditetapkan ke wildcard '*'.

Gunakan --acl-entries-from-file

  1. Buat file lokal seperti acl_entries.yaml dengan entri ACL yang diperlukan dalam format YAML:

    ---
    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: "*"
    
  2. Jalankan perintah gcloud managed-kafka acls create, dengan mereferensikan file:

    gcloud managed-kafka acls create ACL_ID \
      --cluster=CLUSTER_ID \
      --location=LOCATION \
      --acl-entries-from-file=acl_entries.yaml
    

    Ganti kode berikut:

    • ACL_ID (wajib): ID untuk resource ACL baru, seperti topic/my-topic atau cluster.

    • CLUSTER_ID (wajib): ID cluster Anda.

    • LOCATION (wajib): region cluster Anda, seperti us-central1.

    • acl_entries.yaml (wajib): jalur ke file lokal Anda yang berisi daftar entri ACL.

Apa langkah selanjutnya?

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