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, dan cara menggunakannya untuk mengontrol akses.
Resource IAM
IAM menerapkan kebijakan IAM pada resource untuk mengontrol siapa yang dapat melakukan tindakan apa pada resource. Service Management API menggunakan resource berikut untuk menyediakan fungsinya:
Anda akan memerlukan izin yang berbeda untuk menggunakan dan mengelola resource yang berbeda. Lihat bagian berikut untuk 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 |
Hapus 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 pada 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 |
Laporkan 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 Identity and Access Management, izin diberikan dengan mengikat pengguna ke peran. Lihat Memahami Peran untuk 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.folders.list resourcemanager.organizations.get resourcemanager.projects.get resourcemanager.projects.list serviceconsumermanagement.consumers.get serviceconsumermanagement.quota.get serviceconsumermanagement.quota.folders.list serviceconsumermanagement.tenancyu.addResource.servicemanagementmanagement.tenancy. |
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 pembuat layanannya. Oleh karena itu, peran yang diberikan pada project produsen layanan berlaku untuk semua layanan terkelola yang termasuk dalam project tersebut. Baca bagian Mengelola Kebijakan untuk mengetahui petunjuk mengenai cara memberikan peran di level project.
Anda juga dapat mengelola kebijakan IAM untuk setiap layanan. Bagian berikut menjelaskan cara mengelola peran tingkat layanan menggunakan Google Cloud Console, Service Management API, dan Google Cloud CLI.
Mengelola akses menggunakan Konsol Google Cloud
Buka halaman Endpoint di konsol Google Cloud.
- Klik layanan yang ingin Anda kelola aksesnya.
- 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 mencakup perintah gcloud endpoints services
guna 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 menyertakan IAM Policy API untuk mengelola kebijakan tingkat layanan dan tingkat konsumen. Anda dapat menggunakan perintah gcurl
untuk bereksperimen dengan metode API.
Lihat Memulai untuk 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