Service Management API menggunakan Identity and Access Management (Cloud IAM) untuk mengontrol akses ke layanan terkelola dan resource turunannya. Halaman ini menjelaskan resource, peran, dan izin IAM yang disediakan oleh Service Management API, serta cara menggunakannya untuk mengontrol akses.
Resource IAM
IAM menerapkan kebijakan IAM pada resource untuk mengontrol siapa yang dapat melakukan tindakan tertentu pada resource. Service Management API menggunakan resource berikut untuk menyediakan fungsinya:
Anda memerlukan izin yang berbeda untuk menggunakan dan mengelola resource yang berbeda, lihat bagian berikut untuk mengetahui detailnya.
Izin IAM
Panggilan ke Service Management API mengharuskan pemanggil memiliki izin IAM yang diperlukan pada resource target.
Tabel berikut mencantumkan izin yang berlaku untuk layanan:
Izin | Deskripsi |
---|---|
servicemanagement.services.delete |
Menghapus layanan. |
servicemanagement.services.get |
Membaca layanan. |
servicemanagement.services.create |
Membuat layanan baru dalam project. |
servicemanagement.services.list |
Mencantumkan layanan dalam project. |
servicemanagement.services.update |
Memperbarui layanan. |
servicemanagement.services.bind |
Melihat dan mengaktifkan layanan di project yang dikontrol pemanggil. |
servicemanagement.services.setIamPolicy |
Menetapkan kebijakan akses IAM untuk layanan. |
servicemanagement.services.getIamPolicy |
Membaca kebijakan akses IAM untuk layanan. |
servicemanagement.services.check |
Periksa status konsumen layanan. Lihat services.check |
servicemanagement.services.quota |
Mengalokasikan kuota untuk konsumen layanan. Lihat services.allocateQuota |
servicemanagement.services.report |
Melaporkan penggunaan layanan. Lihat services.report |
Tabel berikut menunjukkan izin yang diperlukan untuk setiap metode Service Management API, jika berlaku. Informasi ini juga didokumentasikan dalam Referensi API:
Metode | Izin yang Diperlukan |
---|---|
services.delete |
servicemanagement.services.delete pada service_name yang ditentukan. |
services.get |
servicemanagement.services.get pada service_name yang ditentukan. |
services.getConfig |
servicemanagement.services.get pada service_name yang ditentukan. |
services.undelete |
servicemanagement.services.delete pada service_name yang ditentukan. |
services.configs.create |
servicemanagement.services.update pada service_name yang ditentukan. |
services.configs.get |
servicemanagement.services.get pada service_name yang ditentukan. |
services.configs.list |
servicemanagement.services.get pada service_name yang ditentukan. |
services.configs.submit |
servicemanagement.services.update pada service_name yang ditentukan. |
services.rollouts.create |
servicemanagement.services.update pada service_name yang ditentukan. |
services.rollouts.get |
servicemanagement.services.get pada service_name yang ditentukan. |
services.rollouts.list |
servicemanagement.services.get pada service_name yang ditentukan. |
Peran IAM
Dengan Pengelolaan Akses dan Identitas, izin diberikan dengan mengikat pengguna ke peran. Lihat Memahami Peran untuk mengetahui detailnya.
Tabel berikut mencantumkan peran yang berlaku untuk layanan:
Peran | Izin |
---|---|
roles/viewer |
servicemanagement.services.get servicemanagement.services.list |
roles/editor |
Semua izin roles/viewer , ditambahservicemanagement.services.bind servicemanagement.services.check servicemanagement.services.create servicemanagement.services.delete servicemanagement.services.quota servicemanagement.services.report servicemanagement.services.update |
roles/owner |
Semua izin roles/editor , ditambahservicemanagement.services.getIamPolicy servicemanagement.services.setIamPolicy |
roles/servicemanagement.admin |
monitoring.timeSeries.list resourcemanager.folders.get resourcemanager.folders.list resourcemanager.organizations.get resourcemanager.projects.get resourcemanager.projects.list serviceconsumermanagement.consumers.get serviceconsumermanagement.quota.get serviceconsumermanagement.quota.update serviceconsumermanagement.tenancyu.addResource serviceconsumermanagement.tenancyu.create serviceconsumermanagement.tenancyu.delete serviceconsumermanagement.tenancyu.list serviceconsumermanagement.tenancyu.removeResource servicemanagement.services.bind servicemanagement.services.check servicemanagement.services.create servicemanagement.services.delete servicemanagement.services.get servicemanagement.services.getIamPolicy servicemanagement.services.list servicemanagement.services.quota servicemanagement.services.report servicemanagement.services.setIamPolicy servicemanagement.services.update serviceusage.quotas.get serviceusage.services.get |
roles/servicemanagement.configEditor |
servicemanagement.services.get servicemanagement.services.update |
roles/servicemanagement.reporter |
servicemanagement.services.report |
roles/servicemanagement.serviceConsumer |
servicemanagement.services.bind |
roles/servicemanagement.serviceController |
servicemanagement.services.check servicemanagement.services.get servicemanagement.services.quota servicemanagement.services.report |
Mengelola kebijakan
IAM mengevaluasi kebijakan secara hierarkis: resource turunan selalu mewarisi kebijakan induknya. Untuk Service Management API, setiap layanan terkelola adalah resource turunan dari project produsen layanannya. Oleh karena itu, peran yang diberikan pada project produsen layanan berlaku untuk semua layanan terkelola yang termasuk dalam project tersebut. Lihat Mengelola Kebijakan untuk mengetahui petunjuk pemberian peran di tingkat project.
Anda juga dapat mengelola kebijakan IAM untuk setiap layanan. Bagian berikut menjelaskan cara mengelola peran tingkat layanan menggunakan konsol Google Cloud, Service Management API, dan Google Cloud CLI.
Mengelola akses menggunakan Konsol Google Cloud
Buka halaman Endpoints di konsol Google Cloud.
- Klik layanan yang aksesnya ingin Anda kelola.
- Klik link "PERMISSIONS" di bagian atas halaman. Tindakan ini akan mengaktifkan dan menonaktifkan panel info.
- Dari panel info, Anda dapat melihat daftar anggota saat ini, menambahkan anggota baru, dan menghapus anggota, untuk peran tingkat layanan apa pun.
Mengelola akses menggunakan gcloud CLI
gcloud CLI menyertakan perintah gcloud endpoints services
untuk mengelola kebijakan IAM untuk layanan terkelola:
endpoints services get-iam-policy
- Menampilkan kebijakan IAM layanan.
endpoints services check-iam-policy
- Periksa kebijakan IAM layanan.
endpoints services add-iam-policy-binding
- Menambahkan anggota ke peran.
endpoints services remove-iam-policy-binding
- Menghapus anggota dari peran.
Contoh:
# Show the IAM policy of service "endpointsapis.appspot.com".
gcloud endpoints services get-iam-policy endpointsapis.appspot.com
# The above command may produce an output similar to this:
bindings:
- members:
- user:email1@gmail.com
- group:group1@googlegroups.com
role: roles/servicemanagement.serviceConsumer
# Add a user to "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services add-iam-policy-binding endpointsapis.appspot.com --member "user:email1@gmail.com" --role "roles/servicemanagement.serviceConsumer"
# Add a group to "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services add-iam-policy-binding endpointsapis.appspot.com --member "group:group1@googlegroups.com" --role "roles/servicemanagement.serviceConsumer"
# Remove a user from "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services remove-iam-policy-binding endpointsapis.appspot.com --member "user:email1@gmail.com" --role "roles/servicemanagement.serviceConsumer"
# Remove a group from "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services remove-iam-policy-binding endpointsapis.appspot.com --member "group:group1@googlegroups.com" --role "roles/servicemanagement.serviceConsumer"
Mengelola akses menggunakan Service Management API
Service Management API mencakup
IAM Policy API
untuk mengelola kebijakan tingkat layanan dan tingkat konsumen. Anda dapat menggunakan perintah gcurl
untuk bereksperimen dengan metode API.
Lihat Memulai untuk mengetahui langkah-langkah penyiapan awal.
Contoh:
# View the current IAM policy on service "endpointsapis.appspot.com".
gcurl -d '{}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com:getIamPolicy
# View the current IAM policy on service "endpointsapis.appspot.com" and consumer "12345".
gcurl -d '{}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com/consumers/12345:getIamPolicy