Creazione di un livello di accesso base

In questa pagina viene descritto in generale come creare livelli di accesso di base. Per creare livelli di accesso personalizzati e utilizzare la Modalità avanzata nella console Google Cloud, consulta Creazione di un livello di accesso personalizzato.

Questa pagina include implementazioni più mirate dei livelli di accesso. Vedi i seguenti esempi:

Prima di iniziare

Creare un livello di accesso di base

Console

Per creare un livello di accesso di base:

  1. Apri la pagina Gestore contesto accesso nella console Google Cloud.

    Apri la pagina Gestore contesto accesso

  2. Se richiesto, seleziona la tua organizzazione.

  3. Nella parte superiore della pagina Gestore contesto accesso, fai clic su Nuovo.

  4. Nel riquadro Nuovo livello di accesso:

    1. Nel campo Titolo livello di accesso, inserisci un titolo per il livello di accesso. Il titolo deve contenere al massimo 50 caratteri, iniziare con una lettera e contenere solo numeri, lettere, trattini bassi e spazi.

    2. Nella sezione Condizioni, fai clic sul pulsante Aggiungi per il tipo di attributo che vuoi aggiungere, poi specifica i valori da applicare all'attributo.

      Per un elenco completo degli attributi che puoi aggiungere, scopri di più sugli attributi del livello di accesso.

      Ad esempio, se vuoi che il livello di accesso consideri la provenienza di una richiesta all'interno della tua rete, devi selezionare l'attributo Subnet IP.

      Ripeti questo passaggio per aggiungere più attributi alla stessa condizione. Quando una condizione ha più attributi, tutti gli attributi devono essere soddisfatti dalla richiesta di accesso.

      Una condizione del livello di accesso può includere un valore per ciascun tipo di attributo. Alcuni attributi includono opzioni aggiuntive, tra cui l'attributo Device Policy.

      I livelli di accesso supportano condizioni basate sull'identità dell'utente. Tuttavia, per aggiungere identità a una condizione, devi creare o aggiornare il livello di accesso utilizzando gcloud CLI o l'API.

    3. Utilizza l'opzione Se la condizione è soddisfatta, restituisci per specificare se vuoi che la condizione richieda che una richiesta soddisfi tutti gli attributi specificati (TRUE) o se la richiesta deve soddisfare altri attributi diversi (FALSE).

      Ad esempio, se vuoi rifiutare le richieste da un determinato intervallo di indirizzi IP della tua rete, specifica l'intervallo di indirizzi IP utilizzando l'attributo Subnet IP, quindi imposta la condizione su FALSE.

    4. (Facoltativo) Fai clic su Aggiungi un'altra condizione per aggiungere un'altra condizione al livello di accesso e poi ripeti i due passaggi precedenti.

      Ad esempio, se vuoi negare l'accesso a un sottoinsieme di indirizzi IP all'interno di un intervallo di indirizzi IP più ampio, crea una nuova condizione, specifica l'intervallo di indirizzi IP del sottoinsieme per l'attributo Subnet IP e imposta la condizione in modo che restituisca FALSE.

      Ripeti questo passaggio per aggiungere più condizioni allo stesso livello di accesso.

    5. Se hai creato più di una condizione, utilizza Combina condizione con per specificare se vuoi che il livello di accesso richieda che una richiesta soddisfi almeno una delle condizioni (OR) o tutte le condizioni (AND).

    6. Fai clic su Salva.

gcloud

Prima di iniziare

Per creare un livello di accesso con lo strumento a riga di comando gcloud, utilizza il comando gcloud access-context-manager levels create.

gcloud access-context-manager levels create LEVEL_NAME OPTIONS \
    --policy=POLICY

Dove:

  • LEVEL_NAME è il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi. Il nome può contenere un massimo di 50 caratteri.

  • OPTIONS sono le opzioni obbligatorie della tabella seguente.

    Opzioni
    basic-level-spec

    Un file YAML che specifica una o più condizioni per il livello di accesso.

    title

    Un breve titolo per il livello di accesso. Il titolo del livello di accesso viene visualizzato nella console Google Cloud.

    combine-function

    (Facoltativo) Determina il modo in cui vengono combinate le condizioni.

    Valori validi: AND, OR

    description

    (Facoltativo) Una descrizione estesa del livello di accesso.

  • POLICY è l'ID del criterio di accesso della tua organizzazione. Se hai impostato un criterio predefinito, questo parametro è facoltativo.

