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(Mewakilitopic/*)Semua grup:
allConsumerGroups(MewakiliconsumerGroup/*)Semua ID transaksional:
allTransactionalIds(MewakilitransactionalId/*)
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 penggantiUser:*.Operation: jenis operasi Kafka, seperti
ALL,READ,WRITE,CREATE,DELETE,ALTER,DESCRIBE,CLUSTER_ACTION,DESCRIBE_CONFIGS,ALTER_CONFIGS, atauIDEMPOTENT_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
ALLOWatauDENY(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, atauTRANSACTIONAL_ID.Nama resource: nama resource ACL (atau awalan yang cocok, untuk jenis pola
PREFIXED) yang berasal dari nama. Untuk jenis resourceCLUSTER, ini selalu"kafka-cluster". Dapat berupa literal karakter pengganti"*".Jenis pola ACL: jenis pola ACL yang berasal dari nama. Salah satu dari:
LITERALatauPREFIXED.
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
-
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 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, sepertius-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, sepertitopic/my-topicataucluster.CLUSTER_ID(wajib): ID cluster Anda.LOCATION(wajib): region cluster Anda, sepertius-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.comatau'User:*'.OPERATION_1,OPERATION_2: jenis operasi sepertiALLatauREAD.PERMISSION_1,PERMISSION_2: jenis izin sepertiALLOWatauDENY.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
Buat file lokal seperti
acl_entries.yamldengan 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: "*"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.yamlGanti kode berikut:
ACL_ID(wajib): ID untuk resource ACL baru, sepertitopic/my-topicataucluster.CLUSTER_ID(wajib): ID cluster Anda.LOCATION(wajib): region cluster Anda, sepertius-central1.acl_entries.yaml(wajib): jalur ke file lokal Anda yang berisi daftar entri ACL.