Controllo dell'accesso con IAM

Questa pagina descrive i ruoli IAM per Certificate Authority Service.

CA Service utilizza i ruoli IAM (Identity and Access Management) per controllo dell'accesso. Con IAM, controlli l'accesso definendo chi (identità) ha quale accesso (ruolo) a quale risorsa. I ruoli IAM contengono un insieme di autorizzazioni che consentono agli utenti di eseguire azioni specifiche sulle risorse. Google CloudSe segui il principio del privilegio minimo durante la concessione dei ruoli IAM, puoi proteggere l'integrità delle risorse di Certificate Authority Service e gestire la sicurezza del pool di CA e dell'infrastruttura a chiave pubblica (PKI) complessiva.

Per scoprire come assegnare ruoli IAM a un utente o a un account di servizio, leggi Concessione, modifica e revoca dell'accesso alle risorse nella documentazione IAM.

Ruoli predefiniti

La tabella seguente elenca i ruoli IAM predefiniti e le autorizzazioni associate a ciascuno di essi:

Ruolo Autorizzazioni Descrizione
CA Service Auditor
roles/privateca.auditor
privateca.caPools.get
privateca.caPools.getIamPolicy
privateca.caPools.list
privateca.certificateAuthorities.list
privateca.certificateAuthorities.get
privateca.certificateTemplates.get
privateca.certificateTemplates.getIamPolicy
privateca.certificateTemplates.list
privateca.certificates.list
privateca.certificates.get
privateca.locations.get
privateca.locations.list
privateca.operations.get
privateca.operations.list
privateca.certificateRevocationLists.list
privateca.certificateRevocationLists.get
privateca.certificateRevocationLists.getIamPolicy
resourcemanager.projects.get
resourcemanager.projects.list
Il ruolo Auditor del servizio CA ha accesso in sola lettura a tutte le risorse del servizio CA e può recuperare ed elencare le proprietà del pool di CA, della CA, dei certificati, degli elenchi di revoca, delle policy IAM e dei progetti. Ti consigliamo di assegnare questo ruolo a persone responsabili della convalida della sicurezza e delle operazioni del pool di CA e che non hanno responsabilità quotidiane assegnate per amministrare il servizio.
CA Service Certificate Requester
roles/privateca.certificateRequester
privateca.certificates.create Un ruolo CA Service Certificate Requester può inviare richieste di certificato a un pool di CA. Ti consigliamo di concedere questo ruolo a persone di fiducia autorizzate a richiedere certificati.

Un utente con questo ruolo può richiedere certificati arbitrari in base alle norme di emissione.

A differenza del ruolo Gestione certificati del servizio CA, questo ruolo non consente all'utente di ottenere o elencare il certificato appena emesso né di ottenere informazioni sul pool di CA.
CA Service Workload Certificate Requester
roles/privateca.workloadCertificateRequester
privateca.certificates.createForSelf Un CA Service Workload Certificate Requester può richiedere certificati al servizio CA con l'identità del chiamante.
CA Service Certificate Manager
roles/privateca.certificateManager
Tutte le autorizzazioni di roles/privateca.auditor, più:
privateca.certificates.create
Un gestore dei certificati del servizio CA può inviare richieste di emissione di certificati a un pool di CA come CA Service Certificate Requester. Inoltre, questo ruolo eredita anche le autorizzazioni del ruolo Auditor del servizio CA. Ti consigliamo di assegnare questo ruolo alle persone responsabili della creazione, del monitoraggio e della revisione delle richieste di certificati in un pool di CA, ad esempio un manager o un ingegnere responsabile.
CA Service Certificate Template User
roles/privateca.templateUser
privateca.certificateTemplates.get
privateca.certificateTemplates.list
privateca.certificateTemplates.use
Un utente con il ruolo CA Service Certificate Template User può leggere, elencare e utilizzare i modelli di certificato.
Responsabile operativo servizio CA
roles/privateca.caManager
Tutte le autorizzazioni di roles/privateca.auditor, più:
privateca.certificates.update
privateca.caPools.create
privateca.caPools.delete
privateca.caPools.update
privateca.certificateAuthorities.create
privateca.certificateAuthorities.delete
privateca.certificateAuthorities.update
privateca.certificateRevocationLists.update
privateca.certificateTemplates.create
privateca.certificateTemplates.delete
privateca.certificateTemplates.update
privateca.certificates.update
privateca.operations.cancel
privateca.operations.delete
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.create
Un Operation Manager del servizio CA può creare, aggiornare ed eliminare pool di CA e CA. Questo ruolo può anche revocare i certificati e creare bucket Cloud Storage. Include anche le stesse funzionalità dell'auditor del servizio CA. In questo ruolo, le persone sono responsabili della configurazione e del deployment dei pool di CA nell'organizzazione, nonché della configurazione della policy di emissione del pool di CA.

