Richiesta di autorizzazione per l'attacco degli account di servizio alle risorse

Quando crei determinate risorse Google Cloud, hai la possibilità di collegare un account di servizio. L'account di servizio collegato funge da identità di tutti i job in esecuzione nella risorsa, consentendo ai job di autenticarsi alle API Google Cloud.

Per la maggior parte dei servizi Google Cloud, gli utenti devono disporre dell'autorizzazione per rubare l'identità di un account di servizio al fine di collegarlo a una risorsa. Ciò significa che l'utente deve disporre dell'autorizzazione iam.serviceAccounts.actAs per l'account di servizio.

Tuttavia, in passato alcuni servizi consentivano agli utenti di collegare account di servizio alle risorse anche se non disponevano dell'autorizzazione per simulare l'identità degli account di servizio. Questa configurazione potrebbe aver consentito agli utenti di questi servizi di ottenere autorizzazioni elevate e non evidenti.

Nella tabella seguente sono elencati i servizi che avevano questa configurazione, insieme al comportamento precedente di ciascun servizio:

Servizio Comportamento precedente
App Engine Gli utenti potevano eseguire il deployment di applicazioni App Engine che utilizzano l'identità dell'account di servizio predefinito di App Engine, anche se non disponevano dell'autorizzazione per simulare l'identità dell'account di servizio predefinito di App Engine.
Cloud Composer Gli utenti potevano collegare qualsiasi account di servizio del progetto a un ambiente Cloud Composer, anche se non disponevano dell'autorizzazione per simulare l'identità di uno degli account di servizio del progetto.
  • Cloud Data Fusion
  • Dataflow
  • Dataproc
Gli utenti potevano collegare l'account di servizio predefinito di Compute Engine alle risorse, anche se non disponevano dell'autorizzazione per simulare l'identità dell'account di servizio predefinito.

Ora richiediamo che questi servizi verifichino che gli utenti abbiano l'autorizzazione per appropriarsi di identità di account di servizio quando li collegano alle risorse. Tuttavia, il comportamento precedente è ancora valido per i seguenti tipi di organizzazioni:

  • Organizzazioni con utenti che dispongono dell'autorizzazione per eseguire il deployment di applicazioni App Engine, ma non dispongono dell'autorizzazione per rubare l'identità dell'account di servizio predefinito di App Engine.
  • Organizzazioni con utenti che dispongono dell'autorizzazione per eseguire il deployment di ambienti Cloud Composer, ma non dispongono dell'autorizzazione per impersonare account di servizio.
  • Organizzazioni con utenti che dispongono dell'autorizzazione per eseguire il deployment di risorse Cloud Data Fusion, Dataflow o Dataproc, ma non dispongono dell'autorizzazione per rubare l'identità dell'account di servizio predefinito di Compute Engine.

Se la tua organizzazione è ancora interessata dal comportamento precedente, hai ricevuto una comunicazione che spiega come disattivarlo manualmente. Per istruzioni dettagliate, puoi anche consultare le sezioni riportate di seguito.

Protezione di App Engine

Per disattivare manualmente il comportamento precedente per App Engine, assicurati che gli utenti abbiano l'autorizzazione per rubare l'identità dell'account di servizio App Engine. Poi, abilita un vincolo dei criteri dell'organizzazione per applicare i controlli delle autorizzazioni dell'account di servizio quando esegui il deployment di applicazioni che utilizzano l'identità dell'account di servizio predefinito di App Engine.

  1. (Facoltativo) Utilizza i suggerimenti per i ruoli per limitare in sicurezza le autorizzazioni per l'account di servizio predefinito di App Engine.

    All'account di servizio predefinito App Engine viene concesso automaticamente il ruolo Editor (roles/editor) altamente permissivo. Tuttavia, non consigliamo di utilizzare un ruolo così permissivo nelle configurazioni di produzione.

    .
  2. Assicurati che tutti gli utenti che eseguono il deployment delle applicazioni abbiano la possibilità di impersonare l'account di servizio predefinito di App Engine.

    Per fornire questa funzionalità, concedi agli utenti un ruolo che includa l'autorizzazione iam.serviceAccounts.actAs, ad esempio il ruolo Utente account di servizio (roles/iam.serviceAccountUser). Puoi concedere questo ruolo nel progetto o nel service account predefinito di App Engine. Per le istruzioni, vedi Gestire l'impersonificazione degli account di servizio.

  3. Attiva il vincolo del criterio dell'organizzazione constraints/appengine.enforceServiceAccountActAsCheck per applicare i controlli delle autorizzazioni degli account servizio durante il deployment delle applicazioni.

  4. (Facoltativo) Utilizza il controllore booleano dei criteri dell'organizzazione per verificare che il vincolo del criterio dell'organizzazione sia applicato in tutti i progetti.

Protezione di Cloud Composer

