Gestisci i livelli di accesso

In questa pagina viene descritto come gestire i livelli di accesso esistenti. Puoi:

Prima di iniziare

  • Imposta la policy di accesso predefinita per l'utilizzo di Google Cloud CLI.

    -oppure-

    Recupera il nome della policy. Il nome della policy è obbligatorio per i comandi che utilizzano gcloud CLI e per effettuare chiamate API. Se imposti una policy di accesso predefinita, non è necessario specificare la policy per gcloud CLI.

  • Assicurati di disporre di un ruolo IAM (Identity and Access Management) a livello di organizzazione che ti consenta di gestire i livelli di accesso. Chiedi all'amministratore di concederti uno dei seguenti ruoli o un ruolo personalizzato con le stesse autorizzazioni:

Elenca i livelli di accesso

Console

Per elencare tutti i livelli di accesso, apri la pagina Gestore contesto accesso nella console Google Cloud e, se richiesto, seleziona la tua organizzazione. La pagina mostra i livelli di accesso della tua organizzazione in una griglia, inclusi i dettagli sulla configurazione di ciascun livello di accesso.

Apri la pagina Gestore contesto accesso

gcloud

Per elencare tutti i livelli di accesso, utilizza il comando list.

gcloud access-context-manager levels list \
  [--policy=POLICY_NAME]

Sostituisci quanto segue:

  • POLICY_NAME: il nome della policy di accesso della tua organizzazione. Questo valore è obbligatorio solo se non hai impostato una policy di accesso predefinita.

L'output è simile al seguente:

NAME             TITLE                  LEVEL_TYPE
Device_Trust     Device_Trust Extended  Basic
Service_Group_A  Service_Group_A        Basic

API

Per elencare tutti i livelli di accesso di una policy, chiama accessLevels.list.

GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels

Sostituisci quanto segue:

  • POLICY_NAME: il nome della policy di accesso della tua organizzazione.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Parametri facoltativi

Se vuoi, includi uno o più dei seguenti parametri di ricerca.

Parametri
pageSize

number

Per impostazione predefinita, l'elenco dei livelli di accesso restituito da accessLevels.list è impaginato. Ogni pagina è limitata a 100 livelli di accesso.

Puoi utilizzare questo parametro per modificare il numero di livelli di accesso restituiti per pagina.

pageToken

string

Se il numero di livelli di accesso restituiti dalla chiamata supera le dimensioni della pagina, il corpo della risposta include un token di pagina.

Puoi utilizzare questo parametro in una chiamata successiva per ottenere la pagina di risultati successiva.

accessLevelFormat

enum(LevelFormat)

In genere, i livelli di accesso vengono restituiti così come sono definiti, ovvero come BasicLevel o CustomLevel.

Puoi specificare il valore CEL per questo parametro per restituire BasicLevels come CustomLevels in Cloud Common Expression Language.

Corpo della risposta

In caso di esito positivo, il corpo della risposta alla chiamata contiene un oggetto AccessLevels che elenca i livelli di accesso e una stringa nextPageToken. nextPageToken ha un valore solo se il numero di livelli di accesso restituiti supera la dimensione della pagina. In caso contrario, nextPageToken viene restituito come stringa vuota.

Elenca i livelli di accesso (formattati)

Con gcloud CLI puoi ottenere un elenco dei tuoi livelli di accesso in formato YAML o JSON.

Per ottenere un elenco formattato dei livelli di accesso, utilizza il comando list.

gcloud access-context-manager levels list \
  --format=FORMAT \
  [--policy=POLICY_NAME]

Sostituisci quanto segue:

  • FORMAT: uno dei seguenti valori:

    • list (formato YAML)

    • json (formato JSON)

  • POLICY_NAME: il nome della policy di accesso della tua organizzazione. Questo valore è obbligatorio solo se non hai impostato una policy di accesso predefinita.

L'output YAML è simile al seguente:

- basic: {'conditions': [{'ipSubnetworks': ['192.0.2.0/24']}]}
  description: Level for corp access.
  name: accessPolicies/123456789012/accessLevels/corp_level
  title: Corp Level
- basic: {'combiningFunction': 'OR', 'conditions': [{'ipSubnetworks': ['192.0.2.0/24']}]}
  description: Level for net access.
  name: accessPolicies/123456789012/accessLevels/net_level
  title: Net Level

L'output JSON è simile al seguente:

[
  {
    "basic": {
      "conditions": [
        {
          "ipSubnetworks": [
            "192.0.2.0/24"
          ]
        }
      ]
    },
    "description": "Level for corp access.",
    "name": "accessPolicies/123456789012/accessLevels/corp_level",
    "title": "Corp Level"
  },
  {
    "basic": {
      "combiningFunction": "OR",
      "conditions": [
        {
          "ipSubnetworks": [
            "192.0.2.0/24"
          ]
        }
      ]
    },
    "description": "Level for net access.",
    "name": "accessPolicies/123456789012/accessLevels/net_level",
    "title": "Net Level"
  }
]