Questo ruolo non consente la creazione di certificati. Per farlo, utilizza i ruoli CA Service Certificate Requester, CA Service Certificate Manager o Amministratore servizio CA.
CA Service Pool Reader
roles/privateca.poolReader
privateca.caPools.get Un utente con il ruolo CA Service Pool Reader può leggere i pool di CA nel servizio CA.
CA Service Admin
roles/privateca.admin
Tutte le autorizzazioni di roles/privateca.certificateManager, e roles/privateca.caManager, più:

privateca.*.setIamPolicy
privateca.caPools.use
privateca.operations.cancel
privateca.operations.delete
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.create
Il ruolo Amministratore di servizio CA eredita le autorizzazioni dai ruoli Responsabile delle operazioni del servizio CA e Gestore certificati servizio CA. Questo ruolo può eseguire tutte le azioni all'interno del servizio CA. Un amministratore del servizio CA può impostare le policy IAM per il pool di CA e creare bucket Cloud Storage. Ti consigliamo di assegnare questo ruolo raramente una volta stabilito il servizio. In questo ruolo, gli utenti possono svolgere tutti gli aspetti dell'amministrazione, inclusa l'assegnazione dei diritti ad altri e la gestione delle richieste di certificati in CA Service. Ti consigliamo di implementare un controllo speciale e l'accesso a questo account ruolo per impedire l'accesso o l'utilizzo non autorizzati.

Ruolo service agent del servizio CA

Quando fornisci chiavi Cloud KMS o bucket Cloud Storage esistenti, all'account di servizio dell'agente di servizio CA Service (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) deve essere concesso l'accesso alla risorsa corrispondente.

Per Cloud KMS, roles/cloudkms.signerVerifier è necessario per utilizzare la chiave di firma e leggere la chiave pubblica. roles/viewer è necessario per monitorare la chiave per l'integrazione di Cloud Monitoring.

Per le chiavi di crittografia gestite dal cliente (CMEK) utilizzate per criptare i dati at-rest, è necessario il ruolo roles/cloudkms.cryptoKeyEncrypterDecrypter. Ciò consente all'agente di servizio di criptare e decriptare i dati at-rest.

Per Cloud Storage, roles/storage.objectAdmin è necessario per scrivere il certificato CA e gli elenchi di revoche dei certificati (CRL) in un bucket. roles/storage.legacyBucketReader è necessario per monitorare il bucket per l'integrazione di Cloud Monitoring. Per maggiori informazioni, consulta Ruoli IAM per Cloud Storage.

