Dokumen ini menjelaskan opsi kontrol akses yang tersedia untuk Anda di Pub/Sub.
Ringkasan
Pub/Sub menggunakan Identity and Access Management (IAM) untuk kontrol akses.
IAM memungkinkan Anda memberikan peran tertentu kepada pengguna, grup, dan akun layanan, sehingga memberi mereka izin yang diperlukan untuk melakukan tugas mereka. Anda dapat memberikan peran IAM ini menggunakan konsol Google Cloud atau IAM API.
Di Pub/Sub, kontrol akses dapat dikonfigurasi di level project dan di level resource individual. Berikut beberapa contoh untuk menggunakan kontrol akses Pub/Sub:
Berikan akses berdasarkan per resource, bukan untuk seluruh project Cloud.
Berikan akses dengan kemampuan terbatas, seperti hanya memublikasikan pesan ke topik, atau hanya menggunakan pesan dari langganan, tetapi tidak menghapus topik atau langganan.
Berikan akses ke semua resource Pub/Sub dalam project kepada grup developer.
Jika memiliki akses hanya lihat ke satu resource seperti topik atau langganan, Anda tidak dapat melihat resource tersebut menggunakan konsol Google Cloud. Sebagai gantinya, Anda dapat menggunakan Google Cloud CLI untuk melihat resource.
Untuk mengetahui deskripsi mendetail tentang IAM dan fitur-fiturnya, lihat dokumentasi IAM. Secara khusus, lihat artikel Memberikan, mengubah, dan mencabut akses ke resource.
Jenis peran di Pub/Sub
Serupa dengan produk Google Cloud lainnya, Pub/Sub mendukung tiga jenis peran:
Peran dasar: Peran dasar adalah peran yang sangat permisif yang ada sebelum pengenalan IAM. Untuk mengetahui informasi selengkapnya tentang peran dasar, lihat Peran dasar.
Peran bawaan: Peran bawaan memberikan akses terperinci ke resourceGoogle Cloud tertentu. Untuk mengetahui informasi selengkapnya tentang peran bawaan, lihat Peran bawaan. Peran bawaan Pub/Sub disertakan di bagian selanjutnya dalam bagian ini.
Peran khusus: Peran khusus membantu Anda menerapkan prinsip hak istimewa terendah. Untuk informasi selengkapnya tentang peran khusus, lihat Peran khusus.
Izin Pub/Sub yang diperlukan
Bagian berikut mencantumkan izin Pub/Sub yang diperlukan untuk mengakses berbagai resource Pub/Sub.
Izin yang diperlukan untuk topik
Tabel berikut menguraikan izin yang diperlukan untuk setiap metode Pub/Sub API yang terkait dengan topik. Halaman ini menunjukkan izin IAM yang diperlukan untuk memanggil setiap metode, beserta deskripsi tentang fungsi metode tersebut.
Metode | Deskripsi | Izin yang diperlukan |
---|---|---|
projects.topics.create
|
Membuat topik yang diberikan dengan nama yang diberikan. | pubsub.topics.create
di project Cloud yang berisinya |
projects.topics.delete
|
Menghapus topik dengan nama yang diberikan. | pubsub.topics.delete
pada topik yang diminta |
projects.topics.get
|
Mendapatkan konfigurasi topik. | pubsub.topics.get
pada topik yang diminta |
projects.topics.getIamPolicy
|
Mendapatkan kebijakan kontrol akses IAM untuk topik. | pubsub.topics.getIamPolicy
pada topik yang diminta |
projects.topics.list
|
Mencantumkan semua topik. | pubsub.topics.list
di project Cloud yang diminta |
projects.topics.patch
|
Memperbarui topik yang ada. | pubsub.topics.update
pada topik yang diminta |
projects.topics.publish
|
Menambahkan satu atau beberapa pesan ke topik. | pubsub.topics.publish
pada topik yang diminta |
projects.topics.setIamPolicy
|
Menetapkan kebijakan kontrol akses IAM untuk topik. | pubsub.topics.setIamPolicy
pada topik yang diminta |
projects.topics.testIamPermissions
|
Menampilkan izin yang dimiliki pemanggil pada resource yang ditentukan. | Tidak ada |
Izin yang diperlukan untuk langganan
Tabel berikut menguraikan izin yang diperlukan untuk setiap metode Pub/Sub API yang terkait dengan langganan. Halaman ini menunjukkan izin IAM yang diperlukan untuk memanggil setiap metode, beserta deskripsi tentang fungsi metode tersebut.
Metode | Deskripsi | Izin yang diperlukan |
---|---|---|
projects.subscriptions.acknowledge
|
Mengonfirmasi pesan yang terkait dengan ack_ids di AcknowledgeRequest. | pubsub.subscriptions.consume
pada langganan yang diminta |
projects.subscriptions.create
|
Membuat langganan ke topik tertentu. | pubsub.subscriptions.create
pada project Cloud yang berisi dan
pubsub.topics.attachSubscription pada topik yang diminta.
Untuk membuat Langganan S di Project A yang
dilampirkan ke Topik T di Project B, izin yang sesuai harus
diberikan di Project A dan di Topik T. Dalam hal ini, info identitas pengguna dapat dicatat dalam log audit Project B. |
projects.subscriptions.delete
|
Menghapus langganan yang ada. | pubsub.subscriptions.delete
pada langganan yang diminta |
projects.subscriptions.detach
|
Melepaskan langganan dari topik ini. | pubsub.subscriptions.detach
pada langganan |
projects.subscriptions.get
|
Mendapatkan detail konfigurasi langganan. | pubsub.subscriptions.get
pada langganan yang diminta |
projects.subscriptions.getIamPolicy
|
Mendapatkan kebijakan kontrol akses IAM untuk langganan. | pubsub.subscriptions.getIamPolicy
pada langganan yang diminta |
projects.subscriptions.list
|
Mencantumkan langganan yang cocok. | pubsub.subscriptions.list
di project Cloud yang diminta |
projects.subscriptions.modifyAckDeadline
|
Mengubah batas waktu konfirmasi untuk pesan tertentu. | pubsub.subscriptions.consume
pada langganan yang diminta |
projects.subscriptions.modifyPushConfig
|
Mengubah pushConfig untuk langganan yang ditentukan. | pubsub.subscriptions.update
pada langganan yang diminta |
projects.subscriptions.patch
|
Memperbarui langganan yang sudah ada. | pubsub.subscriptions.update
pada langganan yang diminta |
projects.subscriptions.pull
|
Mengambil pesan dari server. | pubsub.subscriptions.consume
pada langganan yang diminta |
projects.subscriptions.seek
|
Mencari langganan yang ada ke titik waktu atau snapshot. | pubsub.subscriptions.consume
pada langganan yang diminta dan pubsub.snapshots.seek
pada snapshot yang diminta, jika ada. |
projects.subscriptions.setIamPolicy
|
Menetapkan kebijakan kontrol akses IAM untuk langganan. | pubsub.subscriptions.setIamPolicy
pada langganan yang diminta |
projects.subscriptions.testIamPermissions
|
Menampilkan izin yang dimiliki pemanggil pada resource yang ditentukan. | Tidak ada |
Izin yang diperlukan untuk skema
Tabel berikut menguraikan izin yang diperlukan untuk setiap metode Pub/Sub API yang terkait dengan skema. Halaman ini menunjukkan izin IAM yang diperlukan untuk memanggil setiap metode, beserta deskripsi tentang fungsi metode tersebut.
Metode | Deskripsi | Izin yang diperlukan |
---|---|---|
projects.schemas.commit
|
Melakukan commit pada revisi skema baru. | pubsub.schemas.commit
pada skema yang diminta |
projects.schemas.create
|
Membuat skema. | pubsub.schemas.create
di project Cloud yang berisinya |
projects.schemas.delete
|
Menghapus skema. | pubsub.schemas.delete
pada skema yang diminta |
projects.schemas.deleteRevision
|
Menghapus revisi skema tertentu. | pubsub.schemas.delete
pada skema yang diminta |
projects.schemas.get
|
Mendapatkan skema. | pubsub.schemas.get
pada skema yang diminta |
projects.schemas.getIamPolicy
|
Mendapatkan kebijakan kontrol akses IAM untuk skema. | pubsub.schemas.getIamPolicy pada skema yang diminta |
projects.schemas.list
|
Mencantumkan skema dalam project. | pubsub.schemas.list
di project Cloud yang diminta |
projects.schemas.listRevisions
|
Mencantumkan semua revisi skema untuk skema yang diberi nama. | pubsub.schemas.listRevisions
pada skema yang diminta |
projects.schemas.rollback
|
Membuat revisi skema baru dari revisi sebelumnya. | pubsub.schemas.rollback
pada skema yang diminta |
projects.schemas.validate
|
Memvalidasi definisi skema. | pubsub.schemas.validate
di project Cloud yang berisinya |
projects.schemas.validateMessage
|
Memvalidasi pesan terhadap skema. | pubsub.schemas.validate
di project Cloud yang berisinya |
Izin yang diperlukan untuk snapshot
Tabel berikut menguraikan izin yang diperlukan untuk setiap metode Pub/Sub API yang terkait dengan snapshot. Halaman ini menunjukkan izin IAM yang diperlukan untuk memanggil setiap metode, beserta deskripsi tentang fungsi metode tersebut.
Metode REST | Deskripsi | Izin yang diperlukan |
---|---|---|
projects.snapshots.create
|
Membuat snapshot dari langganan yang diminta. | pubsub.snapshots.create
pada project Cloud yang berisi dan izin pubsub.subscriptions.consume
pada langganan sumber. |
projects.snapshots.delete
|
Menghapus snapshot yang ada. | pubsub.snapshots.delete
pada snapshot yang diminta |
projects.snapshots.getIamPolicy
|
Mendapatkan kebijakan kontrol akses IAM untuk snapshot. | pubsub.snapshots.getIamPolicy
pada snapshot yang diminta |
projects.snapshots.list
|
Mencantumkan snapshot yang ada. | pubsub.snapshots.list
di project Cloud yang diminta |
projects.snapshots.patch
|
Memperbarui snapshot yang ada. | pubsub.snapshots.update
pada snapshot yang diminta |
projects.snapshots.setIamPolicy
|
Menetapkan kebijakan kontrol akses IAM untuk snapshot. | pubsub.snapshots.setIamPolicy
pada snapshot yang diminta |
projects.snapshots.testIamPermissions
|
Menampilkan izin yang dimiliki pemanggil pada resource yang ditentukan. | Tidak ada |
Peran Pub/Sub yang tersedia
Tabel berikut mencantumkan semua peran Pub/Sub dan izin yang terkait dengan setiap peran:
Role | Permissions |
---|---|
Pub/Sub Admin( Provides full access to topics and subscriptions. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Editor( Provides access to modify topics and subscriptions, and access to publish and consume messages. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Publisher( Provides access to publish messages to a topic. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Subscriber( Provides access to consume messages from a subscription and to attach subscriptions to a topic. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Viewer( Provides access to view topics and subscriptions. Lowest-level resources where you can grant this role:
|
|
Mengontrol akses melalui konsol Google Cloud
Anda dapat menggunakan Konsol Google Cloud untuk mengelola kontrol akses ke topik dan project Anda.
Untuk menetapkan kontrol akses di tingkat project, ikuti langkah-langkah berikut:
Di Konsol Google Cloud, buka halaman IAM.
Pilih project Anda.
Klik
Add.Ketik satu atau beberapa nama utama.
Di daftar Select a role, pilih peran yang ingin Anda berikan.
Klik Simpan.
Pastikan akun utama tercantum dengan peran yang Anda berikan.
Untuk menetapkan kontrol akses untuk topik dan langganan, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka daftar Topik Pub/Sub.
Jika perlu, pilih project yang mengaktifkan Pub/Sub.
Lakukan salah satu langkah berikut:
Untuk menetapkan peran untuk satu atau beberapa topik, pilih topik tersebut.
Untuk menetapkan peran bagi langganan yang dilampirkan ke topik, klik ID topik. Di halaman Detail topik, klik ID langganan. Halaman Subscription details akan muncul.
Jika panel info disembunyikan, klik Tampilkan panel info.
Di tab Permissions, klik
Add principal.Ketik satu atau beberapa nama utama.
Di daftar Select a role, pilih peran yang ingin Anda berikan.
Klik Simpan.
Mengontrol akses melalui IAM API
Pub/Sub IAM API memungkinkan Anda menetapkan dan mendapatkan kebijakan pada topik dan langganan individual dalam project, serta menguji izin pengguna untuk resource tertentu. Seperti metode Pub/Sub reguler, Anda dapat memanggil metode IAM API melalui library klien, atau API Explorer, atau langsung melalui HTTP.
Perhatikan bahwa Anda tidak dapat menggunakan Pub/Sub IAM API untuk mengelola kebijakan di Google Cloud level project.
Bagian berikut memberikan contoh cara menetapkan dan mendapatkan kebijakan, serta cara menguji izin yang dimiliki pemanggil untuk resource tertentu.
Dapatkan polis
Metode getIamPolicy()
memungkinkan Anda mendapatkan kebijakan yang ada.
Metode ini menampilkan objek JSON yang berisi kebijakan yang terkait dengan resource.
Berikut adalah beberapa contoh kode untuk mendapatkan kebijakan untuk langganan:
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Pub/Sub.
gcloud
Dapatkan kebijakan langganan:
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
Output:
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.admin", "members": [ "user:user-1@gmail.com" ] }, { "role": "roles/pubsub.editor", "members": [ "serviceAccount:service-account-2@appspot.gserviceaccount.com", "user:user-3@gmail.com" } ] }
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Go API.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java API Pub/Sub.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Pub/Sub.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Python API.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Ruby API.
Berikut adalah beberapa contoh kode untuk mendapatkan kebijakan untuk suatu topik:C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Pub/Sub.
gcloud
Mendapatkan kebijakan topik
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json
Output:
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role":" roles/pubsub.viewer", "members": [ "user:user-1@gmail.com" ] } ] }
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Go API.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java API Pub/Sub.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Pub/Sub.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Python API.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Ruby API.
Menetapkan kebijakan
Metode setIamPolicy()
memungkinkan Anda melampirkan kebijakan
ke resource. Metode setIamPolicy()
menggunakan SetIamPolicyRequest
, yang
berisi kebijakan yang akan ditetapkan dan resource tempat kebijakan dilampirkan.
Fungsi ini menampilkan kebijakan yang dihasilkan.
Berikut adalah beberapa contoh kode untuk menetapkan kebijakan untuk langganan:
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Pub/Sub.
gcloud
1. Simpan kebijakan untuk langganan.
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json > subscription_policy.json
2. Buka subscription_policy.json
dan perbarui binding dengan memberikan peran yang sesuai kepada akun utama yang sesuai.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan file subscription_policy.json
, lihat
Kebijakan dalam dokumentasi IAM.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.admin", "members": [ "user:user-1@gmail.com" ] }, { "role": "roles/pubsub.editor", "members": [ "serviceAccount:service-account-2@appspot.gserviceaccount.com" } ] }
3. Terapkan kebijakan langganan baru.
gcloud pubsub subscriptions set-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ subscription_policy.json
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Go API.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java API Pub/Sub.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
PHP
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Python API.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Ruby API.
Berikut adalah beberapa contoh kode untuk menetapkan kebijakan untuk suatu topik:
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Pub/Sub.
gcloud
1. Simpan kebijakan untuk topik tersebut.
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json > topic_policy.json
2. Buka topic_policy.json
dan perbarui binding dengan memberikan peran yang sesuai kepada akun utama yang sesuai.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan file subscription_policy.json
, lihat
Kebijakan dalam dokumentasi IAM.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.editor", "members": [ "user:user-1@gmail.com", "user:user-2@gmail.com" ] } ] }
3. Terapkan kebijakan topik baru.
gcloud pubsub topics set-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ topic_policy.json
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Go API.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java API Pub/Sub.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
PHP
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Python API.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Ruby API.
Menguji izin
Anda dapat menggunakan metode testIamPermissions()
untuk memeriksa izin mana dari izin yang diberikan yang dapat ditambahkan atau dihapus untuk resource tertentu. Fungsi ini mengambil
nama resource dan kumpulan izin sebagai parameter, serta menampilkan subset
izin.
Berikut adalah beberapa contoh kode untuk menguji izin langganan:
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Pub/Sub.
gcloud
gcloud iam list-testable-permissions \ https://pubsub.googleapis.com/v1/projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
Output:
[ { "name": "pubsub.subscriptions.consume", "stage": "GA" }, { "name": "pubsub.subscriptions.delete", "stage": "GA" }, { "name": "pubsub.subscriptions.get", "stage": "GA" }, { "name": "pubsub.subscriptions.getIamPolicy", "stage": "GA" }, { "name": "pubsub.subscriptions.setIamPolicy", "stage": "GA" }, { "name": "pubsub.subscriptions.update", "stage": "GA" } ]
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Go API.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java API Pub/Sub.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Pub/Sub.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Python API.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Ruby API.
Berikut adalah beberapa contoh kode untuk menguji izin untuk topik:
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Pub/Sub.
gcloud
gcloud iam list-testable-permissions \ https://pubsub.googleapis.com/v1/projects/${PROJECT}/topics/${TOPIC} \ --format json
Output
[ { "name": "pubsub.topics.attachSubscription", "stage": "GA" }, { "name": "pubsub.topics.delete", "stage": "GA" }, { "name": "pubsub.topics.detachSubscription", "stage": "GA" }, { "name": "pubsub.topics.get", "stage": "GA" }, { "name": "pubsub.topics.getIamPolicy", "stage": "GA" }, { "name": "pubsub.topics.publish", "stage": "GA" }, { "name": "pubsub.topics.setIamPolicy", "stage": "GA" }, { "name": "pubsub.topics.update", "stage": "GA" } ]
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Go API.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java API Pub/Sub.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Pub/Sub.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Python API.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Ruby API.
Komunikasi lintas project
IAM Pub/Sub berguna untuk menyesuaikan akses dalam komunikasi lintas project.
Misalkan akun layanan di Project Cloud A ingin memublikasikan pesan ke topik di Project Cloud B. Pertama, aktifkan Pub/Sub API di Project A.
Kedua, berikan izin Edit ke akun layanan di Project Cloud B. Namun, pendekatan ini sering kali terlalu kasar. Anda dapat menggunakan IAM API untuk mencapai tingkat akses yang lebih terperinci.
Misalnya, cuplikan ini menggunakan metode setIamPolicy()
di project-b dan file topic_policy.json
yang telah disiapkan untuk memberikan peran penayang pada akun layanan foobar@
project-a.iam.gserviceaccount.com
dari project-a pada topik projects/
project-b/topics/
topic-b:
gcloud pubsub topics set-iam-policy \ projects/project-b/topics/topic-b \ topic_policy.json
Updated IAM policy for topic topic-b. bindings: - members: - serviceAccount:foobar@project-a.iam.gserviceaccount.com role: roles/pubsub.publisher etag: BwWGrQYX6R4=
Perilaku ketersediaan sebagian
Pemeriksaan otorisasi bergantung pada subsistem IAM. Untuk menawarkan latensi respons yang rendah secara konsisten untuk operasi data (publikasi dan konsumsi pesan), sistem dapat kembali menggunakan kebijakan IAM yang di-cache. Untuk mengetahui informasi tentang kapan perubahan Anda akan berlaku, lihat dokumentasi IAM.