In Cloud KMS, le risorse sono organizzate in una gerarchia. Questa gerarchia consente di gestire e concedere l'accesso alle risorse a vari livelli di granularità. Le chiavi sono contenute all'interno di keyring, che esistono all'interno di un progetto. Esistono anche connessioni EKM all'interno di un progetto. I progetti possono essere ulteriormente organizzati in cartelle od organizzazioni.
Questo argomento fornisce ulteriori dettagli sulla gerarchia delle risorse in Cloud KMS. Per ulteriori informazioni sulle risorse Google Cloud in generale, consulta 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 Autore crittografia CryptoKey Cloud KMS (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 | Cripta utilizzando tutte le chiavi in tutti i progetti nell'organizzazione |
cartella | Cripta utilizzando tutte le chiavi in tutti i progetti nella cartella |
progetto | Cripta utilizzando tutte le chiavi nel progetto |
Keyring | Cripta utilizzando tutte le chiavi nel keyring |
Chiave | Cripta utilizzando solo quella chiave |
Principi di sicurezza
IAM aiuta ad applicare i principi di sicurezza correlati della separazione dei compiti e del privilegio minimo:
Quando applichi il principio di separazione dei compiti, nessun singolo membro ha tutte le autorizzazioni di accesso necessarie per completare una funzione aziendale critica. Ad esempio, uno sportello bancario può prelevare fondi da un conto solo quando il titolare del conto è presente fisicamente e avvia la transazione.
Quando applichi il principio del privilegio minimo, un membro dispone solo del livello di accesso minimo necessario per completare le sue funzioni aziendali specifiche. Ad esempio, a un cassiere non viene concessa automaticamente la possibilità di approvare il prestito di un cliente.
Ruoli predefiniti
IAM fornisce ruoli predefiniti che concedono l'accesso per ogni tipo di risorsa 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 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ù autorizzazioni elencate nel riferimento IAM.
Le autorizzazioni relative all'API Cloud Key Management Service iniziano con la stringa cloudkms
.
Per ulteriori informazioni, vedi Livelli di supporto per le autorizzazioni nei ruoli personalizzati.
Per informazioni sulle autorizzazioni necessarie per richiamare uno specifico metodo API Cloud Key Management Service, consulta il riferimento API del metodo in questione.
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 utilizzare le chiavi per le operazioni crittografiche e sono sconsigliati
per gli ambienti di produzione. Utilizza invece ruoli predefiniti o crea
ruoli personalizzati che riflettano le tue esigenze aziendali.
I seguenti esempi illustrano alcune linee guida per la sicurezza efficaci:
Per un'organizzazione grande o complessa, potresti scegliere un approccio come il seguente:
- Concedi ai membri del tuo team per la sicurezza IT il ruolo Amministratore Cloud KMS
(
roles/cloudkms.admin
) per tutti i progetti. Se diversi membri del team gestiscono aspetti diversi del ciclo di vita di una chiave, puoi assegnargli un ruolo più granulare, come il ruolo Importatore Cloud KMS (roles/cloudkms.importer
). - Concedi il ruolo Autore crittografia / decrittografia Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) agli utenti o alle applicazioni che leggono o scrivono dati criptati. - Concedi il ruolo Visualizzatore chiave pubblica di Cloud KMS (
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 linea con i tuoi requisiti aziendali. Ad esempio, lo stesso utente potrebbe dover monitorare le quote di un progetto e visualizzare i dati di log.
- Concedi ai membri del tuo team per la sicurezza IT il ruolo Amministratore Cloud KMS
(
Per una piccola organizzazione con requisiti di sicurezza semplici, potresti scegliere di adottare un approccio più semplice concedendo un ruolo ampio, ad esempio Amministratore organizzazione (
roles/resourcemanager.organizationAdmin
). Tuttavia, questo approccio potrebbe non essere adeguato alle esigenze attuali.Potresti 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 l'accesso non autorizzato alle chiavi in un progetto diverso.Evita di concedere il ruolo
owner
a qualsiasi membro. Senza il ruoloowner
, nessun membro del progetto può creare una chiave e utilizzarla per decriptare i dati o per la firma, a meno che al membro non venga concessa ognuna di queste autorizzazioni. Per concedere l'accesso amministrativo ampio senza concedere la possibilità di criptare o decriptare, concedi invece il ruolo Amministratore Cloud KMS (roles/cloudkms.admin
).Per limitare l'accesso ai dati criptati, ad esempio ai dati dei clienti, puoi limitare chi può accedere alla chiave e chi può utilizzarla per la decriptazione. Se necessario, puoi creare ruoli personalizzati granulari per soddisfare i requisiti della tua attività.
Verifica delle autorizzazioni in corso...
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 l'oggetto in questione.
- Per i keyring, puoi richiamare il metodo
cloudkms.keyRings.testIamPermissions
. - Per le chiavi, puoi richiamare il metodo
cloudkms.cryptoKeys.testIamPermissions
. - Per i job di importazione delle chiavi, puoi richiamare il metodo
cloudkms.keyRings.importJobs.testIamPermissions
. - Per le connessioni EKM, puoi richiamare il metodo
cloudkms.ekmConnections.testIamPermissions
.
Non puoi impostare le autorizzazioni IAM su una versione della chiave, pertanto il tipo di oggetto CryptoKeyVersion
non ha questo metodo.
Il metodo testIamPermissions
di un oggetto restituisce un
TestIamPermissionsResponse
.
Per esempi su come richiamare i metodi testIamPermissions
, consulta la documentazione relativa ai 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.
- Comprendere i diversi tipi di oggetti Cloud KMS.