Per disattivare manualmente il comportamento precedente per Cloud Composer, assicurati che gli utenti dispongano dell'autorizzazione per rubare l'identità degli account di servizio che collegano ai nuovi ambienti. Poi, attiva un vincolo dei criteri dell'organizzazione per applicare i controlli delle autorizzazioni degli account di servizio quando colleghi gli account di servizio agli ambienti.

  1. Identifica tutti gli account di servizio associati agli ambienti Cloud Composer:

    1. Nella console Google Cloud, vai alla pagina Ambienti Composer.

      Vai alla pagina degli ambienti Composer

    2. Fai clic sul nome di un ambiente.

    3. Nella scheda Configurazione dell'ambiente, individua il campo Account di servizio e annota il nome dell'account di servizio.

    4. Ripeti i passaggi precedenti per tutti gli ambienti Cloud Composer nel progetto.

  2. Verifica che questi account di servizio rispettino il principio del privilegio minimo:

  3. Assicurati che tutti gli utenti che eseguono il deployment o gestiscono gli ambienti Cloud Composer abbiano la possibilità di rubare l'identità degli account di servizio utilizzati dagli ambienti.

    Per fornire questa funzionalità, concedi agli utenti un ruolo che includa l'autorizzazione iam.serviceAccounts.actAs, ad esempio il ruolo Utente account di servizio (roles/iam.serviceAccountUser). Puoi concedere questo ruolo al progetto o a un singolo account di servizio. Per le istruzioni, vedi Gestire l'impersonificazione degli account di servizio.

  4. Attiva il vincolo dei criteri dell'organizzazione constraints/composer.enforceServiceAccountActAsCheck per applicare i controlli delle autorizzazioni degli account di servizio quando colleghi gli account di servizio agli ambienti.

  5. (Facoltativo) Utilizza il controllore booleano dei criteri dell'organizzazione per verificare che il vincolo del criterio dell'organizzazione sia applicato in tutti i progetti.

Protezione di Dataproc, Dataflow e Cloud Data Fusion

Per disattivare manualmente il comportamento precedente per Dataproc, Dataflow e Cloud Data Fusion, assicurati che gli utenti abbiano l'autorizzazione per rubare l'identità degli account di servizio che collegano alle nuove risorse. Quindi, attiva i vincoli dei criteri dell'organizzazione per applicare i controlli delle autorizzazioni degli account di servizio quando colleghi gli account di servizio alle risorse.

Segui le istruzioni per il tipo di account di servizio che vuoi collegare alle nuove risorse:

  • Se vuoi interrompere l'associazione dell'account di servizio predefinito Compute Engine alle nuove risorse:

    1. Crea un nuovo account di servizio e concedi all'account di servizio i ruoli di cui ha bisogno per eseguire job sulla risorsa. Assicurati di seguire il principio del privilegio minimo.

      Per sapere quali ruoli sono necessari a un account di servizio per eseguire job sulle risorse Dataproc, Dataflow e Cloud Data Fusion, consulta quanto segue:

    2. Consenti a tutti gli utenti che eseguono il deployment di queste risorse di rubare l'identità del nuovo account di servizio.

      Per fornire questa funzionalità, concedi agli utenti un ruolo che includa l'autorizzazione iam.serviceAccounts.actAs, ad esempio il ruolo Utente account di servizio (roles/iam.serviceAccountUser). Puoi assegnare questo ruolo al progetto o all'account di servizio. Per le istruzioni, vedi Gestire l'impersonificazione degli account di servizio.

    3. Attiva i seguenti vincoli dei criteri dell'organizzazione per applicare i controlli delle autorizzazioni degli account di servizio quando li colleghi alle risorse:

      • constraints/dataflow.enforceComputeDefaultServiceAccountCheck
      • constraints/dataproc.enforceComputeDefaultServiceAccountCheck

      Il vincolo dei criteri dell'organizzazione constraints/dataproc.enforceComputeDefaultServiceAccountCheck inoltre applica i controlli delle autorizzazioni per Cloud Data Fusion.

    4. (Facoltativo) Utilizza il raccoglitore dei criteri dell'organizzazione booleano per verificare che i vincoli dei criteri dell'organizzazione vengano applicati in tutti i tuoi progetti.

    5. Quando esegui il deployment di nuove risorse, utilizza il nuovo account di servizio anziché l'account di servizio predefinito di Compute Engine.

  • Se vuoi continuare ad associare l'account di servizio predefinito Compute Engine a nuove risorse:

    1. (Facoltativo) Utilizza i suggerimenti per i ruoli per limitare in sicurezza le autorizzazioni per l'account di servizio predefinito di Compute Engine.

      All'account di servizio predefinito di Compute Engine viene concesso automaticamente il ruolo Editor (roles/editor) altamente permissivo. Tuttavia, non consigliamo di utilizzare un ruolo così permissivo nelle configurazioni di produzione.

    2. Assicurati che tutti gli utenti che eseguono il deployment di queste risorse abbiano la possibilità di impersonare l'account di servizio predefinito di Compute Engine.

      Per fornire questa funzionalità, concedi agli utenti un ruolo che includa l'autorizzazione iam.serviceAccounts.actAs, ad esempio il ruolo Utente account di servizio (roles/iam.serviceAccountUser). Puoi concedere questo ruolo nel progetto o nell'account di servizio predefinito di Compute Engine. Per le istruzioni, vedi Gestire l'impersonificazione degli account di servizio.

    3. Attiva i seguenti vincoli dei criteri dell'organizzazione per applicare i controlli delle autorizzazioni degli account di servizio quando colleghi gli account di servizio alle risorse:

      • constraints/dataflow.enforceComputeDefaultServiceAccountCheck
      • constraints/dataproc.enforceComputeDefaultServiceAccountCheck
    4. (Facoltativo) Utilizza il raccoglitore dei criteri dell'organizzazione booleano per verificare che i vincoli dei criteri dell'organizzazione vengano applicati in tutti i tuoi progetti.