Controlla l'eliminazione della versione della chiave

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

  • constraints/cloudkms.minimumDestroyScheduledDuration viene utilizzato per impostare una lunghezza minima per la durata pianificata per l'eliminazione per le nuove chiavi all'interno dell'organizzazione.
  • constraints/cloudkms.disableBeforeDestroy viene utilizzato per richiedere che sia stata disabilitata una versione della chiave prima di poterne pianificare l'eliminazione.

Prima di iniziare

Le istruzioni in questa pagina presuppongono che tu abbia familiarità con l'utilizzo dei vincoli e che tu disponga delle risorse e dei ruoli richiesti.

Risorse richieste

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

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

Ruoli obbligatori

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

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

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 essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Richiedi una durata minima dell'eliminazione pianificata

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

Utilizza valori più alti per questo vincolo quando l'eliminazione di chiavi indesiderate sarebbe più dannosa, ad esempio per i dati di produzione soggetti ai requisiti di conservazione dei dati. Utilizza valori più bassi per questo vincolo quando l'eliminazione indesiderata delle chiavi sarebbe meno dannosa, ad esempio per ambienti di sviluppo o test. Puoi anche utilizzare valori più bassi per consentire la triturazione delle criptovalute tempestiva. Tuttavia, come valore minimo, questo vincolo non può garantire che nuove chiavi vengano create con durate di eliminazione pianificata basse.

Per richiedere una durata minima dell'eliminazione pianificata:

  1. Ottieni il criterio attuale nella risorsa dell'organizzazione utilizzando il comando describe. Questo comando restituisce il criterio applicato direttamente a questa risorsa:

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

    Sostituisci ORGANIZATION_ID con l'identificatore univoco della risorsa dell'organizzazione. L'ID organizzazione ha il formato di numeri decimali e non può avere zero iniziali.

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

    La risposta restituisce l'attuale criterio dell'organizzazione, 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 viene configurato 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 tutti i criteri attualmente associati 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 in giorni per lo stato pianificata per l'eliminazione delle chiavi in questa organizzazione. 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 a questo punto nella gerarchia delle risorse, con ereditarietà inclusa.

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

    L'output è simile al seguente:

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

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

Richiedi la disattivazione delle chiavi prima dell'eliminazione

Il vincolo Limita l'eliminazione della chiave alle chiavi disabilitate (constraints/cloudkms.disableBeforeDestroy) ti consente di richiedere che una chiave sia stata disabilitata prima di poterne pianificare l'eliminazione. La disattivazione di una chiave prima di eliminarla è una best practice consigliata perché consente di verificare che la chiave non sia in uso. Puoi combinare questo vincolo con un criterio di Identity and Access Management accurato per creare un processo di distruzione in più fasi che richiede la collaborazione di più ruoli.

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

Per richiedere che una chiave sia nello stato disabilitato prima di poter pianificare l'eliminazione, segui questi passaggi:

gcloud

  1. Ottieni il criterio attuale nella risorsa dell'organizzazione utilizzando il comando describe. Questo comando restituisce il criterio applicato direttamente a questa 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 ha il formato di numeri decimali e non può avere zero iniziali.

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

    La risposta restituisce l'attuale criterio dell'organizzazione, 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 viene configurato 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 tutti i criteri già associati 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 a questo punto nella gerarchia delle risorse, con ereditarietà inclusa.

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

    L'output è simile al seguente:

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

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

Passaggi successivi