Controllare l'eliminazione delle versioni delle chiavi

Google Cloud offre due vincoli dei criteri dell'organizzazione per impostare il criterio di distruzione delle versioni delle chiavi in un'organizzazione:

  • constraints/cloudkms.minimumDestroyScheduledDuration viene utilizzato per impostare lunghezza minima per la durata dell'eliminazione pianificata delle nuove chiavi all'interno dell'organizzazione.
  • constraints/cloudkms.disableBeforeDestroy viene utilizzato per richiedere che una versione della chiave sia stata disattivata prima che possa essere pianificata per l'eliminazione.

Prima di iniziare

Le istruzioni riportate in questa pagina presuppongono che tu abbia dimestichezza con l'utilizzo dei vincoli e che disponi delle risorse e dei ruoli richiesti.

Risorse richieste

Prima di poter completare i passaggi in questa pagina, devi disporre delle seguenti risorse:

  • Un'organizzazione.
  • (Facoltativo) Una risorsa di una cartella o di un progetto all'interno della tua organizzazione.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire i criteri dell'organizzazione, chiedi all'amministratore di concederti Ruolo IAM Amministratore criteri dell'organizzazione (roles/orgpolicy.policyAdmin) nell'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per gestire i criteri dell'organizzazione. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per gestire i criteri dell'organizzazione sono necessarie le seguenti autorizzazioni:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.

Richiede una durata minima per l'eliminazione pianificata

Il vincolo Durata pianificata minima dell'eliminazione per chiave (constraints/cloudkms.minimumDestroyScheduledDuration) viene utilizzato per impostare lunghezza minima per la durata pianificata per l'eliminazione delle nuove chiavi. Questo il vincolo sostituisce la durata minima pianificata per l'eliminazione alla a livello di progetto, cartella o organizzazione. Questo vincolo riduce la possibilità distruggere accidentalmente una chiave ancora necessaria. Puoi impostare questo vincolo su un valore più elevato per assicurarti di avere il tempo di impedire la distruzione della chiave prima che diventi irreversibile.

Utilizza valori più elevati per questa limitazione quando la distruzione indesiderata delle chiavi sarebbe più dannosa, ad esempio per i dati di produzione soggetti a requisiti di conservazione dei dati. Utilizza valori più bassi per questo vincolo in caso di distruzione indesiderata delle chiavi sarebbe meno dannoso, ad esempio per gli ambienti di sviluppo o test. Puoi anche utilizzare valori inferiori per consentire la crypto-shredding in tempo. Tuttavia, poiché è un valore minimo, questo vincolo non può garantire che vengano create nuove chiavi con durate pianificate per l'eliminazione ridotte.

Per richiedere una durata minima per l'opzione Prevista per l'eliminazione:

  1. Recupera il criterio corrente nella risorsa dell'organizzazione utilizzando il comando describe . Il comando restituisce il criterio applicato direttamente a questo risorsa:

    gcloud org-policies describe \
      constraints/cloudkms.minimumDestroyScheduledDuration \
      --organization=ORGANIZATION_ID
    

    Sostituisci ORGANIZATION_ID con l'identificatore univoco della risorsa dell'organizzazione. Organization ID (ID organizzazione) sia formattato come numeri decimali e non può avere zeri iniziali.

    Puoi anche visualizzare il criterio dell'organizzazione per una cartella o un progetto con i flag --folder o --project e l'ID cartella oppure ID progetto.

    La risposta restituisce il criterio dell'organizzazione corrente, se esistente. L'output è simile al seguente:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      etag: COTP+KYGELiCmsoB
      inheritFromParent: true
      rules:
      - values:
          allowedValues:
          - in:7d
      updateTime: '2023-08-17T14:00:04.424051Z'
    

    Se non è impostato un criterio, il comando describe restituisce un errore NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Imposta il criterio nell'organizzazione utilizzando il comando set-policy. Questo comando sovrascrive qualsiasi criterio attualmente associato alla risorsa.

    1. Crea un file temporaneo /tmp/policy.yaml per archiviare il criterio:

      name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
      spec:
        rules:
        - values:
            allowedValues:
            - in:MINIMUM_DURATION
      

      Sostituisci quanto segue:

      • ORGANIZATION_ID: l'ID numerico della tua organizzazione.
      • MINIMUM_DURATION: la durata minima per stato pianificato per l'eliminazione per le chiavi di questa organizzazione, in giorni. Deve essere uno dei seguenti valori: 7d, 15d, 30d, 60d, 90d o 120d.
    2. Esegui il comando set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Visualizza il criterio attualmente in vigore utilizzando describe --effective. Questo comando restituisce il criterio dell'organizzazione così come viene valutato in questo punto nella gerarchia delle risorse con l'eredità inclusa.

    gcloud org-policies describe \
      constraints/cloudkms.minimumDestroyScheduledDuration --effective \
      --organization=ORGANIZATION_ID
    

    L'output è simile al seguente:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      rules:
        - values:
            allowedValues:
            - 30d
            - 15d
            - 90d
            - 60d
            - 7d
            - 120d
    

    Poiché questo criterio dell'organizzazione è stato impostato a livello di organizzazione, ereditato da tutte le risorse figlio che consentono ereditarietà.