Quando accedi al servizio tramite l'API, esegui i seguenti comandi.

  1. Crea un account di servizio con il ruolo Service Agent.

    gcloud

    gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_ID
    

    Dove:

    • PROJECT_ID è l'identificatore univoco del progetto in cui viene creato il pool di CA.
  2. Concedi al account di servizio i ruoli richiesti utilizzando il seguente comando gcloud.

    Se vengono fornite chiavi Cloud KMS esistenti:

    gcloud

    Per le chiavi di firma Cloud KMS:

      gcloud kms keys add-iam-policy-binding 'KEY_NAME' \
        --keyring='KEYRING_NAME' \
        --location='LOCATION' \
        --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \
        --role='roles/cloudkms.signerVerifier'
    
      gcloud kms keys add-iam-policy-binding 'KEY_NAME' \
        --keyring='KEYRING_NAME' \
        --location='LOCATION' \
        --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \
        --role='roles/viewer'
    

    Per le chiavi di crittografia Cloud KMS:

      gcloud kms keys add-iam-policy-binding 'KEY_NAME' \
        --keyring='KEYRING_NAME' \
        --location='LOCATION' \
        --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \
        --role='roles/cloudkms.cryptoKeyEncrypterDecrypter'
    

    Dove:

    • "KEY_NAME" è il nome della chiave.
    • "KEYRING_NAME" è il nome del tuo keyring.
    • "LOCATION" è la posizione di Cloud KMS in cui hai creato le chiavi automatizzate.
    • "PROJECT_NUMBER" è il numero di progetto del progetto Google Cloud che contiene la chiave.
  3. Concedi al tuo account di servizio i ruoli roles/storage.objectAdmin e roles/storage.legacyBucketReader utilizzando il seguente comando gcloud.

    Se vengono forniti bucket Cloud Storage esistenti:

    gcloud

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
      --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \
      --role=roles/storage.objectAdmin
    

    Dove:

    • BUCKET_NAME è il nome del tuo bucket Cloud Storage.
    • PROJECT_NUMBER è l'identificatore univoco del tuo account di servizio.
    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
      --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \
      --role=roles/storage.legacyBucketReader
    

Autorizzazioni API

La tabella seguente elenca le autorizzazioni di cui il chiamante deve disporre per chiamare ciascun metodo dell'API CA Service:

Autorizzazione Descrizione
privateca.caPools.create Crea un pool di autorità di certificazione (CA).
privateca.caPools.update Aggiorna un pool di CA.
privateca.caPools.list Elenca i pool di CA in un progetto.
privateca.caPools.get Recupera un pool di CA.
privateca.caPools.delete Elimina un pool di CA.
privateca.caPools.use Utilizza un pool di CA.
privateca.caPools.getIamPolicy Recupera il criterio IAM del pool di CA.
privateca.caPools.setIamPolicy Imposta un criterio IAM per il pool di CA.
privateca.certificateAuthorities.create Crea una CA.
privateca.certificateAuthorities.delete Pianifica l'eliminazione di una CA.
privateca.certificateAuthorities.get Ottieni una richiesta di firma di una CA o di un certificato CA.
privateca.certificateAuthorities.list Elenca le CA in un progetto.
privateca.certificateAuthorities.update Aggiorna una CA, incluse l'attivazione, l'abilitazione, la disattivazione e il ripristino.
privateca.certificates.create Richiesta di certificati al servizio CA.
privateca.certificates.createForSelf Richiesta di certificati al servizio CA con identità del chiamante.
privateca.certificates.get Recupera un certificato e i relativi metadati.
privateca.certificates.list Elenca tutti i certificati in una CA.
privateca.certificates.update Aggiorna i metadati di un certificato, inclusa la revoca.
privateca.certificateRevocationLists.get Ottieni un elenco revoche certificati (CRL) in una CA.
privateca.certificateRevocationLists.getIamPolicy Recupera il criterio IAM per un elenco CRL.
privateca.certificateRevocationLists.list Elenca tutte le CRL in una CA.
privateca.certificateRevocationLists.setIamPolicy Imposta il criterio IAM per un elenco CRL.
privateca.certificateRevocationLists.update Aggiorna un elenco CRL.
privateca.certificateTemplates.create Crea un modello di certificato.
privateca.certificateTemplates.get Recupera un modello di certificato.
privateca.certificateTemplates.list Elenca tutti i modelli di certificato.
privateca.certificateTemplates.update Aggiorna un modello di certificato.
privateca.certificateTemplates.delete Elimina un modello di certificato.
privateca.certificateTemplates.getIamPolicy Recupera il criterio IAM per un modello di certificato.
privateca.certificateTemplates.setIamPolicy Imposta il criterio IAM per un modello di certificato.
privateca.certificateTemplates.use Utilizza un modello di certificato.
privateca.operations.cancel Annulla un'operazione a lunga esecuzione.
privateca.operations.delete Elimina un'operazione a lunga esecuzione.
privateca.operations.get Ottieni un'operazione a lunga esecuzione.
privateca.operations.list Elenca le operazioni a lunga esecuzione in un progetto.

Passaggi successivi