Di Cloud KMS, resource diatur dalam hierarki. Hierarki ini membantu Anda mengelola dan memberikan akses ke resource di berbagai tingkat perincian. Kunci terdapat dalam key ring, dan key ring ada dalam project. Koneksi EKM juga ada dalam project. Project dapat diatur lebih lanjut ke dalam folder atau organisasi.
Topik ini memberikan detail selengkapnya tentang hierarki resource dalam Cloud KMS. Untuk mempelajari resource Google Cloud secara umum lebih lanjut, lihat Hierarki resource.
Hierarki resource
Cakupan peran IAM berubah bergantung pada tingkat hierarki resource
tempat peran diberikan. Tabel ini menunjukkan kemampuan efektif
yang diberikan oleh peran Pengenkripsi CryptoKey Cloud KMS
(roles/cloudkms.cryptoKeyEncrypter
) di berbagai tingkat hierarki.
Anda dapat mengelola akses ke kunci atau key ring, tetapi tidak ke setiap versi kunci.
Hierarki resource | Kemampuan |
---|---|
Organisasi | Mengenkripsi menggunakan semua kunci di semua project di organisasi |
Folder | Mengenkripsi menggunakan semua kunci di semua project dalam folder |
Project | Mengenkripsi menggunakan semua kunci dalam project |
Key ring | Mengenkripsi menggunakan semua kunci di key ring |
Kunci | Mengenkripsi hanya menggunakan kunci tersebut |
Prinsip keamanan
IAM membantu menerapkan prinsip keamanan yang saling terkait dari pemisahan tugas dan hak istimewa terendah:
Saat Anda menerapkan prinsip pemisahan tugas, tidak ada satu anggota pun yang memiliki semua akses yang diperlukan untuk menyelesaikan fungsi bisnis yang penting. Misalnya, teller bank hanya dapat menarik dana dari rekening jika pemegang rekening secara fisik hadir dan memulai transaksi.
Saat Anda menerapkan prinsip hak istimewa terendah, anggota hanya memiliki tingkat akses minimum yang diperlukan untuk menyelesaikan fungsi bisnis tertentu anggota tersebut. Misalnya, kasir bank tidak otomatis diberi kemampuan untuk menyetujui pinjaman pelanggan.
Peran yang telah ditetapkan
IAM menyediakan peran bawaan yang memberikan akses untuk setiap jenis resource Google Cloud. Jika tidak ada peran bawaan yang memenuhi 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 bawaan, Anda dapat membuat peran khusus. Peran kustom memungkinkan Anda menerapkan prinsip hak istimewa terendah dengan memberikan izin minimum yang diperlukan untuk melakukan tugas tertentu.
Peran kustom mencakup satu atau beberapa izin yang tercantum dalam
referensi IAM.
Izin yang terkait dengan Cloud Key Management Service API dimulai dengan string cloudkms
.
Untuk mengetahui 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 lingkup project seperti owner
,
editor
, dan viewer
. Peran ini tidak memisahkan kemampuan untuk mengelola kunci
dari kemampuan untuk menggunakan kunci untuk operasi kriptografi, dan tidak
direkomendasikan untuk lingkungan produksi. Sebagai gantinya, gunakan peran bawaan atau buat
peran khusus yang mencerminkan persyaratan bisnis Anda.
Contoh berikut membantu mengilustrasikan beberapa panduan 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 semua project. Jika anggota tim yang berbeda menangani aspek siklus proses kunci yang berbeda, Anda dapat memberikan peran yang lebih terperinci kepada anggota tim tersebut, seperti peran Cloud KMS Importer (roles/cloudkms.importer
). - Berikan peran Pengenkripsi / Pendekripsi Cloud KMS
(
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 kunci yang digunakan untuk enkripsi asimetris. - Buat peran bawaan yang sesuai 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 untuk menggunakan pendekatan yang lebih sederhana dengan memberikan peran yang luas seperti Admin Organisasi (
roles/resourcemanager.organizationAdmin
). Namun, pendekatan ini mungkin tidak sesuai dengan persyaratan berkelanjutan Anda.Pertimbangkan untuk menghosting kunci Anda di project Google Cloud terpisah dari data yang dilindungi oleh kunci tersebut. Pengguna dengan peran dasar atau dengan hak istimewa tinggi di satu project, seperti
editor
, tidak dapat menggunakan peran ini untuk mendapatkan akses tanpa izin ke kunci di 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 penandatanganan, 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 kustom terperinci untuk memenuhi persyaratan bisnis Anda.
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 kepada pemanggil untuk objek tersebut.
- Untuk ring kunci, 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 contoh pemanggilan metode testIamPermissions
, lihat dokumentasi untuk menguji izin dalam dokumentasi IAM.
Langkah selanjutnya
- Pelajari cara IAM memusatkan pengelolaan izin dan cakupan akses untuk resource Google Cloud.
- Pahami berbagai jenis objek Cloud KMS.