Richiedi la disattivazione delle chiavi prima dell'eliminazione

Il vincolo Limita l'eliminazione delle chiavi alle chiavi disabilitate (constraints/cloudkms.disableBeforeDestroy) ti consente di richiedere che una chiave sia stata disabilitata prima di poterne pianificare l'eliminazione. La disabilitazione di una chiave prima di distruggerla è una best practice consigliata ti aiuta a verificare che la chiave non sia in uso. Puoi combinare limitato con un attento criterio di Identity and Access Management per creare una che richiede la collaborazione di più ruoli.

Per utilizzare questo vincolo per creare un processo di distruzione in più passaggi, assicurati che nessun utente disponga sia delle autorizzazioni cloudkms.cryptoKeyVersions.update sia di quelle cloudkms.cryptoKeyVersions.destroy. Questo caso d'uso richiede l'utilizzo di ruoli personalizzati.

Per richiedere che una chiave sia disattivata prima di poterla pianificare la programmazione l'eliminazione, procedi nel seguente modo:

gcloud

  1. Ottieni il criterio attuale per la risorsa dell'organizzazione utilizzando describe . Il comando restituisce il criterio applicato direttamente a questo risorsa:

    gcloud org-policies describe \
      constraints/cloudkms.disableBeforeDestroy \
      --organization=ORGANIZATION_ID
    

    Sostituisci ORGANIZATION_ID con l'identificatore univoco della risorsa dell'organizzazione. L'ID organizzazione è formattato come numeri decimali e non può contenere zeri iniziali.

    Puoi anche visualizzare il criterio dell'organizzazione per una cartella o un progetto con i flag --folder o --project e l'ID cartella o l'ID progetto, rispettivamente.

    La risposta restituisce il criterio dell'organizzazione attuale, se esistente. L'output è simile al seguente:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy
    spec:
      etag: CPvY+KYGENDwgxA=
      rules:
      - enforce: true
      updateTime: '2023-08-17T14:19:39.033618Z'
    

    Se non è impostato un criterio, il comando describe restituisce un errore NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Imposta il criterio nell'organizzazione utilizzando il comando set-policy. Questo sovrascrive qualsiasi criterio già associato alla risorsa.

    1. Crea un file temporaneo /tmp/policy.yaml per archiviare il criterio:

      name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy
      spec:
        rules:
        - enforce: true
      

      Sostituisci ORGANIZATION_ID con l'identificatore univoco della risorsa dell'organizzazione.

    2. Esegui il comando set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Visualizza il criterio attualmente in vigore utilizzando describe --effective. Questo comando restituisce il criterio dell'organizzazione così come viene valutato in questo punto nella gerarchia delle risorse con l'eredità inclusa.

    gcloud org-policies describe \
      constraints/cloudkms.disableBeforeDestroy --effective \
      --organization=ORGANIZATION_ID
    

    L'output è simile al seguente:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      rules:
      - enforce: true
    

    Poiché questo criterio dell'organizzazione è stato impostato a livello di organizzazione, viene ereditato da tutte le risorse figlio che consentono ereditarietà.

Passaggi successivi