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
-
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 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 formatUser:{google_service_account_email}atau karakter penggantiUser:*.OPERATION(wajib): jenis operasi yang diberikan atau ditolak oleh entri ACL. Nilai yang diizinkan mencakupALL,READ,WRITE,CREATE,DELETE,ALTER,DESCRIBE,CLUSTER_ACTION,DESCRIBE_CONFIGS,ALTER_CONFIGS, danIDEMPOTENT_WRITE.PERMISSION_TYPE(opsional, nilai defaultALLOW): jenis akses yang dikonfigurasi:ALLOWatauDENY.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 aksesnyaALLOWatauDENY.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 adalahprojects/{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.