Di Cloud KMS, resource diatur ke dalam hierarki. Hierarki ini membantu Anda mengelola dan memberikan akses ke resource di berbagai tingkat detail. Kunci terdapat dalam key ring, dan key ring berada dalam project. Koneksi EKM juga ada di dalam project. Project dapat diatur lebih lanjut ke dalam folder atau organisasi.
Topik ini memberikan detail lebih lanjut tentang hierarki resource dalam Cloud KMS. Untuk mempelajari lebih lanjut resource Google Cloud secara umum, lihat Hierarki resource.
Hierarki resource
Cakupan peran IAM berubah bergantung pada level hierarki resource tempat peran diberikan. Tabel ini menunjukkan kemampuan efektif yang diberikan oleh peran Cloud KMS Bigtable Encrypter (roles/cloudkms.cryptoKeyEncrypter
) di berbagai level hierarki.
Anda dapat mengelola akses ke kunci atau key ring, tetapi tidak ke versi kunci individual.
Hierarki resource | Kemampuan |
---|---|
Organisasi | Mengenkripsi menggunakan semua kunci di semua project dalam organisasi |
Folder | Enkripsi menggunakan semua kunci di semua project dalam folder |
Project | Mengenkripsi menggunakan semua kunci dalam project |
Key ring | Enkripsi menggunakan semua kunci pada key ring |
Kunci | Enkripsi hanya menggunakan kunci tersebut |
Prinsip keamanan
IAM membantu menerapkan prinsip keamanan yang saling terkait, seperti pemisahan tugas dan hak istimewa terendah:
Saat Anda menerapkan prinsip pemisahan tugas, tidak ada anggota tunggal yang memiliki semua akses yang diperlukan untuk menyelesaikan fungsi bisnis penting. Misalnya, kasir bank hanya dapat menarik dana dari sebuah rekening ketika pemegang rekening tersebut datang secara fisik dan memulai transaksi.
Saat Anda menerapkan prinsip hak istimewa terendah, anggota hanya memiliki tingkat akses minimum yang diperlukan untuk menyelesaikan fungsi bisnis tertentu milik anggota tersebut. Misalnya, kasir bank tidak secara otomatis diberi kemampuan untuk menyetujui pinjaman pelanggan.
Peran yang telah ditetapkan
IAM menyediakan peran standar yang memberikan akses ke setiap jenis resource Google Cloud. Jika tidak ada peran yang telah ditetapkan yang sesuai dengan kebutuhan Anda, Anda dapat membuat peran khusus.
IAM menawarkan peran bawaan berikut untuk Cloud KMS:
Role | Permissions |
---|---|
Cloud KMS Admin( Provides access to Cloud KMS resources, except for access to restricted resource types and cryptographic operations. Lowest-level resources where you can grant this role:
|
|
Cloud KMS Autokey Admin( Enables management of AutokeyConfig. |
|
Cloud KMS Autokey User( Grants ability to use KeyHandle resources. |
|
Cloud KMS CryptoKey Decrypter( Provides ability to use Cloud KMS resources for decrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Decrypter Via Delegation( Enables Decrypt operations via other Google Cloud services |
|
Cloud KMS CryptoKey Encrypter( Provides ability to use Cloud KMS resources for encrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter/Decrypter( Provides ability to use Cloud KMS resources for encrypt and decrypt operations only. Lowest-level resources where you can grant this role:
|
|
Cloud KMS CryptoKey Encrypter/Decrypter Via Delegation( Enables Encrypt and Decrypt operations via other Google Cloud services |
|
Cloud KMS CryptoKey Encrypter Via Delegation( Enables Encrypt operations via other Google Cloud services |
|
Cloud KMS Crypto Operator( Enables all Crypto Operations. |
|
Cloud KMS EkmConnections Admin( Enables management of EkmConnections. |
|
Cloud KMS Expert Raw AES-CBC Key Manager( Enables raw AES-CBC keys management. |
|
Cloud KMS Expert Raw AES-CTR Key Manager( Enables raw AES-CTR keys management. |
|
Cloud KMS Expert Raw PKCS#1 Key Manager( Enables raw PKCS#1 keys management. |
|
Cloud KMS Importer( Enables ImportCryptoKeyVersion, CreateImportJob, ListImportJobs, and GetImportJob operations |
|
Cloud KMS Protected Resources Viewer( Enables viewing protected resources. |
|
Cloud KMS CryptoKey Public Key Viewer( Enables GetPublicKey operations |
|
Cloud KMS CryptoKey Signer( Enables Sign operations |
|
Cloud KMS CryptoKey Signer/Verifier( Enables Sign, Verify, and GetPublicKey operations |
|
Cloud KMS CryptoKey Verifier( Enables Verify and GetPublicKey operations |
|
Cloud KMS Viewer( Enables Get and List operations. |
|
Peran khusus
Selain peran standar, Anda dapat membuat peran khusus. Peran khusus memungkinkan Anda menerapkan prinsip hak istimewa terendah dengan memberi peran izin minimum yang diperlukan untuk melakukan tugas tertentu.
Peran khusus mencakup satu atau beberapa izin yang tercantum dalam referensi IAM.
Izin yang terkait dengan Cloud Key Management Service API dimulai dengan string cloudkms
.
Untuk informasi selengkapnya, lihat
Tingkat dukungan untuk izin dalam peran khusus.
Untuk mengetahui informasi tentang izin yang diperlukan untuk memanggil metode Cloud Key Management Service API tertentu, lihat referensi API metode tersebut.
Panduan umum untuk mengelola akses di Cloud KMS
Sebaiknya hindari penggunaan peran dasar tingkat project seperti owner
, editor
, dan viewer
. Peran ini tidak memisahkan kemampuan untuk mengelola kunci dengan kemampuan untuk menggunakan kunci operasi kriptografi, dan tidak direkomendasikan untuk lingkungan produksi. Sebagai gantinya, gunakan peran yang telah ditetapkan atau buat peran khusus yang mencerminkan persyaratan bisnis Anda.
Contoh berikut ini membantu menggambarkan beberapa pedoman keamanan yang baik:
Untuk organisasi besar atau kompleks, Anda dapat memutuskan pendekatan seperti berikut:
- Berikan peran Admin Cloud KMS (
roles/cloudkms.admin
) kepada anggota tim keamanan IT Anda di seluruh project. Jika anggota tim yang berbeda menangani aspek yang berbeda dari siklus proses kunci, Anda dapat memberikan peran yang lebih terperinci kepada anggota tim tersebut, seperti peran Pengimpor Cloud KMS (roles/cloudkms.importer
). - Berikan peran Cloud KMS Encrypter / Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) kepada pengguna atau aplikasi yang membaca atau menulis data terenkripsi. - Berikan peran Cloud KMS Public Key Viewer (
roles/cloudkms.publicKeyViewer
) kepada pengguna atau aplikasi yang perlu melihat bagian publik dari kunci yang digunakan untuk enkripsi asimetris. - Buat peran standar yang cocok dengan persyaratan bisnis Anda. Misalnya, pengguna yang sama mungkin perlu memantau kuota project dan melihat data log.
- Berikan peran Admin Cloud KMS (
Untuk organisasi kecil dengan persyaratan keamanan sederhana, Anda dapat memilih pendekatan yang lebih sederhana dengan memberikan peran yang luas seperti Admin Organisasi (
roles/resourcemanager.organizationAdmin
). Namun, pendekatan ini mungkin tidak diskalakan dengan persyaratan berkelanjutan Anda.Pertimbangkan untuk menghosting kunci Anda di project Google Cloud yang terpisah dari data yang dilindungi oleh kunci tersebut. Pengguna dengan peran dasar atau dengan hak istimewa tinggi dalam satu project, seperti
editor
, tidak dapat menggunakan peran ini untuk mendapatkan akses tidak sah ke kunci dalam project lain.Hindari memberikan peran
owner
kepada anggota mana pun. Tanpa peranowner
, tidak ada anggota dalam project yang dapat membuat kunci dan menggunakannya untuk mendekripsi data atau untuk menandatangani, kecuali jika setiap izin ini diberikan kepada anggota tersebut. Untuk memberikan akses administratif yang luas tanpa memberikan kemampuan untuk mengenkripsi atau mendekripsi, berikan peran Admin Cloud KMS (roles/cloudkms.admin
).Untuk membatasi akses ke data terenkripsi, seperti data pelanggan, Anda dapat membatasi siapa yang dapat mengakses kunci dan siapa yang dapat menggunakan kunci untuk dekripsi. Jika perlu, Anda dapat membuat peran khusus yang terperinci untuk memenuhi persyaratan bisnis.
Memeriksa izin
Untuk setiap jenis objek Cloud KMS yang izin IAM terperincinya dapat Anda tetapkan, objek tersebut memiliki metode testIamPermissions
.
Metode testIamPermissions
menampilkan kumpulan izin yang telah
diberikan oleh pemanggil untuk objek tersebut.
- Untuk key ring, Anda dapat memanggil
metode
cloudkms.keyRings.testIamPermissions
. - Untuk kunci, Anda dapat memanggil
metode
cloudkms.cryptoKeys.testIamPermissions
. - Untuk tugas impor kunci, Anda dapat memanggil
metode
cloudkms.keyRings.importJobs.testIamPermissions
. - Untuk koneksi EKM,
Anda dapat memanggil metode
cloudkms.ekmConnections.testIamPermissions
.
Anda tidak dapat menetapkan izin IAM pada versi kunci, sehingga jenis objek CryptoKeyVersion
tidak memiliki metode ini.
Metode testIamPermissions
objek akan menampilkan
TestIamPermissionsResponse
.
Untuk mengetahui contoh pemanggilan metode testIamPermissions
, lihat dokumentasi untuk izin pengujian dalam dokumentasi IAM.
Langkah selanjutnya
- Pelajari cara IAM memusatkan pengelolaan izin dan cakupan akses untuk resource Google Cloud.
- Pahami berbagai jenis objek Cloud KMS.