Concedere e revocare l'accesso

Ogni soggetto, utente o gruppo, segue una procedura in due passaggi per ottenere l'accesso al server API globale. Concedi a un soggetto le autorizzazioni nel server API globale utilizzando IAMRoleBinding a un IAMRole predefinito. Tutti i ruoli e i binding dei ruoli sono globali.

Le persone (IO, PA, AO) non sono ruoli, ma raccolte di ruoli utente mappati su autorizzazioni specifiche e assegnati a singoli utenti.

Configurare le associazioni di ruoli

Puoi configurare i binding dei ruoli che consentono ai membri del team di accedere alle risorse a livello di organizzazione o progetto.

Per ottenere le autorizzazioni necessarie per configurare i binding dei ruoli, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore IAM dell'organizzazione.

Per assegnare un ruolo a un membro autorizzato:

Console

  1. Accedi alla console GDC.
  2. Seleziona un'organizzazione o un progetto dal selettore di ambito.
    • Per configurare i binding dei ruoli per un'organizzazione, seleziona un'organizzazione.
    • Per configurare i binding dei ruoli per un progetto, seleziona un progetto.
  3. Nel menu di navigazione, fai clic su Identity and Access Management > Accesso.
  4. Fai clic su Aggiungi membro.
  5. Scegli se aggiungere singoli utenti o gruppi.
  6. Nell'elenco Provider di identità, seleziona un provider di identità.
  7. Nel campo Nome utente o alias del gruppo, inserisci il nome utente, l'indirizzo email o l'alias.
  8. Nell'elenco Ruolo, seleziona il ruolo che vuoi assegnare all'utente o al gruppo, ad esempio Visualizzatore organizzazione a livello di organizzazione o Creatore progetto a livello di progetto.
  9. Fai clic su Aggiungi.

Il membro viene visualizzato nell'elenco Membri autorizzati.

gdcloud

  1. Assicurati di aver installato gcloud CLI.

  2. Accedi utilizzando il comando gdcloud auth login per autenticarti con il tuo provider di identità. Per ulteriori informazioni, consulta l'autenticazione di gcloud CLI.

  3. Configura le associazioni di ruoli.

    • Configura i binding dei ruoli per un'organizzazione:

      gdcloud organizations add-iam-policy-binding ORGANIZATION \
        --member=USER_ACCOUNT \
        --role= ROLE
      

      Sostituisci le seguenti variabili:

      • ORGANIZATION: il nome dell'organizzazione per cui stai configurando l'associazione del ruolo.
      • USER_ACCOUNT: l'account utente a cui vuoi concedere il ruolo. Questo flag accetta un indirizzo email utente con il prefisso del provider di identità (user:idpprefix-user@example.com) o un nome account di servizio con il progetto del account di servizio (serviceAccount:projectName:serviceAccountName).
      • ROLE: il nome del ruolo predefinito o personalizzato che vuoi assegnare all'utente.
    • Configura le associazioni di ruoli per un progetto:

      gdcloud projects add-iam-policy-binding PROJECT \
        --member=USER_ACCOUNT \
        --role= ROLE
      

      Sostituisci le seguenti variabili:

      • PROJECT: il nome del progetto per cui stai configurando l'associazione di ruoli.
      • USER_ACCOUNT: l'account utente a cui vuoi concedere il ruolo. Questo flag accetta un indirizzo email utente con il prefisso del provider di identità (user:idpprefix-user@example.com) o un nome account di servizio con il progetto del account di servizio (serviceAccount:projectName:serviceAccountName).
      • ROLE: il nome del ruolo predefinito o personalizzato che vuoi assegnare all'utente.

API

  1. Esporta le credenziali utente che utilizzi:

    export GLOBAL_API_SERVER_KUBECONFIG=GLOBAL_API_SERVER_KUBECONFIG
    
  2. Esporta l'account utente a cui vuoi assegnare il ruolo, incluso il prefisso del provider di identità (ad esempio idpprefix-paul@example.com):

    export USERNAME=IDP_PREFIX-USER_EMAIL
    
  3. Esporta il nome del ruolo di cui ha bisogno l'utente, ad esempio project-creator. Consulta le definizioni dei ruoli per trovare il ruolo corrispondente.

    export ROLE_NAME=ROLE_NAME
    
  4. Esporta lo spazio dei nomi in cui deve essere creato il binding:

    export BINDING_NAMESPACE=BINDING_NAMESPACE
    

    Sostituisci BINDING_NAMESPACE con platform per i ruoli con ambito organizzazione o con il nome dello spazio dei nomi del progetto di destinazione per i ruoli con ambito progetto.

    Consulta Definizioni dei ruoli per un elenco dei ruoli e del loro ambito.

  5. Crea e applica una risorsa personalizzata IAMRoleBinding:

    cat <<EOF | kubectl --kubeconfig ${GLOBAL_API_SERVER_KUBECONFIG} apply -f -
    apiVersion: iam.global.gdc.goog/v1
    kind: IAMRoleBinding
    metadata:
      name: ${USERNAME}-${ROLE_NAME}-binding
      namespace: ${BINDING_NAMESPACE}
    spec:
      roleRef:
        apiGroup: iam.global.gdc.goog
        kind: IAMRole
        name: ${ROLE_NAME}
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: User
        name: ${USERNAME}
    EOF
    