Descrivi un livello di accesso

Console

Se utilizzi la console Google Cloud , consulta i passaggi per elencare i livelli di accesso. Quando elenchi i livelli di accesso, i dettagli vengono forniti nella griglia visualizzata.

gcloud

L'elenco dei livelli di accesso fornisce solo il nome, il titolo e il tipo di livello. Per ottenere informazioni dettagliate su ciò che fa effettivamente un livello, utilizza il comando describe.

gcloud access-context-manager levels describe LEVEL_NAME \
    [--policy=POLICY_NAME]

Sostituisci quanto segue:

  • LEVEL_NAME: il nome del livello di accesso che vuoi descrivere.

  • POLICY_NAME: il nome della policy di accesso della tua organizzazione. Questo valore è obbligatorio solo se non hai impostato una policy di accesso predefinita.

Il comando stampa le informazioni sul livello formattate come YAML. Ad esempio, se il livello limita l'accesso a determinate versioni del sistema operativo, l'output è simile al seguente:

basic:
  conditions:
  - devicePolicy:
      allowedEncryptionStatuses:
      - ENCRYPTED
      osConstraints:
      - minimumVersion: 10.13.6
        osType: DESKTOP_MAC
      - minimumVersion: 10.0.18219
        osType: DESKTOP_WINDOWS
      - minimumVersion: 68.0.3440
        osType: DESKTOP_CHROME_OS
      requireScreenlock: true
name: accessPolicies/123456789012/accessLevels/Device_Trust
title: Device_Trust Extended

API

L'elenco dei livelli di accesso fornisce solo il nome, il titolo e il tipo dei livelli. Per ottenere informazioni dettagliate su un livello di accesso, chiama accessLevels.get.

GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME

Sostituisci quanto segue:

  • POLICY_NAME: il nome della policy di accesso della tua organizzazione.

  • LEVEL_NAME: il nome del livello di accesso che vuoi descrivere.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Parametri facoltativi

Se vuoi, includi il parametro di query accessLevelFormat. In genere, i livelli di accesso vengono restituiti così come sono definiti, come BasicLevel o CustomLevel.

Puoi specificare il valore CEL per questo parametro in modo da restituire BasicLevels come CustomLevels in Cloud Common Expression Language.

Corpo della risposta

In caso di esito positivo, il corpo della risposta alla chiamata contiene una risorsa AccessLevel che include dettagli su cosa fa il livello di accesso, l'ultima volta che è stato aggiornato e altro ancora.

Aggiorna un livello di accesso

Questa sezione descrive come aggiornare i singoli livelli di accesso. Per aggiornare tutti i livelli di accesso della tua organizzazione in un'unica operazione, vedi Modifica collettiva dei livelli di accesso.

Console

Per aggiornare un livello di accesso:

  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 griglia, fai clic sul nome del livello di accesso che vuoi aggiornare.

  4. Nel riquadro Modifica livello di accesso, apporta le modifiche al livello di accesso.

    Per un elenco completo degli attributi che puoi aggiungere o modificare, consulta Attributi dei livelli di accesso.

  5. Fai clic su Salva.

    Oltre ad aggiornare o rimuovere le condizioni esistenti, puoi aggiungere nuove condizioni e nuovi attributi alle condizioni esistenti.

gcloud

Utilizza il comando update per aggiornare un livello di accesso.

Livello di accesso di base:

gcloud access-context-manager levels update LEVEL_NAME \
    --basic-level-spec=FILE \
    [--policy=POLICY_NAME]

Livello di accesso personalizzato:

gcloud access-context-manager levels update LEVEL_NAME \
    --custom-level-spec=FILE \
    [--policy=POLICY_NAME]

Sostituisci quanto segue:

  • LEVEL_NAME: il nome del livello di accesso che vuoi aggiornare.

  • FILE: il nome di un file YAML che definisce le condizioni per il livello di accesso (per i livelli di accesso di base) o un'espressione CEL che si risolve in un singolo valore booleano (per i livelli di accesso personalizzati).

    Per un elenco completo degli attributi che puoi utilizzare nelle condizioni del livello di accesso di base, consulta Attributi del livello di accesso.

  • POLICY_NAME: il nome della policy di accesso della tua organizzazione. Questo valore è obbligatorio solo se non hai impostato una policy di accesso predefinita.

  • Puoi includere una o più delle seguenti opzioni.

    Opzioni
    combine-function

    Questa opzione viene utilizzata solo per i livelli di accesso di base.

    Determina il modo in cui vengono combinate le condizioni.

    Valori validi: AND, OR

    description

    Una descrizione dettagliata del livello di accesso.

    title

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

    Puoi includere uno qualsiasi dei flag gcloud-wide.

Comando di esempio

gcloud access-context-manager levels update Device_Trust \
    --basic-level-spec=corpdevspec.yaml \
    --combine-function=OR \
    --description='Access level that conforms to updated corporate spec.' \
    --title='Device_Trust Extended' \
    --policy=123456789012

API

Per aggiornare un livello di accesso, chiama accessLevels.patch.

