Limitare i workload GKE con privilegi nelle organizzazioni

Puoi utilizzare le policy per controllare quali workload con privilegi possono essere eseguiti nei cluster Google Kubernetes Engine (GKE) della tua organizzazione Google Cloud . Questo documento mostra come utilizzare le policy per definire le origini dei workload approvate e applicare best practice per migliorare la security posture.

Questo documento è rivolto agli amministratori di identità e account che vogliono consentire l'esecuzione di workload con privilegi approvati solo in qualsiasi punto dell'organizzazione. Dovresti già avere familiarità con i concetti illustrati nelle seguenti pagine:

Come funziona il controllo di ammissione dei workload con privilegi per le organizzazioni

Per impostazione predefinita, GKE Autopilot applica un insieme di misure di sicurezza per i workload. L'unico modo per eseguire workload che violano questi vincoli è installare liste consentite per questi workload. Per installare una lista consentita da un'origine specifica, il cluster deve essere configurato in modo da ammettere liste consentite da quell'origine.

Per impostazione predefinita, le organizzazioni Google Cloud consentono agli amministratori della piattaforma di configurare i cluster in modo da ammettere le liste consentite dei partner GKE e dei progetti open source verificati. Se la tua organizzazione ha requisiti di sicurezza per limitare i workload con privilegi a un insieme esplicito di origini note, puoi utilizzare una policy dell'organizzazione per modificare il comportamento predefinito.

Quando applichi un elenco di origini della lista consentita approvate per la tua organizzazione, cartella o progetto, gli amministratori della piattaforma possono specificare solo queste origini quando creano o aggiornano i cluster Autopilot o Standard. Se un cluster viene creato o aggiornato con un'origine non approvata, l'operazione non va a buon fine.

Le policy dell'organizzazione da configurare dipendono dal caso d'uso, come segue:

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment di workload.
  2. Enable the Resource Manager API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

  3. Enable the Resource Manager API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

  4. Se i tuoi team hanno liste consentite per i workload con privilegi di loro proprietà, chiedi loro di fornirti i percorsi di queste liste consentite in Cloud Storage.

Ruoli e autorizzazioni richiesti

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

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Configura una policy dell'organizzazione per le liste consentite

Puoi controllare le origini approvate delle liste consentite per un'organizzazione, una cartella o un progetto creando o aggiornando una policy dell'organizzazione basata sul vincolo gestito constraints/container.managed.autopilotPrivilegedAdmission. Quando applichi questa policy dell'organizzazione, gli amministratori del cluster possono installare le liste consentite solo dalle origini definite nella policy.

Oltre a questi passaggi, ti consigliamo di applicare una policy dell'organizzazione che consenta l'esecuzione solo dei cluster Autopilot nel tuo ambiente. Quando nell'ambiente non sono presenti cluster Standard, possono essere eseguiti solo i workload con privilegi approvati. Per saperne di più, consulta la sezione Configura una policy dell'organizzazione per consentire solo i cluster Autopilot.

Per configurare una policy dell'organizzazione per le liste consentite dei workload con privilegi approvati, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Policy dell'organizzazione:

    Vai a Policy dell'organizzazione

  2. Nella tabella dei vincoli, individua il vincolo gestito container.managed.autopilotPrivilegedAdmission.

  3. Fai clic su Azioni > Modifica policy. Viene visualizzata la pagina Modifica policy.

  4. Nella sezione Origine policy, seleziona Override policy della risorsa padre.

  5. Nella sezione Regole, fai clic su Aggiungi una regola.

  6. Nella sezione Applicazione, seleziona On. Viene visualizzata la sezione Parametri.

  7. Per controllare se è possibile installare le liste consentite approvate da GKE, segui questi passaggi:

    1. Nel parametro allowAnyGKEPath, fai clic su Modifica. Viene visualizzato il riquadro Modifica valori parametro.
    2. Nella sezione Tipo di valore, seleziona Definito dall'utente.
    3. Nella sezione Valori definiti dall'utente, seleziona una delle seguenti opzioni:

      • True: gli amministratori possono configurare i cluster per eseguire le liste consentite da qualsiasi percorso che inizia con gke://. Questo è il valore predefinito.
      • False: gli amministratori possono configurare i cluster in modo che eseguano le liste consentite solo dai percorsi specificati nel parametro allowPaths della policy dell'organizzazione. Se non specifichi i percorsi nel parametro allowPaths, i cluster non possono eseguire liste consentite da nessuna origine.
    4. Fai clic su Salva. Il riquadro Modifica valori parametro si chiude.

  8. Per definire le liste consentite specifiche che possono essere installate, segui questi passaggi:

    1. Nel parametro allowPaths, fai clic su Modifica. Viene visualizzato il riquadro Modifica valori parametro.
    2. Nella sezione Tipo di valore, seleziona Definito dall'utente.
    3. Nella sezione Valori definiti dall'utente, specifica uno o più percorsi per le origini della lista consentita. Per saperne di più su cosa puoi specificare, consulta Percorsi della lista consentita.
    4. Fai clic su Salva. Il riquadro Modifica valori parametro si chiude.
    5. Nella sezione Modifica regola, fai clic su Fine.
  9. (Facoltativo) Per testare l'impatto dell'applicazione della policy dell'organizzazione, fai clic su Testa modifiche. Per saperne di più, consulta Testa le modifiche alla policy dell'organizzazione con Policy Simulator.

  10. Per applicare la policy in modalità dry run, fai clic su Imposta policy dry run.

  11. Dopo aver verificato che la policy dell'organizzazione funziona come previsto in modalità dry run, imposta la policy attiva facendo clic su Imposta policy.

