Creazione di un livello di accesso base

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa pagina descrive in generale come creare livelli di accesso di base. Per creare livelli di accesso personalizzati e utilizzare la modalità avanzata in Google Cloud Console, consulta la sezione Creazione di un livello di accesso personalizzato.

Questa pagina include implementazioni più dettagliate 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 in Google Cloud Console.

    Apri la pagina Gestore contesto accesso

  2. Se ti viene richiesto, seleziona l'organizzazione.

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

  4. Nel riquadro Nuovo livello di accesso:

    1. Nella casella 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.

      Per impostazione predefinita, puoi creare condizioni in modalità di base. Se vuoi creare condizioni utilizzando la modalità avanzata, consulta la sezione Creare un livello di accesso personalizzato.

    2. Nella sezione Condizioni, utilizza l'opzione Combina condizioni per specificare se il livello di accesso richiede una richiesta per soddisfare tutte le condizioni di livello di accesso (AND) o solo una delle condizioni (OR).

    3. Nella sezione Condizioni, fai clic su Aggiungi attributo e seleziona l'attributo da aggiungere alla condizione.

      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 prenda in considerazione la provenienza di una richiesta dalla rete, seleziona 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.

    4. Utilizza l'opzione Quando la condizione è soddisfatta per specificare se il livello di accesso richiede che una richiesta soddisfi tutti gli attributi specificati (TRUE) o se la richiesta debba soddisfare qualsiasi elemento diverso da tali attributi (FALSE).

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

    5. Facoltativamente, fai clic su Aggiungi un'altra condizione per aggiungere una condizione aggiuntiva al livello di accesso e ripeti i due passaggi precedenti.

      Ad esempio, se vuoi negare l'accesso a un sottoinsieme di indirizzi IP in 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 per restituire FALSE.

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

    6. Fai clic su Salva

gcloud

Prima di iniziare

Per creare un livello di accesso utilizzando 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 al massimo 50 caratteri.

  • OPTIONS sono le opzioni richieste nella seguente tabella.

    Opzioni
    basic-level-spec

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

    title

    Un titolo breve per il livello di accesso. Il titolo del livello di accesso viene visualizzato in Google Cloud Console.

    combine-function

    (Facoltativo) Determina come vengono combinate le condizioni.

    Valori validi: AND, OR

    description

    (Facoltativo) Una descrizione lunga del livello di accesso.

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

Facoltativamente, puoi includere uno qualsiasi dei flag a livello di gcloud.

File .yaml di base-spec

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.

Per un elenco completo degli attributi che puoi includere nel file .yaml, leggi gli attributi del livello di accesso.

Per ulteriori informazioni sui livelli di accesso e YAML, consulta l'esempio di YAML 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=POLICY

Server

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 specifica le condizioni desiderate per il nuovo livello di accesso.

Corpo della risposta

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

Esempi di implementazioni

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

Limita l'accesso a una rete aziendale

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

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

Per questo esempio, supponiamo che tu voglia creare un livello di accesso che consenta a un gruppo di controllori interni di accedere al servizio Cloud Logging per un progetto denominato sensitive-data. A tutti i dispositivi dei controllori sono assegnati IP su una subnet compresa tra 203.0.113.0 e 203.0.113.127. Sai che non ci saranno dispositivi assegnati a tale subnet diversi da quelli utilizzati dai revisori.

console

  1. Apri la pagina Gestore contesto accesso in Google Cloud Console.

    Apri la pagina Gestore contesto accesso

  2. Se ti viene richiesto, seleziona l'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 e poi 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 controllori, inserisci quanto segue nel file .yaml:

    - ipSubnetworks:
      - 203.0.113.0/25
    
  2. Salva il file. In questo esempio il nome del file è 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 per il criterio.

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

    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.
    

Server

  1. Crea 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, inserisci 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 per il 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.

Limitare l'accesso in base agli attributi dei dispositivi

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 utilizzando la verifica endpoint. I seguenti criteri possono essere verificati per determinare se concedere l'accesso:

  • Blocco schermo abilitato
  • La crittografia dello spazio di archiviazione è abilitata
  • Sul dispositivo è in esecuzione un tipo e una versione del sistema operativo specificati

Per questo esempio, supponiamo che la tua organizzazione utilizzi solo macchine su cui è installato Chrome OS 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 il rischio, devi assicurarti che solo alcune versioni dei sistemi operativi possano accedere.

console

  1. Apri la pagina Gestore contesto accesso in Google Cloud Console.

    Apri la pagina Gestore contesto accesso

  2. Se ti viene richiesto, seleziona l'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 e poi su Criteri relativi ai dispositivi.

  5. Aggiungi gli attributi dei criteri relativi ai dispositivi:

    1. Fai clic su Aggiungi criterio di sistema operativo, quindi su Criterio di 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 il criterio del sistema operativo Windows.

  6. Fai clic su Salva.

gcloud

  1. Creare un file .yaml per un livello di accesso che include un criterio relativo ai dispositivi con limiti del sistema operativo.

    In questo esempio, per consentire solo i dispositivi con una versione minima accettabile di Chrome OS e Windows, inserisci 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 nome del file è 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 per il criterio.

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

    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.
    

Server

  1. Crea un corpo della richiesta per creare una risorsa AccessLevel che includa un criterio relativo ai dispositivi con vincoli del sistema operativo.

    In questo esempio, per consentire solo i dispositivi con una versione minima accettabile di Chrome OS e Windows, inserisci 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 per il 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.

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

Concedere l'accesso in base all'identità è spesso utile in combinazione con gli account di servizio. Ad esempio, abilitare una Funzione Cloud per accedere ai dati.

In questo esempio viene descritto come concedere l'accesso a utenti e account di servizio specifici che non soddisfano i criteri di altri livelli di accesso. In questo esempio, supponiamo che tu abbia un amministratore di sistema e un account di servizio che vuoi concedere l'accesso ai servizi di un progetto, indipendentemente dalle condizioni specificate in altri livelli di accesso.

console

Al momento Google Cloud Console 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 che non vuoi applicare alle entità. La negazione si ottiene impostando la funzione di combinazione su OR nel passaggio 4.

    In questo esempio, i livelli di accesso sono denominati Device_Trust e IP_Trust, e che 247332951433 è il nome del tuo 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 nome del file è Conditions.yaml.

  4. Crea il livello di accesso.

    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 per il criterio.

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

    • L'opzione combine-function è impostata su OR. Il valore predefinito, AND, richiede che siano soddisfatte tutte le condizioni prima che venga concesso un livello di accesso. Il valore OR dà accesso alle entità anche se non vengono soddisfatte altre condizioni, come l'indirizzo IP o quelle ereditate da altri livelli di accesso richiesti.

    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.
    

Server

  1. Crea un corpo della 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 per il criterio.

  2. Aggiungi una condizione che elenca i livelli di accesso che non vuoi applicare alle entità. La negazione si ottiene impostando la funzione di combinazione su OR nel passaggio successivo.

    In questo esempio, i livelli di accesso sono denominati Device_Trust e IP_Trust, e che 247332951433 è il nome del tuo 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 il valore di combiningFunction su OR.

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

    {
     "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.