Rimuovi le associazioni di ruolo

Quando l'accesso non è più necessario, rimuovi un membro e i ruoli, le autorizzazioni e l'accesso associati.

Per rimuovere i membri, segui questi passaggi:

Console

  1. Accedi alla console GDC.
  2. Nel menu di navigazione, fai clic su Identity and Access Management > Accesso.
  3. Nell'elenco Membri autorizzati, seleziona un membro.
  4. Fai clic su Rimuovi membro.
  5. Quando richiesto, fai clic su Rimuovi membro per confermare.

gdcloud

  1. Assicurati di aver installato gcloud CLI.

  2. Accedi utilizzando il comando gdcloud auth login per autenticarti con il tuo provider di identità. Per ulteriori informazioni, consulta l'autenticazione di gcloud CLI.

  3. Rimuovi le associazioni di ruolo.

    • Rimuovi le associazioni di ruolo per un'organizzazione:

      gdcloud organizations remove-iam-policy-binding ORGANIZATION \
        --member=USER_ACCOUNT \
        --role= ROLE
      

      Sostituisci le seguenti variabili:

      • ORGANIZATION: il nome dell'organizzazione da cui stai rimuovendo l'associazione di ruolo.
      • USER_ACCOUNT: l'account utente da cui vuoi rimuovere il ruolo. Questo flag accetta un indirizzo email utente con il prefisso del provider di identità (user:idpprefix-user@example.com) o un nome account di servizio con il progetto del account di servizio (serviceAccount:projectName:serviceAccountName).
      • ROLE: il nome del ruolo predefinito o personalizzato che vuoi rimuovere dall'account utente.
    • Rimuovi le associazioni di ruolo per un progetto:

      gdcloud projects remove-iam-policy-binding PROJECT \
        --member=USER_ACCOUNT \
        --role= ROLE
      

      Sostituisci le seguenti variabili:

      • PROJECT: il nome del progetto da cui stai rimuovendo l'associazione del ruolo.
      • USER_ACCOUNT: l'account utente da cui vuoi rimuovere il ruolo. Questo flag accetta un indirizzo email utente con il prefisso del provider di identità (user:idpprefix-user@example.com) o un nome account di servizio con il progetto del account di servizio (serviceAccount:projectName:serviceAccountName).
      • ROLE: il nome del ruolo predefinito o personalizzato che vuoi rimuovere dall'account utente.

API

Elimina IAMRoleBinding per revocare l'autorizzazione concessa all'account PA:

kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG \
delete iamrolebinding USERNAME-ROLE_NAME-binding -n BINDING_NAMESPACE

Sostituisci quanto segue:

  • GLOBAL_API_SERVER_KUBECONFIG: il percorso del file kubeconfig per accedere al server API globale.
  • USERNAME: l'account utente per il quale vuoi rimuovere il ruolo, incluso il prefisso del provider di identità (ad esempio idpprefix-paul@example.com).
  • ROLE_NAME: il nome del ruolo che vuoi rimuovere, ad esempio project-creator.
  • BINDING_NAMESPACE: sostituisci con platform per i ruoli con ambito organizzazione o con il nome dello spazio dei nomi del progetto di destinazione per i ruoli con ambito progetto.

Revocare l'accesso utente

Se un membro lascia la tua organizzazione o il tuo team, puoi revocare il suo accesso a Google Distributed Cloud (GDC) air-gapped. La revoca dell'accesso di un utente comporta la sua disconnessione da Distributed Cloud e la rimozione dei suoi ruoli e delle sue autorizzazioni. Puoi anche elencare l'attività e le sessioni dell'utente in base all'ora di inizio e di fine.

Per revocare l'accesso di un utente a un universo GDC, devi revocare l'accesso per ogni zona singolarmente. Completa i seguenti passaggi per ogni zona:

  1. Assicurati di aver eseguito l'accesso alla zona per cui vuoi revocare l'accesso. Ad esempio, imposta la configurazione dell'URL zonale per gcloud CLI e poi accedi:

    gdcloud config set organization_console_url ZONE_URL
    gdcloud auth login
    

    Sostituisci ZONE_URL con l'URL della console GDC per la zona per cui revocare l'accesso utente, che è simile a https://console.ORG_NAME.ZONE_NAME.ORG_SUFFIX.

    Per ulteriori informazioni sul cambio di contesto di zona, vedi Gestire le risorse tra le zone.

  2. Ottieni le autorizzazioni necessarie per revocare gli utenti. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore sessione organizzazione (org-session-admin).

  3. Revoca l'accesso dell'utente per la zona:

    gdcloud admin auth revoke --accounts USER_EMAIL
    

    Sostituisci USER_EMAIL con l'email dell'utente a cui revocare l'accesso.

    Dopo aver eseguito il comando, visualizzi un output simile al seguente. Questo esempio revoca l'accesso all'utente ariel@example.com:

    Success: NUMBER of sessions revoked for user ariel@example.com
    

    In questo esempio, la variabile NUMBER si riferisce al numero di sessioni attive dell'utente.

  4. Conferma di aver revocato l'accesso dell'utente eseguendo di nuovo il comando gdcloud admin auth revoke. Se l'operazione riesce, visualizzi quanto segue:

    No sessions found for account: ariel@example.com
    
  5. Ripeti i passaggi precedenti per ogni zona del tuo universo.