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 tertentu. Peran IAM berisi serangkaian izin yang memungkinkan pengguna melakukan tindakan tertentu pada resource Google Cloud. Dengan mengikuti prinsip hak istimewa terendah saat memberikan peran IAM, Anda dapat melindungi integritas resource Certificate Authority Service dan mengelola keamanan kumpulan CA, serta keseluruhan infrastruktur kunci publik (IKP) itu sendiri.
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 tersebut:
Peran | Izin | Deskripsi |
---|---|---|
Auditor Layanan CAroles/privateca.auditor |
privateca.caPools.get privateca.caPools.getIamPolicy privateca.caPools.list privateca.certificateAuthorities.list privateca.certificateAuthorities.get privateca.certificateTemplates.get privateca.certificateTemplates.getIamPolicy privateca.certificateTemplates.list privateca.certificates.list privateca.certificates.get privateca.locations.get privateca.locations.list privateca.operations.get privateca.operations.list privateca.certificateRevocationLists.list privateca.certificateRevocationLists.get privateca.certificateRevocationLists.getIamPolicy resourcemanager.projects.get resourcemanager.projects.list
|
Peran CA Service Auditor memiliki akses hanya baca ke semua resource CA Service, dan dapat mengambil serta mencantumkan properti kumpulan CA, CA, sertifikat, daftar pencabutan, kebijakan IAM, dan project. Sebaiknya Anda menetapkan peran ini kepada individu yang bertanggung jawab untuk memvalidasi keamanan dan pengoperasian kumpulan CA, dan tidak memiliki tanggung jawab harian apa pun yang ditetapkan untuk mengelola layanan. |
Pemohon Sertifikat Layanan CAroles/privateca.certificateRequester |
privateca.certificates.create
|
Peran Pemohon Sertifikat Layanan CA dapat mengirim permintaan sertifikat ke kumpulan CA. Sebaiknya Anda memberikan 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 mengizinkan pengguna mendapatkan atau mencantumkan sertifikat yang baru diterbitkan, atau memperoleh informasi tentang kumpulan CA. |
Pemohon Sertifikat CA Service Workloadroles/privateca.workloadCertificateRequester |
privateca.certificates.createForSelf
|
Pemohon Sertifikat CA Service Workload dapat meminta sertifikat dari CA Service dengan identitas penelepon. |
Pengelola Sertifikat Layanan CAroles/privateca.certificateManager |
Semua izin dari roles/privateca.auditor , serta:privateca.certificates.create
|
Pengelola Sertifikat Layanan CA dapat mengirimkan permintaan penerbitan sertifikat ke kumpulan CA seperti Pemohon Sertifikat Layanan CA. Selain itu, peran ini juga mewarisi izin peran CA Service Auditor. Sebaiknya Anda menetapkan peran ini kepada individu yang bertanggung jawab membuat, melacak, dan meninjau permintaan sertifikat di kumpulan CA, seperti manajer atau lead engineer. |
Pengguna Template Sertifikat Layanan CAroles/privateca.templateUser |
privateca.certificateTemplates.get privateca.certificateTemplates.list privateca.certificateTemplates.use
|
Pengguna Template Sertifikat CA Service dapat membaca, membuat daftar, dan menggunakan template sertifikat. |
Manajer Operasi Layanan CAroles/privateca.caManager |
Semua izin dari roles/privateca.auditor , ditambah:privateca.certificates.update privateca.caPools.create privateca.caPools.delete privateca.caPools.update privateca.certificateAuthorities.create privateca.certificateAuthorities.delete privateca.certificateAuthorities.update privateca.certificateRevocationLists.update privateca.certificateTemplates.create privateca.certificateTemplates.delete privateca.certificateTemplates.update privateca.certificates.update privateca.operations.cancel privateca.operations.delete resourcemanager.projects.get resourcemanager.projects.list storage.buckets.create
|
Pengelola Operasi Layanan CA dapat membuat, memperbarui, dan menghapus kumpulan CA dan CA. Peran ini juga dapat mencabut sertifikat dan membuat bucket Cloud Storage. CA Service Auditor juga memiliki kemampuan yang sama. 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 Pemohon Sertifikat Layanan CA, Pengelola Sertifikat Layanan CA, atau peran Admin Layanan CA. |
Admin Layanan CAroles/privateca.admin |
Semua izin dari roles/privateca.certificateManager ,
dan roles/privateca.caManager , serta:privateca.*.setIamPolicy privateca.caPools.use privateca.operations.cancel privateca.operations.delete privateca.resourcemanager.projects.get privateca.resourcemanager.projects.list storage.buckets.create
|
Peran CA Service Admin mewarisi izin dari peran CA Service Operation Manager dan peran CA Service Certificate Manager. Peran ini dapat melakukan semua tindakan dalam CA Service. Admin Layanan CA dapat menetapkan kebijakan IAM untuk kumpulan CA dan membuat bucket Cloud Storage. Sebaiknya Anda jarang menetapkan peran ini setelah layanan dibuat. Dalam peran ini, individu dapat melakukan semua aspek administrasi termasuk memberikan hak kepada orang lain dan mengelola permintaan sertifikat di CA Service. Sebaiknya Anda menerapkan kontrol dan akses khusus ke akun peran ini untuk mencegah akses atau penggunaan yang tidak sah. |
Peran CA Service Service Agent
Saat memberikan kunci penandatanganan Cloud KMS atau bucket Cloud Storage yang ada selama pembuatan CA, akun layanan Agen Layanan CA (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com
) harus diberi akses ke resource masing-masing.
Untuk Cloud KMS, roles/cloudkms.signerVerifier
diperlukan agar dapat menggunakan kunci penandatanganan dan membaca kunci publik. roles/viewer
diperlukan untuk memantau kunci integrasi Cloud Monitoring.
Untuk Cloud Storage, roles/storage.objectAdmin
diperlukan untuk menulis sertifikat CA dan CRL ke bucket. roles/storage.legacyBucketReader
diperlukan guna memantau bucket untuk integrasi Cloud Monitoring. Untuk mengetahui informasi lebih lanjut, baca artikel Peran IAM untuk Cloud Storage.
Saat mengakses layanan melalui API, jalankan perintah berikut.
Buat akun layanan dengan peran Agen Layanan.
gcloud
gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_ID
Dengan keterangan:
- PROJECT_ID adalah ID unik project tempat kumpulan CA dibuat.
Beri akun layanan Anda peran
roles/cloudkms.signerVerifier
danroles/viewer
menggunakan perintahgcloud
berikut.Jika kunci penandatanganan Cloud KMS yang ada diberikan:
gcloud
gcloud kms keys add-iam-policy-binding 'CRYPTOKEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.signerVerifier'
Dengan keterangan:
- 'CRYPTOKEY_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 nama akun layanan Anda.
gcloud kms keys add-iam-policy-binding 'CRYPTOKEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/viewer'
Jika bucket Cloud Storage yang sudah ada disediakan, gunakan alat command line
gsutil
untuk mengikat peran yang diperlukan untuk bucket Cloud Storage.gsutil
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com:roles/storage.objectAdmin gs://BUCKET_NAME
Dengan keterangan:
- PROJECT_NUMBER adalah ID unik akun layanan Anda.
- BUCKET_NAME adalah nama bucket Cloud Storage Anda.
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com:roles/storage.legacyBucketReader gs://BUCKET_NAME
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.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 penghapusan. |
privateca.certificateAuthorities.get |
Dapatkan permintaan penandatanganan sertifikat CA atau CA. |
privateca.certificateAuthorities.list |
Membuat daftar 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 |
Minta sertifikat dari CA Service dengan identitas penelepon. |
privateca.certificates.get |
Mendapatkan sertifikat dan metadatanya. |
privateca.certificates.list |
Mencantumkan semua sertifikat dalam 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 |
Tetapkan kebijakan IAM untuk CRL. |
privateca.certificateRevocationLists.update |
Memperbarui CRL. |
privateca.certificateTemplates.create |
Buat template sertifikat. |
privateca.certificateTemplates.get |
Ambil 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 |
Gunakan 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 di sebuah project. |
Langkah selanjutnya
- Pelajari cara IAM memusatkan pengelolaan izin dan cakupan akses untuk resource Google Cloud.
- Pelajari cara mengonfigurasi kebijakan IAM.