In Cloud KMS, le risorse sono organizzate in una gerarchia. Questa gerarchia ti aiuta a gestire e concedere l'accesso alle risorse a vari livelli di granularità. Le chiavi sono contenute nei keyring, che esistono all'interno di un progetto. Le connessioni EKM esistono anche all'interno di un progetto. I progetti possono essere ulteriormente organizzati in cartelle o organizzazioni.
Questo argomento fornisce ulteriori dettagli sulla gerarchia delle risorse all'interno di Cloud KMS. Per scoprire di più sulle risorse Google Cloud in generale, consulta la gerarchia delle risorse.
Gerarchia delle risorse
L'ambito di un ruolo IAM cambia a seconda del livello della gerarchia delle risorse in cui viene concesso il ruolo. Questa tabella mostra le funzionalità effettive concesse dal ruolo Cloud KMS CryptoKey Encrypter (roles/cloudkms.cryptoKeyEncrypter
) a diversi livelli della gerarchia.
Puoi gestire l'accesso alle chiavi o ai keyring, ma non alle singole versioni delle chiavi.
Gerarchia delle risorse | Capacità |
---|---|
Organizzazione | Esegui la crittografia utilizzando tutte le chiavi di tutti i progetti dell'organizzazione |
Cartella | Esegui la crittografia utilizzando tutte le chiavi di tutti i progetti nella cartella |
Progetto | Esegui la crittografia utilizzando tutte le chiavi del progetto |
Keyring | Cripta utilizzando tutte le chiavi del keyring |
Chiave | Cripta utilizzando solo quella chiave |
Principi di sicurezza
IAM contribuisce a applicare i principi di sicurezza correlati della separazione dei compiti e del privilegio minimo:
Quando applichi il principio della separazione delle responsabilità, nessun singolo membro ha tutto l'accesso necessario per completare una funzione aziendale fondamentale. Ad esempio, un cassiere bancario può prelevare fondi da un conto solo quando il titolare del conto è fisicamente presente e avvia la transazione.
Quando applichi il principio del privilegio minimo, un membro dispone solo del livello minimo di accesso necessario per svolgere le sue funzioni commerciali specifiche. Ad esempio, a un cassiere di banca non viene concessa automaticamente la possibilità di approvare un prestito a un cliente.
Ruoli predefiniti
IAM fornisce ruoli predefiniti che consentono l'accesso per ogni tipo di risorse Google Cloud. Se nessun ruolo predefinito soddisfa le tue esigenze, puoi creare un ruolo personalizzato.
IAM offre i seguenti ruoli predefiniti per 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. |
|
Ruoli personalizzati
Oltre ai ruoli predefiniti, puoi creare ruoli personalizzati. I ruoli personalizzati ti consentono di applicare il principio del privilegio minimo concedendo al ruolo le autorizzazioni minime necessarie per eseguire una determinata attività.
Un ruolo personalizzato include una o più delle autorizzazioni elencate nel riferimento IAM.
Le autorizzazioni relative all'API Cloud Key Management Service iniziano con la stringa cloudkms
.
Per ulteriori informazioni, consulta
Livelli di assistenza per le autorizzazioni nei ruoli personalizzati.
Per informazioni sulle autorizzazioni richieste per richiamare un metodo specifico dell'API Cloud Key Management Service, consulta il riferimento all'API del metodo.
Linee guida generali per la gestione dell'accesso in Cloud KMS
Ti consigliamo di evitare di utilizzare ruoli di base a livello di progetto come owner
,
editor
e viewer
. Questi ruoli non separano la possibilità di gestire le chiavi dalla possibilità di utilizzarle per le operazioni di crittografia e non sono consigliati per gli ambienti di produzione. Utilizza invece i ruoli predefiniti o crea ruoli personalizzati che riflettano i requisiti della tua attività.
Gli esempi riportati di seguito aiutano a illustrare alcune buone linee guida per la sicurezza:
Per un'organizzazione grande o complessa, puoi scegliere un approccio come il seguente:
- Concedi ai membri del team di sicurezza IT il ruolo Amministratore Cloud KMS
(
roles/cloudkms.admin
) in tutti i progetti. Se diversi membri del team gestiscono aspetti diversi del ciclo di vita di una chiave, puoi concedere loro un ruolo più granulare, come il ruolo Importatore Cloud KMS (roles/cloudkms.importer
). - Concedi il ruolo di criptatore / decriptatore Cloud KMS
(
roles/cloudkms.cryptoKeyEncrypterDecrypter
) agli utenti o alle applicazioni che leggono o scrivono dati criptati. - Concedi il ruolo Cloud KMS CryptoKey Public Key Viewer
(
roles/cloudkms.publicKeyViewer
) agli utenti o alle applicazioni che devono visualizzare la parte pubblica di una chiave utilizzata per la crittografia asimmetrica. - Crea ruoli predefiniti in base ai requisiti della tua attività. Ad esempio, lo stesso utente potrebbe dover monitorare le quote di un progetto e visualizzare i dati dei log.
- Concedi ai membri del team di sicurezza IT il ruolo Amministratore Cloud KMS
(
Per una piccola organizzazione con requisiti di sicurezza semplici, puoi scegliere di adottare un approccio più semplice concedendo un ruolo ampio come Amministratore dell'organizzazione (
roles/resourcemanager.organizationAdmin
). Tuttavia, questo approccio potrebbe non essere scalabile in base ai tuoi requisiti correnti.Valuta la possibilità di ospitare le chiavi in un progetto Google Cloud separato dai dati protetti da queste chiavi. Un utente con un ruolo di base o con privilegi elevati in un progetto, ad esempio
editor
, non può utilizzare questo ruolo per ottenere accesso unauthorized alle chiavi in un altro progetto.Evita di concedere il ruolo
owner
a nessun membro. Senza il ruoloowner
, nessun membro del progetto può creare una chiave e utilizzarla sia per decriptare i dati sia per la firma, a meno che a quel membro non venga concessa ciascuna di queste autorizzazioni. Per concedere accesso amministrativo ampio senza concedere la possibilità di criptare o decriptare, concedi il ruolo Amministratore Cloud KMS (roles/cloudkms.admin
).Per limitare l'accesso ai dati criptati, ad esempio i dati dei clienti, puoi limitare chi può accedere alla chiave e chi può utilizzarla per la decrittografia. Se necessario, puoi creare ruoli personalizzati granulari per soddisfare le esigenze della tua attività.
Controllo delle autorizzazioni
Per ogni tipo di oggetto Cloud KMS per il quale puoi impostare autorizzazioni IAM granulari, l'oggetto ha un metodo testIamPermissions
.
Il metodo testIamPermissions
restituisce l'insieme di autorizzazioni concesse al chiamante per quell'oggetto.
- Per gli anelli portachiavi, puoi invocare il metodo
cloudkms.keyRings.testIamPermissions
. - Per le chiavi, puoi invocare il metodo
cloudkms.cryptoKeys.testIamPermissions
. - Per i job di importazione delle chiavi, puoi invocare il metodo
cloudkms.keyRings.importJobs.testIamPermissions
. - Per le connessioni EKM, puoi invocare il metodo
cloudkms.ekmConnections.testIamPermissions
.
Non puoi impostare le autorizzazioni IAM su una versione della chiave, pertanto il tipo di oggetto CryptoKeyVersion
non dispone di questo metodo.
Il metodo testIamPermissions
di un oggetto restituisce un
TestIamPermissionsResponse
.
Per esempi di chiamata dei metodi testIamPermissions
, consulta la documentazione relativa al test delle autorizzazioni nella documentazione di IAM.
Passaggi successivi
- Scopri come IAM centralizza la gestione delle autorizzazioni e degli ambiti di accesso per le risorse Google Cloud.
- Scopri i diversi tipi di oggetti Cloud KMS.