Setelah membuat resource ACL Managed Service for Apache Kafka, Anda dapat mengedit konfigurasinya untuk memperbarui daftar entri ACL.
Memperbarui resource ACL Managed Service for Apache Kafka dapat dilakukan dengan dua cara:
Penggantian penuh: menggantikan seluruh daftar entri ACL seperti yang didokumentasikan di halaman ini.
Pembaruan inkremental: menambahkan atau menghapus satu entri ACL seperti yang didokumentasikan di halaman Menambahkan entri ACL dan Menghapus entri ACL.
Anda tidak dapat mengubah daftar entri ACL menjadi kosong menggunakan operasi update. Untuk menghapus semua entri untuk pola resource, hapus resource ACL Managed Service for Apache Kafka.
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang
diperlukan guna memperbarui ACL Managed Service for Apache Kafka,
minta administrator Anda 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 memperbarui ACL Managed Service for Apache Kafka. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk memperbarui ACL Managed Service for Apache Kafka:
-
Berikan izin ini pada ACL yang diminta untuk diperbarui menggunakan penggantian penuh (API
UpdateAcl):managedkafka.acls.update -
Berikan izin ini pada ACL yang diminta untuk diupdate menggunakan perubahan inkremental (API
AddAclEntryatauRemoveAclEntry):managedkafka.acls.updateEntries
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi selengkapnya tentang peran Managed Kafka ACL Editor, lihat Peran standar Google Cloud Managed Service for Apache Kafka.
Properti etag
Kolom etag digunakan untuk kontrol konkurensi optimis. ETag ditampilkan
dalam respons terhadap operasi GetAcl dan CreateAcl. Anda harus menyertakan
etag ini dalam permintaan UpdateAcl untuk memastikan bahwa perubahan Anda berlaku pada
versi resource ACL Managed Service for Apache Kafka yang sama dengan yang Anda ambil.
Hal ini mencegah hilangnya update jika resource dimodifikasi secara serentak.
Karakter T terminal dalam etag menunjukkan bahwa daftar entri ACL dipangkas dalam respons karena melebihi jumlah maksimum item kolom yang dapat diulang. Entri lainnya untuk pola resource ini ada langsung di cluster Kafka, tetapi tidak dapat ditampilkan di resource ACL Managed Service untuk Apache Kafka. Pembaruan penggantian penuh tidak didukung untuk resource dengan entri ACL yang terpotong. Dalam skenario ini, gunakan Apache Kafka API standar seperti
kafka-acls.sh atau AdminClient untuk mengelola ACL secara langsung.
Penggantian penuh entri ACL
Anda dapat menggunakan metode API UpdateAcl atau perintah
gcloud managed-kafka acls update untuk melakukan penggantian
seluruh daftar entri ACL. Seluruh kolom acl_entries dalam
resource akan digantikan oleh daftar yang dikirim dalam permintaan pembaruan.
Untuk mengubah daftar menggunakan metode ini, misalnya, untuk menambahkan atau menghapus satu entri ACL sambil mempertahankan entri lainnya, lakukan langkah-langkah berikut:
Ambil daftar entri ACL saat ini dan etag menggunakan perintah describe.
Buat daftar entri ACL baru.
Jalankan perintah
gcloud managed-kafka acls updatebersama dengan etag yang diambil.
Bagian berikut menunjukkan cara menggunakan perintah gcloud managed-kafka acls update untuk melakukan penggantian penuh daftar 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 updateuntuk mengganti semua entri ACL yang ada dengan entri yang ditentukan:ACL_ID(wajib): ID resource ACL Managed Service untuk Apache Kafka yang akan diupdate. Untuk mengetahui informasi selengkapnya tentang ID ACL, lihat ID ACL.CLUSTER_ID(wajib): ID cluster yang berisi resource ACL.LOCATION(wajib): region tempat cluster berada. Untuk mengetahui informasi selengkapnya tentang region, lihat Lokasi yang didukung.ETAG_VALUE(wajib): nilai etag yang diperoleh dari operasi deskripsi atau pembuatan sebelumnya untuk resource ACL ini.--acl-entry(wajib): Menentukan entri ACL yang akan disertakan dalam daftar baru. Anda dapat mengulangi tanda ini untuk menyertakan beberapa entri. Seluruh daftar yang ada digantikan oleh entri yang ditentukan dalam perintah.PRINCIPAL(wajib): prinsipal untuk entri ACL ini. Gunakan formatUser:{google_service_account_email}atau karakter penggantiUser:*.OPERATION_TYPE(wajib): jenis operasi untuk entri ACL ini. Nilai yang diizinkan mencakupALL,READ,WRITE,CREATE,DELETE,ALTER,DESCRIBE,CLUSTER_ACTION,DESCRIBE_CONFIGS,ALTER_CONFIGS, danIDEMPOTENT_WRITE.PERMISSION_TYPE(wajib): jenis izin yang akan diperbarui:ALLOWatauDENY.HOST(wajib): host klien entri ACL yang akan diperbarui. Untuk Google Cloud Managed Service for Apache Kafka, nilai ini harus ditetapkan ke wildcard'*'.
gcloud managed-kafka acls update ACL_ID \ --cluster=CLUSTER_ID \ --location=LOCATION \ --etag=ETAG_VALUE \ --acl-entry=principal='PRINCIPAL',operation=OPERATION_TYPE,permission_type=PERMISSION_TYPE,host='*' \
Ganti kode berikut:
Contoh penggantian penuh
Perintah ini menggantikan semua entri ACL yang ada untuk pola resource topic/orders di test-kafka-cluster yang berada di us-central1 dengan satu entri baru. Entri baru ini memberikan izin WRITE ke akun layanan
producer-app@test-project.iam.gserviceaccount.com.
Perintah ini memerlukan etag saat ini dari resource ACL, yaitu
"AYk=Ags=" dalam contoh ini.
gcloud managed-kafka acls update topic/orders \
--cluster=test-kafka-cluster \
--location=us-central1 \
--project=test-project \
--etag='"AYk=Ags="' \
--acl-entry=principal='User:producer-app@test-project.iam.gserviceaccount.com',operation=WRITE,permission_type=ALLOW,host='*'
Jika perintah berhasil, output akan menampilkan konfigurasi resource ACL yang diperbarui, termasuk daftar aclEntries baru dan etag baru. Semua
entri yang ada sebelumnya untuk resource ACL ini akan dihapus.
aclEntries:
- host: '*'
operation: WRITE
permissionType: ALLOW
principal: User:producer-app@test-project.iam.gserviceaccount.com
etag: '"Bcn=Def="' # Note: The etag value changes after a successful update.
name: projects/test-project/locations/us-central1/clusters/my-kafka-cluster/acls/topic/orders
resourcePatternType: TOPIC
Update inkremental entri ACL
Anda dapat menambahkan atau menghapus item entri ACL satu per satu tanpa mengganti seluruh
daftar menggunakan metode API AddAclEntry dan RemoveAclEntry atau perintah gcloud managed-kafka acls add-acl-entry dan
gcloud managed-kafka acls remove-acl-entry yang sesuai. Metode ini tidak memerlukan etag.
Menggunakan
AddAclEntryakan menambahkan satu entri ACL baru ke resource ACL Managed Service for Apache Kafka. Hal ini serupa dengan membuatAclBindingApache Kafka baru tunggal. Untuk mengetahui informasi selengkapnya, lihat Menambahkan entri ACL.Menggunakan
RemoveAclEntryakan menghapus satu entri ACL yang ada dari resource ACL Managed Service for Apache Kafka. Hal ini serupa dengan menghapus satuAclBindingApache Kafka. Untuk mengetahui informasi selengkapnya, lihat Menghapus entri ACL.