L'applicazione delle modifiche alla policy dell'organizzazione può richiedere fino a 15 minuti.

gcloud

  1. Crea un file YAML che definisca la policy dell'organizzazione:

    name: RESOURCE_TYPE/RESOURCE_ID/policies/container.managed.autopilotPrivilegedAdmission
    spec:
      rules:
      - enforce: true
        parameters:
          allowAnyGKEPath: ALLOW_GKE_PATHS
          allowPaths:
          - ALLOWLIST1_PATH
          - ALLOWLIST2_PATH
    

    Sostituisci quanto segue:

    • RESOURCE_TYPE: il tipo di risorsaGoogle Cloud . Deve corrispondere a uno dei seguenti valori:

      • organizations
      • folders
      • projects
    • RESOURCE_ID: l'ID organizzazione, l'ID cartella o l'ID progetto.

    • ALLOW_GKE_PATHS: indica se consentire o meno le liste consentite approvate da GKE. Specifica uno dei seguenti valori:

      • True: consente la configurazione del cluster con qualsiasi workload partner di GKE o workload open source verificato. Questo è il valore predefinito.
      • False: consente la configurazione del cluster solo con i percorsi nel campo allowPaths.

    • ALLOWLIST1_PATH,ALLOWLIST2_PATH: il percorso delle liste consentite. Per saperne di più su cosa puoi specificare, consulta Percorsi della lista consentita.

    Facoltativamente, per rendere la policy dell'organizzazione condizionale su un tag, aggiungi un blocco condition al campo rules. Se aggiungi una regola condizionale a una policy dell'organizzazione, devi aggiungere almeno una regola non condizionale, altrimenti la policy non può essere salvata. Per saperne di più, consulta Impostazione di una policy dell'organizzazione con tag.

  2. Per impostare la policy dell'organizzazione in modalità dry run, specifica il valore dryRunSpec per il flag --update-mask nel comando gcloud org-policies set-policy:

    gcloud org-policies set-policy POLICY_FILEPATH \
        --update-mask=dryRunSpec
    

    Sostituisci POLICY_FILEPATH con il percorso del file YAML creato nel passaggio precedente.

  3. (Facoltativo) Per testare l'impatto dell'applicazione di questa policy dell'organizzazione, utilizza il comando gcloud policy-intelligence simulate org-policy:

    gcloud policy-intelligence simulate org-policy \
        --organization=ORGANIZATION_ID \
        --policy-path=POLICY_FILEPATH
    

    Sostituisci ORGANIZATION_ID con l'ID della tua organizzazione.

  4. Dopo aver verificato che la policy dell'organizzazione funziona come previsto in modalità dry run, imposta la policy attiva specificando il valore spec per il flag --update-mask nel comando gcloud org-policies set-policy:

    gcloud org-policies set-policy POLICY_FILEPATH \
        --update-mask=spec
    

    L'applicazione delle modifiche alla policy dell'organizzazione può richiedere fino a 15 minuti.

Configura una policy dell'organizzazione per consentire solo i cluster Autopilot

Questa sezione mostra come configurare una policy dell'organizzazione che consente solo i cluster Autopilot. Ti consigliamo di configurare questa policy oltre alla creazione di una policy dell'organizzazione per le liste consentite, perché i cluster Standard possono eseguire la maggior parte dei workload con privilegi. Se consenti solo i cluster Autopilot, il tuo ambiente esegue solo i workload con privilegi che consenti. I passaggi descritti in questa sezione sono facoltativi.

Per configurare questa policy, seleziona una delle seguenti opzioni:

Console

  1. Crea un vincolo personalizzato che consenta solo la creazione di cluster Autopilot:

    1. Nella console Google Cloud , vai alla pagina Policy dell'organizzazione:

      Vai a Policy dell'organizzazione

    2. Fai clic su Vincolo personalizzato. Viene visualizzata la pagina Crea vincolo personalizzato.

    3. Specifica un nome visualizzato e un ID univoco per il vincolo.

    4. Nella sezione Applicazione, segui questi passaggi:

      1. Nell'elenco Tipo di risorsa, seleziona container.googleapis.com/Cluster.
      2. Nell'elenco Metodo di applicazione, seleziona Applicazione al momento della creazione.
      3. Nella sezione Condizione, fai clic su Modifica condizione. Viene visualizzato il riquadro Aggiungi condizione.
      4. Specifica la seguente espressione:

        resource.autopilot.enabled == true
        
      5. Fai clic su Salva. Il riquadro Aggiungi condizione si chiude.

      6. Nella sezione Azione, seleziona Consenti.

    5. Fai clic su Crea vincolo.

  2. Crea una policy dell'organizzazione personalizzata che applichi il vincolo:

    1. Nella tabella dei vincoli, individua il vincolo personalizzato che hai creato nel passaggio precedente.
    2. Fai clic su Azioni > Modifica policy. Viene visualizzata la pagina Modifica policy.
    3. Nella sezione Origine policy, seleziona Override policy della risorsa padre.
    4. Fai clic su Aggiungi una regola.
    5. Nella sezione Applicazione, seleziona On.
    6. Per testare l'impatto dell'applicazione della policy dell'organizzazione, fai clic su Testa modifiche. Per saperne di più, consulta Testa le modifiche alla policy dell'organizzazione con Policy Simulator.
    7. Per applicare la policy in modalità dry run, fai clic su Imposta policy dry run.
    8. Dopo aver verificato che la policy dell'organizzazione funziona come previsto in modalità dry run, imposta la policy attiva facendo clic su Imposta policy.

    L'applicazione delle modifiche alla policy dell'organizzazione può richiedere fino a 15 minuti.

gcloud

  1. Crea un vincolo personalizzato che consenta solo la creazione di cluster Autopilot:

    1. Crea un file YAML che definisca il vincolo personalizzato:

      name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
      resourceTypes: container.googleapis.com/Cluster
      methodTypes:
      - CREATE
      condition: resource.autopilot.enabled == true
      actionType: ALLOW
      displayName: "Allow only Autopilot clusters"
      

      Sostituisci quanto segue:

      • ORGANIZATION_ID: ID organizzazione.
      • CONSTRAINT_NAME: un nome per il nuovo vincolo.
    2. Imposta il vincolo personalizzato:

      gcloud org-policies set-custom-constraint CONSTRAINT_FILEPATH
      

      Sostituisci CONSTRAINT_FILEPATH con il percorso del file YAML che hai creato nel passaggio precedente.

    Il vincolo personalizzato è disponibile per l'utilizzo in una policy dell'organizzazione.

  2. Crea una policy dell'organizzazione personalizzata che applichi il vincolo:

    1. Crea un file YAML che definisca la policy dell'organizzazione:

      name: RESOURCE_TYPE/RESOURCE_ID/policies/custom.CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
      

      Sostituisci quanto segue:

      • RESOURCE_TYPE: il tipo di risorsaGoogle Cloud . Deve corrispondere a uno dei seguenti valori:

        • organizations
        • folders
        • projects
      • RESOURCE_ID: l'ID dell'organizzazione, della cartella o del progetto.

      Facoltativamente, per rendere la policy dell'organizzazione condizionale su un tag, aggiungi un blocco condition al campo rules. Se aggiungi una regola condizionale a una policy dell'organizzazione, devi aggiungere almeno una regola non condizionale, altrimenti la policy non può essere salvata. Per saperne di più, consulta Impostazione di una policy dell'organizzazione con tag.

    2. Per impostare la policy dell'organizzazione in modalità dry run, specifica il valore dryRunSpec per il flag --update-mask nel comando gcloud org-policies set-policy:

      gcloud org-policies set-policy POLICY_FILEPATH \
          --update-mask=dryRunSpec
      

      Sostituisci POLICY_FILEPATH con il percorso del file YAML che hai creato nel passaggio precedente.

    3. Per testare l'impatto dell'applicazione di questa policy dell'organizzazione, utilizza il comando gcloud policy-intelligence simulate org-policy:

      gcloud policy-intelligence simulate org-policy \
          --organization=ORGANIZATION_ID \
          --policy-path=POLICY_FILEPATH
      

      Sostituisci ORGANIZATION_ID con l'ID della tua organizzazione.

    4. Dopo aver verificato che la policy dell'organizzazione funziona come previsto in modalità dry run, imposta la policy attiva specificando il valore spec per il flag --update-mask nel comando gcloud org-policies set-policy:

      gcloud org-policies set-policy POLICY_FILEPATH \
          --update-mask=spec
      

      L'applicazione delle modifiche alla policy dell'organizzazione può richiedere fino a 15 minuti.

Passaggi successivi