Limitare i workload GKE con privilegi nelle organizzazioni

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

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

Come funziona il controllo dell'ammissione di carichi di lavoro con privilegi per le organizzazioni

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

Per impostazione predefinita, Cloud de Confiance le organizzazioni consentono agli amministratori della piattaforma di configurare i cluster in modo che ammettano le liste consentite dei partner GKE e dei progetti open source verificati. Se la tua organizzazione ha requisiti di sicurezza per limitare i carichi di lavoro 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 di liste consentite 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 specificata, l'operazione non riesce.

Le policy dell'organizzazione da configurare dipendono dal caso d'uso, come indicato di seguito:

Prima di iniziare

  1. Enable the Resource Manager API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. Se i tuoi team hanno liste consentite per i carichi di lavoro 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 Amministratore policy dell'organizzazione (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 che definisci 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 non sono presenti cluster Standard nell'ambiente, possono essere eseguiti solo i carichi di lavoro 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 carichi di lavoro con privilegi approvati, seleziona una delle seguenti opzioni:

Console

  1. Nella Cloud de Confiance console, 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 Esegui override della policy della risorsa padre.

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

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

  7. Per controllare se è possibile installare le liste consentite approvate da GKE:

    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:

      • Vero: 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 per eseguire 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 alcuna lista consentita 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:

    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 delle origini delle liste consentite. Per saperne di più su cosa puoi specificare, consulta Percorsi delle liste consentite.
    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 forzata 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 Cloud de Confiance risorsa. 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 le liste consentite approvate da GKE. Specifica uno dei seguenti valori:

      • True: consente la configurazione del cluster con qualsiasi carico di lavoro dei partner GKE o carichi di lavoro open source verificati. 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 delle liste consentite.

    (Facoltativo) 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 dryRunSpec valore per il --update-mask flag 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. (Facoltativo) Per testare l'impatto dell'applicazione forzata di questa policy dell'organizzazione, utilizza il gcloud policy-intelligence simulate org-policy comando:

    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 in aggiunta a creare una policy dell'organizzazione per le liste consentite, perché i cluster Standard possono eseguire la maggior parte dei carichi di lavoro con privilegi. Consentire solo i cluster Autopilot significa che nel tuo ambiente vengono eseguiti solo i carichi di lavoro 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 Cloud de Confiance console, 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 forzata, segui questi passaggi:

      1. Nell'elenco Tipo di risorsa, seleziona container.googleapis.com/Cluster.
      2. Nell'elenco Metodo di applicazione forzata, seleziona Applicazione forzata alla 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 Esegui override della policy della risorsa padre.
    4. Fai clic su Aggiungi una regola.
    5. Nella sezione Applicazione forzata, seleziona On.
    6. Per testare l'impatto dell'applicazione forzata 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: l'ID della tua 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 Cloud de Confiance risorsa. Deve corrispondere a uno dei seguenti valori:

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

      (Facoltativo) 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 dryRunSpec valore per il --update-mask flag 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 forzata di questa policy dell'organizzazione, utilizza il gcloud policy-intelligence simulate org-policy comando:

      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