Questo argomento mostra come gestire l'accesso alle risorse di Cloud KMS.
Panoramica
Per gestire l'accesso alle risorse di Cloud KMS, come chiavi e chiavi automatizzate, devi concedere i ruoli di Identity and Access Management (IAM). Puoi concedere o limitare la possibilità di eseguire operazioni di crittografia specifiche, come la rotazione di una chiave o la crittografia dei dati. Puoi concedere i ruoli IAM su:
- Una chiave direttamente
- Una chiave automatizzata, ereditata da tutte le chiavi in quella chiave automatizzata
- Un Google Cloud progetto, ereditato da tutte le chiavi nel progetto
- Una Google Cloud cartella, ereditata da tutte le chiavi in tutti i progetti nella cartella
- Un' Google Cloud organizzazione, ereditata da tutte le chiavi nelle cartelle dell' organizzazione
Per un elenco completo delle azioni di Cloud KMS e dei ruoli e delle autorizzazioni IAM, consulta Autorizzazioni e ruoli. Per un elenco completo delle risorse di Cloud KMS e del loro rapporto, consulta Risorse di Cloud KMS.
Prima di iniziare
Per completare queste attività, devi disporre dell'autorizzazione per amministrare le risorse di Cloud KMS
nel Google Cloud progetto. Il ruolo Amministratore di Cloud KMS (roles/cloudkms.admin) include le autorizzazioni richieste.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Installa Google Cloud CLI.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init - Crea una risorsa, ad esempio una chiave automatizzata.
- Recupera gli ID risorsa per le risorse create, ad esempio una chiave automatizzata, una chiave e una versione della chiave.
Solo le entità IAM con i ruoli Proprietario (roles/owner) o Amministratore di Cloud KMS (roles/cloudkms.admin) possono concedere o revocare l'accesso alle risorse di Cloud KMS.
Concessione di ruoli a una risorsa
L'esempio seguente concede un ruolo che fornisce l'accesso a una chiave Cloud KMS:
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
gcloud kms keys add-iam-policy-binding key \
--keyring key-ring \
--location location \
--member principal-type:principal-email \
--role roles/role
Sostituisci key con il nome della chiave. Sostituisci key-ring con il nome della chiave automatizzata in cui si trova la chiave. Sostituisci location con la località di Cloud KMS per la chiave automatizzata. Sostituisci principal-type e principal-email con il tipo di entità e l'indirizzo email dell'entità. Sostituisci role con il nome del ruolo da aggiungere.
C#
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# di Cloud KMS.
Go
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
PHP
Per eseguire questo codice, devi innanzitutto scoprire come utilizzare PHP su Google Cloud e installare l'SDK PHP di Cloud KMS.
Python
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
Revoca dell'accesso a una risorsa
Per rimuovere l'accesso di un'entità a una chiave Cloud KMS:
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
gcloud kms keys remove-iam-policy-binding key \
--keyring key-ring \
--location location \
--member principal-type:principal-email \
--role roles/role-name
Sostituisci key con il nome della chiave. Sostituisci key-ring con il nome della chiave automatizzata in cui si trova la chiave. Sostituisci location con la località di Cloud KMS per la chiave automatizzata. Sostituisci principal-type e principal-email con il tipo di entità e l'indirizzo email dell'entità. Sostituisci role-name con il nome del ruolo da rimuovere.
Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag --help.
C#
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# di Cloud KMS.
Go
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
PHP
Per eseguire questo codice, devi innanzitutto scoprire come utilizzare PHP su Google Cloud e installare l'SDK PHP di Cloud KMS.
Python
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
Visualizzazione delle autorizzazioni per una risorsa
Per visualizzare i criteri IAM per una chiave Cloud KMS:
gcloud
Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.
gcloud kms keys get-iam-policy key \
--keyring key-ring \
--location location
Sostituisci key con il nome della chiave. Sostituisci key-ring con il nome della chiave automatizzata in cui si trova la chiave. Sostituisci location con la località di Cloud KMS per la chiave automatizzata.
Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag --help.
C#
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# di Cloud KMS.
Go
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Cloud KMS.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java di Cloud KMS.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Cloud KMS.
PHP
Per eseguire questo codice, devi innanzitutto scoprire come utilizzare PHP su Google Cloud e installare l'SDK PHP di Cloud KMS.
Python
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Cloud KMS.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Cloud KMS.
Principio del privilegio minimo
Per applicare il principio del privilegio minimo, concedi il set di autorizzazioni più limitato all'oggetto più basso nella gerarchia delle risorse.
Per concedere a un'entità le autorizzazioni per criptare (ma non decriptare) i dati, concedi il ruolo
roles/cloudkms.cryptoKeyEncryptersulla chiave.Per concedere a un'entità le autorizzazioni per criptare e decriptare i dati, concedi il ruolo
roles/cloudkms.cryptoKeyEncrypterDecryptersulla chiave.Per concedere a un'entità le autorizzazioni per verificare (ma non firmare) i dati, concedi il ruolo
roles/cloudkms.publicKeyViewersulla chiave.Per concedere a un'entità le autorizzazioni per firmare e verificare i dati, concedi il ruolo
roles/cloudkms.signerVerifiersulla chiave.Per concedere a un'entità le autorizzazioni per gestire una chiave, concedi il ruolo
roles/cloudkms.adminsulla chiave.
Non si tratta di un elenco esaustivo. Per un elenco completo di autorizzazioni e ruoli, consulta Autorizzazioni e ruoli di Cloud KMS.
Gerarchia ed ereditarietà
Le associazioni di criteri possono essere specificate per il progetto, la chiave automatizzata, la chiave, il job di importazione e altre risorse di Cloud KMS.
Poiché le chiavi appartengono alle chiavi automatizzate e le chiavi automatizzate appartengono ai progetti, un'entità con un ruolo o un'autorizzazione specifica a un livello superiore di questa gerarchia eredita le stesse autorizzazioni sulle risorse secondarie. Ciò significa che un utente con il ruolo di owner in un progetto è anche owner di tutte le chiavi automatizzate e le chiavi del progetto. Allo stesso modo, se a un utente viene concesso il ruolo cloudkms.admin su una chiave automatizzata, dispone delle autorizzazioni associate su tutte le chiavi della chiave automatizzata.
L'inverso non è vero, ovvero un utente che dispone di un'autorizzazione su una chiave ma non sull'elemento principale della chiave automatizzata non ha autorizzazioni su quella chiave automatizzata.
Passaggi successivi
- Scopri di più su Autorizzazioni e ruoli in Cloud KMS.
- Crea una chiave.
- Cripta e decripta i dati.