Facoltativamente, puoi includere uno qualsiasi dei flag gcloud-wide.

file YAML con specifiche di base

Quando utilizzi lo strumento a riga di comando gcloud per creare un livello di accesso, devi fornire un file YAML per l'opzione basic-level-spec. Il file YAML definisce una o più condizioni per il livello di accesso. Le condizioni devono contenere almeno un attributo. Quando una condizione contiene più di un attributo, vengono combinati come un'operazione AND (tutti devono essere veri) o come un'operazione NAND (nessuno può essere vero), a seconda che l'attributo negate sia incluso nella condizione.

Per un elenco completo degli attributi che puoi includere nel file YAML, leggi informazioni sugli attributi del livello di accesso.

Per saperne di più sui livelli di accesso e YAML, consulta la pagina JavaScript di esempio per un livello di accesso.

Comando di esempio

gcloud access-context-manager levels create Device_Trust \
    --basic-level-spec=corpdevspec.yaml \
    --combine-function=AND \
    --description='Access level that conforms to corporate spec.' \
    --title='Device_Trust Extended' \
    --policy=1521580097614100

API

Prima di iniziare

Per creare un livello di accesso, chiama accessLevels.create.

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels

Dove:

  • POLICY è l'ID del criterio di accesso della tua organizzazione.

Corpo della richiesta

Il corpo della richiesta deve includere una risorsa AccessLevel che specifichi le condizioni per il nuovo livello di accesso. Ogni elemento Condition ha uno o più attributi che vengono valutati come operazione AND (tutti devono essere veri) o come operazione NAND (nessuno può essere vero) a seconda che il campo negate sia impostato su true. La valutazione risultante determina se la condizione è soddisfatta o meno.

Corpo della risposta

In caso di esito positivo, il corpo della risposta della chiamata contiene una risorsa Operation che fornisce dettagli sull'operazione POST.

Esempi di implementazioni

I seguenti esempi illustrano alcuni dei modi pratici in cui la tua organizzazione potrebbe voler implementare i livelli di accesso. Questi esempi presuppongono che la tua organizzazione abbia già un criterio di accesso.

Limitare l'accesso su una rete aziendale

Questo esempio descrive come creare una condizione del livello di accesso che consenta l'accesso solo da un intervallo specificato di indirizzi IP (ad esempio quelli all'interno di una rete aziendale).

Se limiti l'intervallo di indirizzi IP a cui viene concesso l'accesso, puoi rendere più difficile l'esfiltrazione dei dati per un utente malintenzionato all'interno o all'esterno dell'organizzazione.

Per questo esempio, supponiamo di voler creare un livello di accesso che consenta a un gruppo di revisori interni di accedere al servizio Cloud Logging per un progetto denominato sensitive-data. A tutti i dispositivi dei revisori vengono assegnati IP su una subnet compresa tra 203.0.113.0 e 203.0.113.127. Sai che alla subnet saranno assegnati altri dispositivi oltre a quelli utilizzati dai revisori.

Console

  1. Apri la pagina Gestore contesto accesso nella console Google Cloud.

    Apri la pagina Gestore contesto accesso

  2. Se richiesto, seleziona la tua organizzazione.

  3. Nella parte superiore della pagina Gestore contesto accesso, fai clic su Nuovo.

  4. Nel riquadro Nuovo livello di accesso, nella sezione Condizioni, fai clic su Aggiungi attributo, quindi su Subnet IP.

  5. Nella casella Subnet IP, inserisci uno o più intervalli IPv4 o IPv6 formattati come blocchi CIDR.

    In questo esempio, per limitare l'accesso solo ai revisori, devi inserire 203.0.113.0/25 nella casella Subnet IP.

  6. Fai clic su Salva.