PATCH https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME?updateMask=FIELDS

Sostituisci quanto segue:

  • POLICY_NAME: il nome della policy di accesso della tua organizzazione.

  • LEVEL_NAME: il nome del livello di accesso che vuoi aggiornare.

  • FIELDS: un elenco separato da virgole di nomi di campi completi che stai aggiornando.

Corpo della richiesta

Il corpo della richiesta deve includere una risorsa AccessLevel che specifica le modifiche che vuoi apportare al 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 PATCH.

Elimina un livello di accesso

Questa sezione descrive come eliminare i livelli di accesso di Gestore contesto accesso. L'eliminazione di un livello di accesso è una procedura in due passaggi:

  1. Controlla le dipendenze dei livelli di accesso.

  2. Elimina un singolo livello di accesso.

Controlla le dipendenze del livello di accesso

Prima di eliminare un livello di accesso, assicurati che non sia utilizzato da altri livelli di accesso, perimetri di servizio dei Controlli di servizio VPC, policy di accesso sensibile al contesto di Google Workspace, associazioni di accessoGoogle Cloud o condizioni IAM.

Per trovare tutti i livelli di accesso che fanno riferimento a quello che vuoi eliminare, segui questi passaggi:

  1. Assicurati di aver installato jq. Per verificare che jq sia installato, esegui jq --version. Se necessario, installa jq.

  2. Controlla le dipendenze del livello di accesso. Questo comando elenca tutti i livelli di accesso, quindi utilizza jq per filtrare i livelli di accesso che fanno riferimento a LEVEL_NAME nelle definizioni dei livelli di base o personalizzati.

    echo "Searching for Access Levels referencing: accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME"
    echo ""
    
    gcloud access-context-manager levels list \
      --policy="POLICY_NAME" \
      --format=json | \
    jq -r '
      .[] |
      select(
        # Check basic levels: Is the target access level present as an element in any requiredAccessLevels array?
        ([(.basic.conditions // [])[] | (.requiredAccessLevels // []) | index("accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME") != null] | any)
        or
        # Check custom levels: Does the expression string contain the target access level?
        ((.custom.expr.expression // "") | (contains("accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME") or contains("levels.LEVEL_NAME")))
      ) |
      "  - \(.title) (Name: \(.name))"
    '
    
    echo ""
    echo "If any levels are listed, they reference LEVEL_NAME. You must update these referencing levels before you delete LEVEL_NAME."

    Sostituisci quanto segue:

    • POLICY_NAME: il nome della policy di accesso della tua organizzazione. Questo valore è obbligatorio solo se non hai impostato una policy di accesso predefinita.

    • LEVEL_NAME: il nome del livello di accesso che vuoi eliminare, ad esempio my_level.

    Nell'output sono elencati tutti i livelli di accesso che fanno riferimento a accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME o levels.LEVEL_NAME, insieme ai relativi title e name. Questi livelli di accesso includono:

    • Livelli di base, in cui accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME è elencato in requiredAccessLevels

    • Livelli personalizzati, in cui accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME o levels.LEVEL_NAME è elencato nella stringa custom.expr.expression.

  3. Se il comando elenca livelli di accesso di riferimento, devi prima aggiornare questi livelli per rimuovere la dipendenza. Per le istruzioni, consulta la sezione Aggiorna un livello di accesso.

Dopo aver rimosso tutti i riferimenti, puoi procedere con l'eliminazione del singolo livello di accesso.

Elimina un singolo livello di accesso

Console

Per eliminare un livello di accesso:

  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 griglia, nella riga corrispondente al livello di accesso che vuoi eliminare, fai clic sul pulsante .

  4. Fai clic su Elimina.

  5. Nella finestra di dialogo visualizzata, conferma di voler eliminare il livello di accesso.

gcloud

Per eliminare un livello di accesso:

  1. Utilizza il comando delete per eliminare un livello di accesso.

    gcloud access-context-manager levels delete LEVEL_NAME \
        [--policy=POLICY_NAME]

    Sostituisci quanto segue:

    • LEVEL_NAME: il nome del livello di accesso che vuoi eliminare.

    • POLICY_NAME: il nome della policy di accesso della tua organizzazione. Questo valore è obbligatorio solo se non hai impostato una policy di accesso predefinita.

  2. Conferma di voler eliminare il livello di accesso.

    Ad esempio:

    You are about to delete level Device_Trust
    
    Do you want to continue (Y/n)?
    

    Dovresti vedere un output simile al seguente:

    Waiting for operation [accessPolicies/123456789012/accessLevels/Device_Trust/delete/1531171874311645] to complete...done.
    Deleted level [Device_Trust].
    

API

Per eliminare un livello di accesso, chiama accessLevels.delete.

DELETE https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME

Sostituisci quanto segue:

  • POLICY_NAME: il nome della policy di accesso della tua organizzazione.

  • LEVEL_NAME: il nome del livello di accesso che vuoi eliminare.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Corpo della risposta

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