Dokumen ini menjelaskan cara menggunakan Google Cloud Identity and Access Management (IAM) untuk kontrol akses di Google Cloud Managed Service for Apache Kafka.
IAM mengontrol akses di Google Cloud tingkat resource:
Kontrol IAM menentukan siapa yang dapat mengelola resource Managed Service untuk Apache Kafka Anda seperti cluster, topik, atau ACL menggunakan API dan alat. Google Cloud Contoh alat tersebut adalah konsolGoogle Cloud , gcloud CLI, atau library klien.
Kontrol ini juga menentukan siapa yang memiliki izin untuk terhubung ke cluster Managed Service for Apache Kafka Anda pada awalnya saat menggunakan klien Apache Kafka standar.
Untuk mengetahui informasi selengkapnya tentang IAM, lihat dokumentasi IAM.
Ringkasan IAM
IAM memungkinkan Anda memberikan akses terperinci ke resourceGoogle Cloud tertentu dan mencegah akses yang tidak diinginkan ke resource lain. IAM memungkinkan Anda menerapkan prinsip keamanan dengan hak istimewa terendah, sehingga Anda hanya memberikan akses yang diperlukan ke resource Anda.
Dengan IAM, Anda dapat mengontrol siapa (akun utama) yang memiliki akses apa (peran) ke resource mana.
Utama
Akun utama dapat berupa Akun Google (untuk pengguna akhir), akun layanan (untuk aplikasi dan virtual machine), grup Google, atau domain Google Workspace atau Cloud Identity yang dapat mengakses resource.
Untuk mengetahui informasi selengkapnya, lihat Ringkasan IAM: Akun utama.
Principal khusus—Managed Kafka Service Agent
Google Cloud Managed Service for Apache Kafka menggunakan akun layanan terkelola yang dikenal sebagai agen layanan untuk mengakses resource Anda. Google Cloud Jika Anda telah mengaktifkan API, agen layanan sudah dibuat. Agen layanan dapat diidentifikasi berdasarkan emailnya:
service-PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com.
Agen layanan Managed Service for Apache Kafka memerlukan peran
Managed Kafka Service Agent (roles/managedkafka.serviceAgent)
di project untuk mengelola resource Managed Service for Apache Kafka.
Peran ini diberikan secara otomatis saat Anda mengaktifkan API. Jika Anda mencabut peran ini, Managed Service for Apache Kafka tidak dapat membuat, mengupdate, atau menghapus cluster.
Resource
Contoh resource yang dapat Anda beri akses di Managed Service for Apache Kafka adalah project, cluster, topik, dan grup konsumen.
Beberapa metode API memerlukan izin untuk beberapa resource. Misalnya, tugas Create Connect cluster memerlukan izin managedkafka.connectClusters.create
pada lokasi induk resource cluster Connect dan
izin managedkafka.clusters.attachConnectCluster pada resource
cluster.
Peran
Peran adalah kumpulan izin. Izin menentukan operasi apa saja yang diizinkan pada suatu resource. Saat memberikan peran kepada akun utama, Anda memberikan semua izin yang dimiliki oleh peran tersebut.
Anda dapat memberikan satu atau beberapa peran kepada akun utama.
Mirip dengan produk Google Cloud lainnya, Managed Service for Apache Kafka mendukung tiga jenis peran:
Peran dasar: peran yang sangat permisif yang sudah ada sebelum pengenalan IAM. Untuk mengetahui informasi selengkapnya tentang peran dasar, lihat Peran dasar.
Peran bawaan: memberikan akses terperinci ke resource Google Cloud tertentu. Untuk mengetahui informasi selengkapnya tentang peran bawaan, lihat Peran bawaan. Peran bawaan Managed Service untuk Apache Kafka disertakan di bagian selanjutnya dalam bagian ini.
Peran khusus: membantu Anda menerapkan prinsip hak istimewa terendah. Untuk mengetahui informasi selengkapnya tentang peran khusus, lihat Peran khusus.
Sebagai contoh, peran bawaan Managed Kafka Viewer (roles/managedkafka.viewer) memberikan akses hanya baca ke resource Managed Service for Apache Kafka. Principal dengan peran ini dapat melihat cluster, topik, dan grup konsumen, tetapi tidak dapat membuat, memperbarui, atau menghapusnya.
Untuk mengetahui informasi selengkapnya tentang cara menetapkan peran, lihat dokumentasi tentang Memberikan, mengubah, dan mencabut akses.
Untuk menentukan izin yang Anda perlukan untuk tugas tertentu, lihat halaman referensi Peran dan izin Managed Service for Apache Kafka.
Cara kerja kontrol akses
Otorisasi untuk akses ke Managed Service for Apache Kafka menggunakan Google Cloud API ditangani oleh IAM. Otorisasi untuk akses dari klien Apache Kafka open source yang menggunakan autentikasi SASL diperiksa oleh IAM.
Saat klien terhubung menggunakan SASL, IAM akan memeriksa terlebih dahulu apakah prinsipal memiliki izin
managedkafka.clusters.connect. Jika pemeriksaan ini gagal, koneksi akan ditolak.Saat klien terhubung menggunakan mTLS, pemeriksaan izin IAM awal ini dilewati, dan otorisasi ditangani secara eksklusif oleh ACL Kafka.
Untuk keamanan yang komprehensif, Anda harus mengonfigurasi hal berikut:
Izin IAM untuk akses pengelolaan.
Izin IAM untuk akses koneksi jika menggunakan SASL.
ACL Kafka untuk akses dan operasi data dalam cluster dari klien Apache Kafka open source, terlepas dari metode autentikasinya.
Misalnya, anggap Anda ingin mencegah akun utama mengedit topik. Anda dapat melakukannya dengan dua cara:
Sepenuhnya melalui IAM. Tolak peran Managed Kafka Topic Editor (
roles/managedkafka.topicEditor) dan Managed Kafka Client (roles/managedkafka.client) untuk akun utama. Konfigurasi ini sepenuhnya membatasi pengeditan topik melalui API Google Clouddan mencegah akses API Kafka menggunakan SASL. Konfigurasi ini tidak mencegah koneksi yang menggunakan mTLS.Menggunakan ACL Kafka bersama dengan IAM. Metode ini diperlukan jika prinsipal menggunakan mTLS atau memerlukan akses SASL untuk operasi lainnya. Batasi operasi berikut menggunakan ACL Kafka:
Buat (untuk pembuatan topik) di tingkat cluster.
Ubah, UbahKonfigurasi, Hapus (untuk modifikasi dan penghapusan topik) di tingkat topik.
Anda dapat memilih metode yang sesuai berdasarkan apakah pokok memerlukan akses ke Kafka API dan metode autentikasi yang digunakan.
Menetapkan kontrol akses di level project
Untuk menetapkan kontrol akses di level project, lihat Mengelola akses ke project, folder, dan organisasi.
Menetapkan kontrol akses di tingkat resource
Beberapa permintaan Managed Service for Apache Kafka, seperti pembuatan atau update cluster, adalah operasi yang berjalan lama. Untuk mengizinkan akun utama melakukan tindakan ini, berikan
akses ke resource managedkafka.googleapis.com/Operation selain ke
resource cluster tertentu.
Konfigurasi ini memastikan bahwa akun utama dapat memulai operasi dan memantau progresnya.
Berikut adalah contoh kondisi IAM yang ditetapkan pada topik
bernama "test-topic":
{'expression': 'resource.name.endsWith('test-topic') 'title': 'SampleIAMCondition'}`.
Contoh ini menunjukkan kondisi IAM yang memeriksa apakah nama resource
berakhir dengan test-topic. Jika ya, kondisinya adalah true. Kondisi
tertentu ini diberi judul SampleIAMCondition dan dapat digunakan dalam
kebijakan IAM untuk membatasi akses hanya ke topik tertentu ini.
Permintaan Managed Service for Apache Kafka tertentu, seperti pembuatan atau update cluster,
akan menampilkan operasi yang berjalan lama. Untuk memberikan akses di tingkat cluster, sertakan
akses untuk semua resource jenis managedkafka.googleapis.com/Operation selain
kondisi resource per cluster. Proses ini memastikan bahwa
principal dapat memulai operasi dan memantau progresnya.
Kontrol akses lintas project
Untuk memberikan otorisasi kepada klien di project lain agar dapat mengakses cluster, berikan peran
Managed Kafka Client (roles/managedkafka.client) kepada akun layanan klien
di project cluster.
Misalnya, jika Anda ingin mengizinkan VM Compute Engine di project-B untuk mengakses
cluster di project-A, di project-A, berikan peran Managed Kafka Client
(roles/managedkafka.client) ke akun layanan
VM Compute Engine di project-B.
Langkah berikutnya
Untuk mempelajari lebih lanjut konsep dasar IAM, lihat Ringkasan IAM.
Untuk mempelajari berbagai komponen kebijakan IAM, lihat Kebijakan IAM.
Untuk mempelajari cara menggunakan ACL Kafka untuk akses data dalam cluster, lihat ACL Kafka.
Untuk melihat daftar lengkap peran dan izin Managed Service for Apache Kafka, lihat Peran dan izin Managed Service for Apache Kafka.