gcloud

  1. Crea un file YAML per un livello di accesso che include uno o più intervalli IPv4 o IPv6 formattati come blocchi CIDR.

    In questo esempio, per limitare l'accesso solo ai revisori, devi inserire quanto segue nel file YAML:

    - ipSubnetworks:
      - 203.0.113.0/25
    
  2. Salva il file. In questo esempio, il file è denominato CONDITIONS.yaml.

  3. Crea il livello di accesso.

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY
    

    Dove:

    • NAME è il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.

    • TITLE è un titolo leggibile. Deve essere univoco del criterio.

    • POLICY è l'ID del criterio di accesso della tua organizzazione. Se hai impostato un criterio predefinito, questo parametro è facoltativo.

    Dovresti visualizzare un output simile al seguente:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. Sviluppa un corpo della richiesta per creare una risorsa AccessLevel che includa uno o più intervalli IPv4 o IPv6 formattati come blocchi CIDR.

    In questo esempio, per limitare l'accesso solo ai revisori, devi inserire quanto segue nel corpo della richiesta:

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "ipSubnetworks": [
             "203.0.113.0/25"
           ]
         }
       ]
     }
    }
    

    Dove:

    • NAME è il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.

    • TITLE è un titolo leggibile. Deve essere univoco del criterio.

  2. Crea il livello di accesso chiamando il numero accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
    

    Dove:

    • POLICY è l'ID del criterio di accesso della tua organizzazione.

Limita l'accesso in base agli attributi del dispositivo

Questo esempio descrive come creare un livello di accesso che consenta l'accesso solo ai dispositivi che soddisfano un insieme specificato di requisiti, come una determinata versione del sistema operativo.

Le informazioni sui dispositivi vengono fornite a Gestore contesto accesso tramite Verifica endpoint. Per determinare se concedere l'accesso, puoi verificare i seguenti criteri:

  • Il blocco schermo è attivo
  • La crittografia dello spazio di archiviazione è abilitata
  • Il dispositivo esegue un tipo e una versione del sistema operativo specificati

Per questo esempio, supponiamo che la tua organizzazione utilizzi solo macchine in cui è installato ChromeOS o Windows. Per aggiungere un livello di sicurezza, vuoi creare un livello di accesso che impedirà l'accesso a chiunque utilizzi altri sistemi operativi. Inoltre, per gestire i rischi, devi assicurarti che possano accedere solo alcune versioni dei sistemi operativi.

Console

  1. Apri la pagina Gestore contesto accesso nella console Google Cloud.

    Apri la pagina Gestore contesto accesso

  2. Se richiesto, seleziona la tua organizzazione.

  3. Nella parte superiore della pagina Gestore contesto accesso, fai clic su Nuovo.

  4. Nel riquadro Nuovo livello di accesso, nella sezione Condizioni, fai clic su Aggiungi attributo, quindi su Device Policy.

  5. Aggiungi gli attributi dei criteri relativi ai dispositivi:

    1. Fai clic su Aggiungi criterio di sistema operativo e quindi su Criterio Chrome OS.

    2. Nella casella Versione minima, inserisci la versione minima di Chrome OS che vuoi consentire.

    3. Ripeti i passaggi 1 e 2 per Criterio del sistema operativo Windows.

  6. Fai clic su Salva.

gcloud

  1. Crea un file YAML per un livello di accesso che include un criterio relativo ai dispositivi con vincoli del sistema operativo.

    In questo esempio, per consentire solo i dispositivi con una versione minima accettabile di ChromeOS e Windows, devi inserire quanto segue nel file YAML:

    - devicePolicy:
        osConstraints:
          - osType: DESKTOP_CHROME_OS
            minimumVersion: 11316.165.0
          - osType: DESKTOP_WINDOWS
            minimumVersion: 10.0.1809
    
  2. Salva il file. In questo esempio, il file è denominato CONDITIONS.yaml.

  3. Crea il livello di accesso.

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY
    

    Dove:

    • NAME è il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.

    • TITLE è un titolo leggibile. Deve essere univoco del criterio.

    • POLICY è l'ID del criterio di accesso della tua organizzazione. Se hai impostato un criterio predefinito, questo parametro è facoltativo.

    Dovresti visualizzare un output simile al seguente:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. Genera il corpo di una richiesta per creare una risorsa AccessLevel che includa un criterio relativo ai dispositivi con vincoli di sistema operativo.

    In questo esempio, per consentire solo i dispositivi con una versione minima accettabile di ChromeOS e Windows, devi inserire quanto segue nel corpo della richiesta:

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "devicePolicy": {
             "osConstraints": [
               {
                 "osType": "DESKTOP_CHROME_OS",
                 "minimumVersion": "11316.165.0"
               },
               {
                 "osType": "DESKTOP_WINDOWS",
                 "minimumVersion": "10.0.1809"
               }
             ]
           {
         }
       ]
     }
    }
    

    Dove:

    • NAME è il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.

    • TITLE è un titolo leggibile. Deve essere univoco del criterio.

  2. Crea il livello di accesso chiamando il numero accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
    

    Dove:

    • POLICY è l'ID del criterio di accesso della tua organizzazione.

