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 konsolGoogle Cloud atau IAM API.
Di Pub/Sub, kontrol akses dapat dikonfigurasi di level project dan di level resource individual. Berikut beberapa contoh penggunaan kontrol akses Pub/Sub:
Memberikan akses berdasarkan per resource, bukan untuk seluruh project Cloud.
Memberikan akses dengan kemampuan terbatas, seperti hanya memublikasikan pesan ke topik, atau hanya menggunakan pesan dari langganan, tetapi tidak menghapus topik atau langganan.
Memberikan akses ke semua resource Pub/Sub dalam project kepada sekelompok developer.
Jika Anda memiliki akses hanya lihat ke satu resource seperti topik atau langganan, Anda tidak dapat melihat resource 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
Mirip dengan produk Google Cloud lainnya, Pub/Sub mendukung tiga jenis peran:
Peran dasar: Peran dasar adalah peran yang sangat permisif yang sudah 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 mengetahui 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. Bagian 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 tertentu dengan nama tertentu. | pubsub.topics.create
di project Cloud yang berisi |
projects.topics.delete
|
Menghapus topik dengan nama tertentu. | 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 tertentu. | Tidak ada |
Izin yang diperlukan untuk langganan
Tabel berikut menguraikan izin yang diperlukan untuk setiap metode Pub/Sub API yang terkait dengan langganan. Bagian ini menunjukkan izin IAM yang diperlukan untuk memanggil setiap metode, beserta deskripsi fungsi metode tersebut.
Metode | Deskripsi | Izin yang diperlukan |
---|---|---|
projects.subscriptions.acknowledge
|
Mengonfirmasi pesan yang terkait dengan ack_ids dalam AcknowledgeRequest. | pubsub.subscriptions.consume
pada langganan yang diminta |
projects.subscriptions.create
|
Membuat langganan ke topik tertentu. | pubsub.subscriptions.create
di project Cloud yang berisi dan
pubsub.topics.attachSubscription di 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 tertentu. | 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 tertentu. | Tidak ada |
Izin yang diperlukan untuk skema
Tabel berikut menguraikan izin yang diperlukan untuk setiap metode Pub/Sub API yang terkait dengan skema. Bagian ini menunjukkan izin IAM yang diperlukan untuk memanggil setiap metode, beserta deskripsi fungsi metode tersebut.
Metode | Deskripsi | Izin yang diperlukan |
---|---|---|
projects.schemas.commit
|
Meng-commit revisi skema baru. | pubsub.schemas.commit
pada skema yang diminta |
projects.schemas.create
|
Membuat skema. | pubsub.schemas.create
di project Cloud yang berisi |
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 bernama. | 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 berisi |
projects.schemas.validateMessage
|
Memvalidasi pesan terhadap skema. | pubsub.schemas.validate
di project Cloud yang berisi |
Izin yang diperlukan untuk mengambil foto
Tabel berikut menguraikan izin yang diperlukan untuk setiap metode Pub/Sub API yang terkait dengan snapshot. Bagian ini menunjukkan izin IAM yang diperlukan untuk memanggil setiap metode, beserta deskripsi 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 tertentu. | 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:
|
|
Cloud Pub/Sub Service Agent( Grants Cloud Pub/Sub Service Account access to manage resources. |
|
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 prinsipal.
Di daftar Pilih peran, pilih peran yang ingin Anda berikan.
Klik Simpan.
Pastikan akun utama tercantum dengan peran yang Anda berikan.
Untuk menyetel kontrol akses untuk topik dan langganan, ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka daftar Topics Pub/Sub.
Jika perlu, pilih project yang mendukung Pub/Sub.
Lakukan salah satu langkah berikut:
Untuk menetapkan peran bagi satu atau beberapa topik, pilih topik.
Untuk menetapkan peran untuk langganan yang dilampirkan ke topik, klik ID topik. Di halaman Topic details, 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 prinsipal.
Di daftar Pilih peran, pilih peran yang ingin Anda berikan.
Klik Simpan.
Mengontrol akses melalui IAM API
Pub/Sub IAM API memungkinkan Anda menetapkan dan mendapatkan kebijakan pada setiap topik dan langganan dalam project, serta menguji izin pengguna untuk resource tertentu. Seperti metode Pub/Sub biasa, 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 tingkat project. Google Cloud
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 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
Mendapatkan 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 Pub/Sub Java API.
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 API Ruby Pub/Sub.
Berikut adalah 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 Pub/Sub Java API.
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 API Ruby Pub/Sub.
Menetapkan kebijakan
Metode setIamPolicy()
memungkinkan Anda melampirkan kebijakan
ke resource. Metode setIamPolicy()
mengambil 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 bekerja dengan 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. Menerapkan 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 Pub/Sub Java API.
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 API Ruby Pub/Sub.
Berikut adalah contoh kode untuk menetapkan kebijakan 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
1. Simpan kebijakan untuk topik.
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 bekerja dengan 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 Pub/Sub Java API.
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 API Ruby Pub/Sub.
Menguji izin
Anda dapat menggunakan metode testIamPermissions()
untuk memeriksa izin tertentu yang dapat ditambahkan atau dihapus untuk resource tertentu. Fungsi ini mengambil
nama resource dan sekumpulan izin sebagai parameter, serta menampilkan subset
izin.
Berikut adalah contoh kode untuk menguji izin 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
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 Pub/Sub Java API.
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 API Ruby Pub/Sub.
Berikut adalah 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 Pub/Sub Java API.
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 API Ruby Pub/Sub.
Komunikasi lintas project
IAM Pub/Sub berguna untuk menyesuaikan akses dalam komunikasi lintas project.
Misalkan akun layanan di Cloud Project A ingin memublikasikan pesan ke topik di Cloud Project B. Pertama, aktifkan Pub/Sub API di Project A.
Kedua, berikan izin Edit akun layanan di Project Cloud B. Namun, pendekatan ini sering kali terlalu kasar. Anda dapat menggunakan IAM API untuk mendapatkan tingkat akses yang lebih mendetail.
Misalnya, cuplikan ini menggunakan metode setIamPolicy()
di project-b dan file topic_policy.json
yang telah disiapkan untuk memberikan foobar@
project-a.iam.gserviceaccount.com
project-a peran publisher pada topik projects/
project-b/topics/
topic-b kepada akun layanan:
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 (penerbitan dan konsumsi pesan), sistem dapat melakukan penggantian ke kebijakan IAM yang di-cache. Untuk mengetahui informasi tentang kapan perubahan Anda akan berlaku, lihat dokumentasi IAM.
Langkah Berikutnya
- Jika Anda mengalami masalah saat mengakses atau mengautentikasi resource Pub/Sub, lihat Pemecahan masalah umum.