Halaman ini menjelaskan cara memberikan peran Identity and Access Management (IAM) kepada akun utama di resource Secure Source Manager. Untuk mengetahui informasi tentang cara memberikan peran pada resource Google Cloud lain, lihat Mengelola akses ke project, folder, dan organisasi.
Instance dan repositori Secure Source Manager memiliki perannya sendiri. Saat pertama kali memberikan peran instance dalam project, Anda harus menggunakan alat gcloud CLI atau REST API. Anda dapat memberikan peran repositori dengan alat gcloud CLI, REST API, atau melalui antarmuka web Secure Source Manager.
Setelah Anda memberikan peran Secure Source Manager menggunakan gcloud CLI, antarmuka web, atau REST API, peran tersebut akan terlihat untuk project Anda di konsol Google Cloud .
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk memperbarui kebijakan IAM pada instance atau repositori, minta administrator Anda untuk memberi Anda peran IAM berikut:
-
Berikan peran IAM instance:
Secure Source Manager Instance Owner (
roles/securesourcemanager.instanceOwner
) di instance Secure Source Manager -
Memberikan peran IAM repositori:
Admin Repo Secure Source Manager (
roles/securesourcemanager.repoAdmin
) di repositori
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran kustom atau peran yang telah ditentukan lainnya.
Untuk mengetahui informasi tentang cara memberikan peran Secure Source Manager, lihat Kontrol akses dengan IAM dan Memberikan akses instance kepada pengguna.
Menentukan akun utama
Akun utama mewakili identitas yang dapat mengakses resource. Setiap akun utama memiliki ID-nya sendiri. ID utama memiliki bentuk berikut:
PRINCIPAL-TYPE:ID
Misalnya, user:my-user@example.com
. Untuk mengetahui informasi selengkapnya tentang akun utama, baca Cara kerja IAM.
Untuk jenis akun utama user
, nama domain dalam ID harus berupa
domain Google Workspace atau domain Cloud Identity, kecuali jika Anda menggunakan
Federasi Identitas Tenaga Kerja. Untuk mempelajari cara menyiapkan domain Cloud Identity, lihat
ringkasan Cloud Identity.
Principal Workforce Identity Federation
Jika Anda menggunakan Workforce Identity Federation untuk mengakses Secure Source Manager, maka principal akan direpresentasikan secara berbeda. Untuk mempelajari lebih lanjut cara memberikan akses ke principal yang merepresentasikan grup identitas, lihat Merepresentasikan pengguna workforce pool dalam kebijakan IAM.
Misalnya, perintah berikut memberikan peran Instance Accessor (roles/securesourcemanager.instanceAccessor
) kepada pengguna user@example.com
di kumpulan tenaga kerja my-pool
pada instance my-instance
di project my-project
di region us-central1
:
gcloud beta source-manager instances add-iam-policy-binding my-instance \
--project=my-project \
--region=us-central1 \
--member=principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com \
--role=roles/securesourcemanager.instanceAccessor
Anda dapat memberikan akses kepada pengguna atau grup dalam workforce identity pool berdasarkan atribut Penyedia identitas (IdP), atau menggunakan Common Expression Language (CEL) untuk memetakan atribut OIDC ke atribut kustom guna menentukan strategi otorisasi dalam kebijakan IAM. Untuk mengetahui informasi selengkapnya tentang pemetaan atribut, baca artikel Pemetaan atribut.
Memberi atau mencabut peran instance
Untuk memberikan atau mencabut peran instance, gunakan pola baca-ubah-tulis untuk memperbarui kebijakan izin resource:
- Baca kebijakan izin saat ini dengan memanggil
getIamPolicy()
. - Edit kebijakan izin, baik dengan menggunakan editor teks, atau secara terprogram, untuk menambahkan atau menghapus akun utama atau binding peran.
- Tulis kebijakan izin yang diperbarui dengan memanggil
setIamPolicy()
.
gcloud
Untuk membaca kebijakan izin saat ini dan menyimpannya ke
/tmp/instances.json
, jalankan perintah berikut:gcloud beta source-manager instances get-iam-policy INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --format=json > /tmp/instance.json
Ganti kode berikut:
INSTANCE_ID
dengan ID instance.PROJECT_ID
dengan project ID atau nomor project instance.REGION
dengan region tempat instance berada. Lihat dokumentasi lokasi untuk mengetahui region Secure Source Manager yang tersedia.
Output akan menyertakan binding yang ada, atau, jika tidak ada, nilai
etag
yang mirip dengan berikut ini:{ "etag": "BwUjHYKJUiQ=" }
Secara terprogram atau menggunakan editor teks, ubah salinan lokal kebijakan izin instance Anda untuk mencerminkan peran yang ingin diberikan atau dicabut.
Untuk memastikan Anda tidak menimpa perubahan lain, jangan mengedit atau menghapus kolom kebijakan izin
etag
. Kolometag
mengidentifikasi status saat ini dari kebijakan izin. Saat Anda menetapkan kebijakan izin yang diperbarui, IAM akan membandingkan nilaietag
dalam permintaan denganetag
yang sudah ada, dan hanya menulis kebijakan izin jika nilainya cocok.Untuk mengedit peran yang diberikan oleh kebijakan izin, Anda perlu mengedit binding peran dalam kebijakan izin. Binding peran memiliki format berikut:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }
Placeholder memiliki nilai berikut:
ROLE_NAME
: Nama peran yang ingin Anda berikan. Gunakan format berikut:roles/securesourcemanager.IDENTIFIER
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: ID untuk akun utama yang ingin Anda berikan peran.
Misalnya, kebijakan berikut memberikan peran
instanceOwner
kepadauser1@gmail.com
, dan peraninstanceManager
kepada penggunauser2@gmail.com
,user3@gmail.com
, dan akun layananmy-other-app@
.{ "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.instanceOwner", "members": [ "user:user1@gmail.com" ] }, { "role": "roles/resourcemanager.instanceManager", "members": [ "user:user2@gmail.com", "user:user3@gmail.com", "serviceAccount:my-other-app@" ] } ] }
Setelah Anda mengubah kebijakan izinkan tersimpan untuk memberikan dan mencabut peran yang dipilih, perbarui kebijakan izinkan instance Anda dengan menjalankan perintah berikut:
gcloud beta source-manager instances set-iam-policy INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ /tmp/instance.json
Ganti kode berikut:
INSTANCE_ID
dengan ID instance.PROJECT_ID
dengan project ID atau nomor project instance.REGION
dengan region tempat instance berada. Lihat dokumentasi lokasi untuk mengetahui region Secure Source Manager yang tersedia.
API
Jalankan perintah
instances.getIamPolicy
berikut untuk membaca kebijakan saat ini:curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID:getIamPolicy > /tmp/instance.json
Ganti kode berikut:
PROJECT_ID
ID project atau nomor project instance.REGION
region tempat instance berada. Lihat dokumentasi lokasi untuk mengetahui region Secure Source Manager yang tersedia.INSTANCE_ID
ID instance.
Output akan menyertakan binding yang ada, atau, jika tidak ada, nilai
etag
yang mirip dengan berikut ini:{ "etag": "BwUjHYKJUiQ=" }
Secara terprogram atau menggunakan editor teks, ubah salinan lokal kebijakan izin instance Anda untuk mencerminkan peran yang ingin diberikan atau dicabut.
Untuk memastikan Anda tidak menimpa perubahan lain, jangan mengedit atau menghapus kolom kebijakan izin
etag
. Kolometag
mengidentifikasi status saat ini dari kebijakan izin. Saat Anda menetapkan kebijakan izin yang diperbarui, IAM akan membandingkan nilaietag
dalam permintaan denganetag
yang ada, dan hanya menulis kebijakan izin jika nilainya cocok.Untuk mengedit peran yang diberikan oleh kebijakan izin, Anda perlu mengedit binding peran dalam kebijakan izin. Binding peran memiliki format berikut:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }
Placeholder memiliki nilai berikut:
ROLE_NAME
: Nama peran yang ingin Anda berikan. Gunakan format berikut:roles/securesourcemanager.IDENTIFIER
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: ID untuk akun utama yang ingin Anda berikan peran.
Misalnya, kebijakan berikut memberikan peran
instanceOwner
kepadauser1@gmail.com
, dan peraninstanceManager
kepada penggunauser2@gmail.com
,user3@gmail.com
, dan akun layananmy-other-app@
.{ "policy": { "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.instanceOwner", "members": [ "user:user1@gmail.com" ] }, { "role": "roles/resourcemanager.instanceManager", "members": [ "user:user2@gmail.com", "user:user3@gmail.com", "serviceAccount:my-other-app@" ] } ] } }
Setelah Anda mengubah kebijakan izinkan untuk memberikan dan mencabut peran yang dipilih, panggil
instances.setIamPolicy()
untuk melakukan perubahan.Gunakan perintah
instances.setIamPolicy
berikut untuk menetapkan kebijakan baru pada instance.curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID:setIamPolicy \ -d @/tmp/instance.json
Ganti kode berikut:
PROJECT_ID
ID project atau nomor project instance.REGION
region tempat instance berada. Lihat dokumentasi lokasi untuk mengetahui region Secure Source Manager yang tersedia.INSTANCE_ID
ID instance.
Memberi atau mencabut peran repositori
Untuk memberikan atau mencabut peran repositori kepada pengguna dan akun layanan, Anda dapat menetapkannya dari antarmuka web Secure Source Manager, atau menggunakan Secure Source Manager API untuk memperbarui kebijakan izin repositori. Untuk memberikan peran repositori grup, Anda harus menggunakan Secure Source Manager API.
Pengguna harus diberi peran instance sebelum mereka dapat diberi peran repositori. Untuk mengetahui informasi tentang cara memberikan peran instance, lihat Memberikan atau mencabut peran instance.
Antarmuka web
Untuk memberikan peran tingkat repositori kepada pengguna atau akun layanan menggunakan antarmuka web:
- Buka URL instance yang diberikan oleh kontak Google Anda.
- Dari halaman Repositori saya, pilih repositori Anda.
- Klik tab Izin.
- Di bagian Orang dan izin, klik Tambahkan pengguna.
- Di kolom Add principal, masukkan email pengguna atau akun layanan yang ingin Anda beri peran.
- Di menu Tetapkan peran, pilih peran yang akan ditetapkan.
- Klik Simpan.
Untuk menambahkan peran tambahan, klik ikon edit Edit, lalu tambahkan peran menggunakan menu Tetapkan peran.
API
Metode Secure Source Manager API repositories.getIamPolicy
mendapatkan kebijakan izin repositori.
- Jalankan perintah
repositories.getIamPolicy
berikut untuk membaca kebijakan saat ini dan menyimpannya ke/tmp/repository.json
:
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://securesourcemanager.googleapis.com/v1/projects/REPOSITORY_PROJECT/locations/REGION/repositories/REPOSITORY_ID:getIamPolicy > /tmp/repository.json
Ganti kode berikut:
REPOSITORY_PROJECT
ID project atau nomor project repositori.REGION
region tempat repositori berada.REPOSITORY_ID
: ID repositori.
Output akan menyertakan binding yang ada, atau, jika tidak ada, nilai etag
yang mirip dengan berikut ini:
{
"etag": "BwUjHYKJUiQ="
}
Secara terprogram atau menggunakan editor teks, ubah salinan lokal kebijakan izin repositori Anda yang disimpan di
/tmp/repository.json
untuk mencerminkan peran yang ingin Anda berikan atau cabut.Untuk memastikan Anda tidak menimpa perubahan lain, jangan mengedit atau menghapus kolom kebijakan izin
etag
. Kolometag
mengidentifikasi status saat ini dari kebijakan izin. Saat Anda menetapkan kebijakan izin yang diperbarui, IAM akan membandingkan nilaietag
dalam permintaan denganetag
yang ada, dan hanya menulis kebijakan izin jika nilainya cocok.Untuk mengedit peran yang diberikan oleh kebijakan izin, Anda perlu mengedit binding peran dalam kebijakan izin. Binding peran memiliki format berikut:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ] }
Placeholder memiliki nilai berikut:
ROLE_NAME
: Nama peran yang ingin Anda berikan. Gunakan format berikut:roles/securesourcemanager.<var>IDENTIFIER</var>
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: ID untuk akun utama yang ingin Anda berikan peran.
Contoh berikut memberikan peran
repoAdmin
kepada penggunaemail1@gmail.com
, dan peranrepoWriter
kepada penggunaemail2@gmail.com
,group1@gmail.com
, dan akun layananmy-other-app@
.{ "policy": { "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.repoAdmin", "members": [ "user:email1@gmail.com" ] }, { "role": "roles/resourcemanager.repoWriter", "members": [ "user:email2@gmail.com", "group:group1@gmail.com", "serviceAccount:my-other-app@" ] } ] } }
Simpan file
/tmp/repository.json
yang telah diedit.Tetapkan kebijakan baru dengan perintah
setIamPolicy
:curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/REPOSITORY_PROJECT/locations/REGION/repositories/REPOSITORY_ID:setIamPolicy \ -d @/tmp/repository.json
Ganti kode berikut:
REPOSITORY_PROJECT
ID project atau nomor project repositori.REGION
region tempat repositori berada. Lihat dokumentasi lokasi untuk mengetahui region Secure Source Manager yang tersedia.REPOSITORY_ID
: ID repositori.
Langkah berikutnya
- Pelajari lebih lanjut kontrol akses dengan IAM di Secure Source Manager.