Concedi l'accesso in base all'utente o all'account di servizio

La concessione dell'accesso in base all'identità è spesso utile in combinazione con gli account di servizio, ad esempio per consentire a una Cloud Function di accedere ai dati.

Questo esempio descrive come concedere l'accesso a utenti e account di servizio specifici, includendo al contempo i livelli di accesso esistenti per mostrare un esempio di livelli di accesso nidificati. In questo caso, gli utenti specificati vengono inclusi in questo livello di accesso indipendentemente dal fatto che soddisfino le condizioni specificate nei livelli di accesso esistenti. Questo nuovo livello di accesso potrebbe essere considerato come un livello meno restrittivo rispetto ai livelli di accesso esistenti.

Console

Al momento la console Google Cloud non supporta l'aggiunta di entità ai livelli di accesso. Se vuoi aggiungere entità ai livelli di accesso, devi utilizzare lo strumento a riga di comando gcloud o l'API.

gcloud

  1. Crea un file YAML contenente una condizione che elenca le entità a cui vuoi fornire l'accesso.

    In questo esempio, vuoi aggiungere l'amministratore di sistema (sysadmin@example.com) e un account di servizio (service@project.iam.gserviceaccount.com).

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
  2. Aggiungi una condizione che elenca i livelli di accesso esistenti che vuoi includere in questo livello di accesso.

    In questo esempio, supponiamo che i livelli di accesso siano denominati Device_Trust e IP_Trust e che 247332951433 sia il nome del criterio di accesso.

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
    - requiredAccessLevels:
        - accessPolicies/247332951433/accessLevels/Device_Trust
        - accessPolicies/247332951433/accessLevels/IP_Trust
    
  3. Salva il file. In questo esempio, il file è denominato CONDITIONS.yaml.

  4. Crea il livello di accesso utilizzando il comando create.

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --combine-function=OR \
       --policy=POLICY
    

    Dove:

    • NAME è il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.

    • TITLE è un titolo leggibile. Deve essere univoco del criterio.

    • POLICY è l'ID del criterio di accesso della tua organizzazione. Se hai impostato un criterio predefinito, questo parametro è facoltativo.

    • combine-function è impostato su OR. Il valore predefinito, AND, richiede che vengano soddisfatte tutte le condizioni prima di concedere un livello di accesso. Il valore OR concede alle entità l'accesso anche se non vengono soddisfatte altre condizioni.

    Dovresti visualizzare un output simile al seguente:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. Sviluppa il corpo di una richiesta per creare una risorsa AccessLevel che includa una condizione che elenca le entità a cui vuoi fornire l'accesso.

    In questo esempio, vuoi aggiungere l'amministratore di sistema (sysadmin@example.com) e un account di servizio (service@project.iam.gserviceaccount.com).

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         }
       ]
     }
    }
    

    Dove:

    • NAME è il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.

    • TITLE è un titolo leggibile. Deve essere univoco del criterio.

  2. Aggiungi una condizione che elenca i livelli di accesso esistenti che vuoi includere in questo livello di accesso.

    In questo esempio, supponiamo che i livelli di accesso siano denominati Device_Trust e IP_Trust e che 247332951433 sia il nome del criterio di accesso.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ]
     }
    }
    
  3. Imposta combiningFunction su OR.

    Il valore predefinito di combiningFunction, AND, richiede che vengano soddisfatte tutte le condizioni prima che venga concesso un livello di accesso. Il valore OR concede alle entità l'accesso anche se non vengono soddisfatte altre condizioni, come l'indirizzo IP o quelle ereditate da altri livelli di accesso obbligatori.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ],
       "combiningFunction": "OR"
     }
    }
    
  4. Crea il livello di accesso chiamando il numero accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
    

    Dove:

    • POLICY è l'ID del criterio di accesso della tua organizzazione.