Kontrol akses dengan IAM
Halaman ini menjelaskan peran IAM untuk Certificate Authority Service.
CA Service menggunakan peran Identity and Access Management (IAM) untuk kontrol akses. Dengan IAM, Anda mengontrol akses dengan menentukan siapa (identitas) yang memiliki akses (peran) apa untuk resource mana. Peran IAM berisi sekumpulan izin yang memungkinkan pengguna melakukan tindakan tertentu pada Google Cloud resource. Dengan mengikuti prinsip hak istimewa terendah saat memberikan peran IAM, Anda dapat melindungi integritas resource Certificate Authority Service dan mengelola keamanan kumpulan CA, serta infrastruktur kunci publik (PKI) secara keseluruhan.
Untuk mempelajari cara menetapkan peran IAM ke akun pengguna atau layanan, baca Memberikan, mengubah, dan mencabut akses ke resource dalam dokumentasi IAM.
Peran yang telah ditetapkan
Tabel berikut mencantumkan peran IAM yang telah ditetapkan dan izin yang terkait dengan setiap peran:
| Peran | Izin | Deskripsi |
|---|---|---|
CA Service Auditorroles/privateca.auditor |
privateca.caPools.getprivateca.caPools.getIamPolicyprivateca.caPools.listprivateca.certificateAuthorities.listprivateca.certificateAuthorities.getprivateca.certificateTemplates.getprivateca.certificateTemplates.getIamPolicyprivateca.certificateTemplates.listprivateca.certificates.listprivateca.certificates.getprivateca.locations.getprivateca.locations.listprivateca.operations.getprivateca.operations.listprivateca.certificateRevocationLists.listprivateca.certificateRevocationLists.getprivateca.certificateRevocationLists.getIamPolicyresourcemanager.projects.getresourcemanager.projects.list
|
Peran CA Service Auditor memiliki akses baca saja ke semua resource CA Service, dan dapat mengambil serta mencantumkan properti kumpulan CA, CA, sertifikat, daftar pencabutan, kebijakan IAM, dan project. Sebaiknya tetapkan peran ini kepada individu yang bertanggung jawab untuk memvalidasi keamanan dan operasi kumpulan CA, dan tidak memiliki tanggung jawab harian yang ditetapkan untuk mengelola layanan. |
CA Service Certificate Requesterroles/privateca.certificateRequester |
privateca.certificates.create
|
Peran CA Service Certificate Requester dapat mengirimkan permintaan sertifikat ke kumpulan CA. Sebaiknya berikan peran ini kepada individu tepercaya yang diizinkan untuk meminta sertifikat. Pengguna dengan peran ini dapat meminta sertifikat arbitrer yang tunduk pada kebijakan penerbitan. Tidak seperti peran CA Service Certificate Manager, peran ini tidak memungkinkan pengguna mendapatkan atau mencantumkan sertifikat yang baru diterbitkan, atau mendapatkan informasi apa pun tentang kumpulan CA. |
CA Service Workload Certificate Requesterroles/privateca.workloadCertificateRequester |
privateca.certificates.createForSelf
|
CA Service Workload Certificate Requester dapat meminta sertifikat dari CA Service dengan identitas pemanggil. |
CA Service Certificate Managerroles/privateca.certificateManager |
Semua izin dari roles/privateca.auditor, ditambah:privateca.certificates.create
|
CA Service Certificate Manager dapat mengirimkan permintaan penerbitan sertifikat ke kumpulan CA seperti CA Service Certificate Requester. Selain itu, peran ini juga mewarisi izin peran CA Service Auditor. Sebaiknya tetapkan peran ini kepada individu yang bertanggung jawab untuk membuat, melacak, dan meninjau permintaan sertifikat di kumpulan CA, seperti pengelola atau teknisi utama. |
CA Service Certificate Template Userroles/privateca.templateUser |
privateca.certificateTemplates.getprivateca.certificateTemplates.listprivateca.certificateTemplates.use
|
CA Service Certificate Template User dapat membaca, mencantumkan, dan menggunakan template sertifikat. |
CA Service Operation Managerroles/privateca.caManager |
Semua izin dari roles/privateca.auditor, ditambah:privateca.certificates.updateprivateca.caPools.createprivateca.caPools.deleteprivateca.caPools.updateprivateca.certificateAuthorities.createprivateca.certificateAuthorities.deleteprivateca.certificateAuthorities.updateprivateca.certificateRevocationLists.updateprivateca.certificateTemplates.createprivateca.certificateTemplates.deleteprivateca.certificateTemplates.updateprivateca.certificates.updateprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
CA Service Operation Manager dapat membuat, memperbarui, dan menghapus kumpulan CA dan CA. Peran ini juga dapat mencabut sertifikat dan membuat bucket Cloud Storage. Peran ini juga mencakup kemampuan yang sama dengan CA Service Auditor. Dalam peran ini, individu bertanggung jawab untuk mengonfigurasi dan men-deploy kumpulan CA di organisasi, serta mengonfigurasi kebijakan penerbitan kumpulan CA. Peran ini tidak mengizinkan pembuatan sertifikat. Untuk melakukannya, gunakan peran CA Service Certificate Requester, CA Service Certificate Manager, atau CA Service Admin. |
CA Service Pool Readerroles/privateca.poolReader |
privateca.caPools.get |
Pengguna dengan peran CA Service Pool Reader dapat membaca kumpulan CA di CA Service. |
CA Service Adminroles/privateca.admin |
Semua izin dari roles/privateca.certificateManager,
dan roles/privateca.caManager, ditambah:privateca.*.setIamPolicyprivateca.caPools.useprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
Peran CA Service Admin mewarisi izin dari peran CA Service Operation Manager dan CA Service Certificate Manager. Peran ini dapat melakukan semua tindakan dalam CA Service. CA Service Admin dapat menetapkan kebijakan IAM untuk kumpulan CA dan membuat bucket Cloud Storage. Sebaiknya jangan terlalu sering menetapkan peran ini setelah layanan dibuat. Dalam peran ini, individu dapat melakukan semua aspek administrasi, termasuk menetapkan hak kepada orang lain dan mengelola permintaan sertifikat di CA Service. Sebaiknya terapkan kontrol dan akses khusus ke akun peran ini untuk mencegah akses atau penggunaan yang tidak sah. |
Peran CA Service Service Agent
Saat menyediakan kunci Cloud KMS atau bucket Cloud Storage yang ada, akun layanan CA Service Service Agent (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) harus diberi akses ke resource terkait.
Untuk Cloud KMS, roles/cloudkms.signerVerifier diperlukan untuk menggunakan kunci penandatanganan dan membaca kunci publik. roles/viewer diperlukan untuk memantau kunci untuk integrasi Cloud Monitoring.
Untuk Kunci enkripsi yang dikelola pelanggan (CMEK) yang digunakan untuk mengenkripsi data dalam penyimpanan, peran roles/cloudkms.cryptoKeyEncrypterDecrypter diperlukan. Hal ini memungkinkan agen layanan mengenkripsi dan mendekripsi data dalam penyimpanan.
Untuk Cloud Storage, roles/storage.objectAdmin diperlukan untuk menulis sertifikat CA dan CRL ke bucket. roles/storage.legacyBucketReader diperlukan untuk memantau bucket untuk integrasi Cloud Monitoring. Untuk mengetahui informasi selengkapnya, lihat Peran IAM untuk Cloud Storage.
Saat mengakses layanan melalui API, jalankan perintah berikut.
Buat akun layanan dengan peran Service Agent.
gcloud
gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_IDDengan:
- PROJECT_ID adalah ID unik project tempat kumpulan CA dibuat.
Berikan peran yang diperlukan ke akun layanan Anda menggunakan perintah
gcloudberikut.Jika kunci Cloud KMS yang ada disediakan:
gcloud
Untuk kunci penandatanganan Cloud KMS:
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.signerVerifier'gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/viewer'Untuk kunci enkripsi Cloud KMS:
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.cryptoKeyEncrypterDecrypter'Dengan:
- 'KEY_NAME' adalah nama kunci Anda.
- 'KEYRING_NAME' adalah nama key ring Anda.
- 'LOCATION' adalah lokasi Cloud KMS tempat Anda membuat key ring.
- 'PROJECT_NUMBER' adalah nomor project yang berisi kunci. Google Cloud
Berikan peran
roles/storage.objectAdmindanroles/storage.legacyBucketReaderke akun layanan Anda menggunakan perintahgcloudberikut.Jika bucket Cloud Storage yang ada disediakan:
gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.objectAdminDengan:
- BUCKET_NAME adalah nama bucket Cloud Storage Anda.
- PROJECT_NUMBER adalah ID unik akun layanan Anda.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.legacyBucketReader
Izin API
Tabel berikut mencantumkan izin yang harus dimiliki pemanggil untuk memanggil setiap metode di CA Service API:
| Izin | Deskripsi |
|---|---|
privateca.caPools.create |
Membuat kumpulan certificate authority (CA). |
privateca.caPools.update |
Memperbarui kumpulan CA. |
privateca.caPools.list |
Mencantumkan kumpulan CA dalam project. |
privateca.caPools.get |
Mengambil kumpulan CA. |
privateca.caPools.delete |
Menghapus kumpulan CA. |
privateca.caPools.use |
Menggunakan Kumpulan CA. |
privateca.caPools.getIamPolicy |
Mengambil kebijakan IAM kumpulan CA. |
privateca.caPools.setIamPolicy |
Menetapkan kebijakan IAM untuk kumpulan CA. |
privateca.certificateAuthorities.create |
Membuat CA. |
privateca.certificateAuthorities.delete |
Menjadwalkan CA untuk dihapus. |
privateca.certificateAuthorities.get |
Mendapatkan CA atau permintaan penandatanganan sertifikat CA. |
privateca.certificateAuthorities.list |
Mencantumkan CA dalam project. |
privateca.certificateAuthorities.update |
Memperbarui CA, termasuk mengaktifkan, mengaktifkan, menonaktifkan, dan memulihkan CA. |
privateca.certificates.create |
Meminta sertifikat dari CA Service. |
privateca.certificates.createForSelf |
Meminta sertifikat dari CA Service dengan identitas pemanggil. |
privateca.certificates.get |
Mendapatkan sertifikat dan metadatanya. |
privateca.certificates.list |
Mencantumkan semua sertifikat di CA. |
privateca.certificates.update |
Memperbarui metadata sertifikat, termasuk pencabutan. |
privateca.certificateRevocationLists.get |
Mendapatkan daftar pencabutan sertifikat (CRL) di CA. |
privateca.certificateRevocationLists.getIamPolicy |
Mendapatkan kebijakan IAM untuk CRL. |
privateca.certificateRevocationLists.list |
Mencantumkan semua CRL di CA. |
privateca.certificateRevocationLists.setIamPolicy |
Menetapkan kebijakan IAM untuk CRL. |
privateca.certificateRevocationLists.update |
Memperbarui CRL. |
privateca.certificateTemplates.create |
Membuat template sertifikat. |
privateca.certificateTemplates.get |
Mengambil template sertifikat. |
privateca.certificateTemplates.list |
Mencantumkan semua template sertifikat. |
privateca.certificateTemplates.update |
Memperbarui template sertifikat. |
privateca.certificateTemplates.delete |
Menghapus template sertifikat. |
privateca.certificateTemplates.getIamPolicy |
Mendapatkan kebijakan IAM untuk template sertifikat. |
privateca.certificateTemplates.setIamPolicy |
Menetapkan kebijakan IAM untuk template sertifikat. |
privateca.certificateTemplates.use |
Menggunakan template sertifikat. |
privateca.operations.cancel |
Membatalkan operasi yang berjalan lama. |
privateca.operations.delete |
Menghapus operasi yang berjalan lama. |
privateca.operations.get |
Mendapatkan operasi yang berjalan lama. |
privateca.operations.list |
Mencantumkan operasi yang berjalan lama dalam project. |
Langkah berikutnya
- Pelajari cara IAM memusatkan pengelolaan izin dan cakupan akses untuk Google Cloud resource.
- Pelajari cara mengonfigurasi kebijakan IAM.
- Pelajari lebih lanjut Kunci enkripsi yang dikelola pelanggan (CMEK).