Controllare l'eliminazione delle versioni delle chiavi

Google Cloud offre due vincoli dei criteri dell'organizzazione per impostare la policy di eliminazione delle versioni delle chiavi in un'organizzazione:

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

Prima di iniziare

Le istruzioni riportate 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 risorsa cartella o progetto all'interno della tua organizzazione.

Ruoli obbligatori

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

Questo ruolo predefinito contiene le autorizzazioni necessarie per gestire le norme dell'organizzazione. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per gestire le policy 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 ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Richiedere una durata minima pianificata per l'eliminazione

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

Utilizza valori più elevati per questo vincolo 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 inferiori per questo vincolo quando l'eliminazione indesiderata delle chiavi sarebbe meno dannosa, ad esempio per gli ambienti di sviluppo o test. Puoi anche utilizzare valori inferiori per consentire la distruzione crittografica tempestiva. Tuttavia, in quanto valore minimo, questo vincolo non può garantire che le nuove chiavi vengano create con durate pianificate per l'eliminazione brevi.

Per richiedere una durata minima pianificata per l'eliminazione:

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

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

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

    Puoi anche visualizzare la policy 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 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 la policy sull'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 dello stato pianificata 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 le norme attualmente in vigore utilizzando describe --effective. Questo comando restituisce il criterio dell'organizzazione così come viene valutato a questo punto della gerarchia delle risorse con l'ereditarietà 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, viene ereditato da tutte le risorse secondarie che consentono l'ereditarietà.

Richiedere la disattivazione delle chiavi prima della distruzione

Il vincolo Limita l'eliminazione delle chiavi alle chiavi disattivate (constraints/cloudkms.disableBeforeDestroy) ti consente di richiedere che una chiave sia stata disattivata prima di poter pianificare la sua eliminazione. La disattivazione di una chiave prima della sua eliminazione è una best practice consigliata perché consente di verificare che la chiave non sia in uso. Puoi combinare questo vincolo con criteri Identity and Access Management accurati per creare un processo di eliminazione in più passaggi 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 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 in stato disattivato prima di poter pianificare la sua eliminazione, segui questi passaggi:

gcloud

  1. Ottieni la policy attuale sulla 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 unico della risorsa organizzazione. L'ID organizzazione è formattato come numeri decimali e non può avere zeri iniziali.

    Puoi anche visualizzare la policy 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 corrente, 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 la policy sull'organizzazione utilizzando il comando set-policy. Questo comando sovrascrive qualsiasi criterio già collegato 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 unico della risorsa organizzazione.

    2. Esegui il comando set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Visualizza le norme attualmente in vigore utilizzando describe --effective. Questo comando restituisce il criterio dell'organizzazione così come viene valutato a questo punto della gerarchia delle risorse con l'ereditarietà 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 secondarie che consentono l'ereditarietà.

Passaggi successivi