Ogni soggetto, ovvero un utente o un gruppo, segue una procedura in due passaggi per ottenere l'accesso al server API di gestione e al cluster Kubernetes:
Accesso al server API di gestione: concedi a un soggetto le autorizzazioni nel server API di gestione utilizzando
ClusterRoleBindingoRoleBindinga unClusterRolepredefinito.Accesso al cluster Kubernetes: concedi l'accesso specifico per lo spazio dei nomi o l'accesso a livello di cluster.
Per l'accesso specifico per lo spazio dei nomi: per concedere l'accesso allo spazio dei nomi di un progetto specifico all'interno del cluster, crea un
ProjectRolee ilProjectRoleBindingcorrispondente. Questa procedura propaga unRoleeRoleBindingKubernetes a unNamespaceKubernetes nel cluster, che corrisponde alProjecta cui sono associatiProjectRoleeProjectRoleBinding.Per l'accesso a livello di cluster: per concedere l'accesso a tutti gli spazi dei nomi all'interno del cluster, crea un
OrganizationRolee ilOrganizationRoleBindingcorrispondente. Questa procedura propaga un KubernetesClusterRoleeClusterRoleBindingall'intero cluster Kubernetes.
Questa pagina è rivolta ai destinatari del gruppo di amministratori della piattaforma che gestiscono le autorizzazioni all'interno della propria organizzazione.
Sia l'amministratore IAM dell'organizzazione sia l'amministratore IAM del progetto possono creare altri ruoli di progetto e associazioni di ruoli di progetto per concedere autorizzazioni aggiuntive specifiche del progetto. Tuttavia, gli amministratori IAM dell'organizzazione possono creare ruoli di progetto e associazioni di ruoli di progetto per qualsiasi progetto. D'altra parte, gli amministratori IAM del progetto possono creare ruoli di progetto e associazioni di ruoli di progetto solo per i progetti a cui hanno l'autorizzazione di accedere.
Prima di iniziare
Prima di gestire le associazioni di ruoli o revocare l'accesso, devi richiedere le autorizzazioni necessarie e preparare l'ambiente. I ruoli specifici richiesti dipendono dal fatto che tu stia gestendo le associazioni di ruoli o revocando l'accesso degli utenti.
Richiedi ruoli IAM
Contatta l'amministratore IAM dell'organizzazione per richiedere i ruoli in base alle attività che devi eseguire:
- Amministratore IAM dell'organizzazione (
organization-iam-admin): crea, aggiorna ed elimina le associazioni di ruoli a livello di organizzazione e progetto. - Amministratore sessioni dell'organizzazione (
org-session-admin): revoca le sessioni attive e l'accesso di un utente all'interno di una zona specifica.
Prepara l'ambiente
Per utilizzare gli strumenti da riga di comando per gestire le associazioni di ruoli o revocare l'accesso, completa la seguente configurazione.
- Scarica e installa l'interfaccia a riga di comando gdcloud, se non l'hai già fatto.
- Per utilizzare l'API con
kubectl, è necessaria una configurazione aggiuntiva:
Configura le associazioni di ruoli
Puoi configurare le associazioni di ruoli che consentono ai membri del team di accedere alle risorse a livello di organizzazione o progetto.
Per ottenere le autorizzazioni necessarie per configurare le associazioni di ruoli, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore IAM dell'organizzazione.
Per assegnare un ruolo a un membro autorizzato:
Console
- Accedi alla console GDC.
- Fai clic su Seleziona progetto per selezionare un'organizzazione o un progetto.
- Per configurare le associazioni di ruoli per un'organizzazione, seleziona un'organizzazione.
- Per configurare le associazioni di ruoli per un progetto, seleziona un progetto.
- Nel menu di navigazione, fai clic su Identità e accesso > Accesso.
- Fai clic su Aggiungi membro.
- Nell'elenco Provider di identità, seleziona un provider di identità.
- Scegli se vuoi aggiungere singoli utenti o gruppi.
- Nel campo Alias utente o gruppo , inserisci il nome utente, l'indirizzo email o l'alias.
- Nell'elenco Ruolo, seleziona il ruolo che vuoi assegnare all'utente o al gruppo, ad esempio Organization Viewer a livello di organizzazione o Project Creator a livello di progetto.
- Fai clic su Aggiungi.
Il membro viene visualizzato nell'elenco Membro autorizzato.
gdcloud
Assicurati di aver installato l' interfaccia a riga di comando gdcloud.
Accedi utilizzando il comando
gdcloud auth loginper autenticarti con il tuo provider di identità. Per saperne di più, consulta Autenticazione dell'interfaccia a riga di comando gdcloud.Configura le associazioni di ruoli.
Configura le associazioni di ruoli per un'organizzazione:
gdcloud organizations add-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLESostituisci le seguenti variabili:
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 di account di servizio con il progetto del account di servizio (serviceAccount:projectName:serviceAccountName).ROLE_TYPE: ilClusterRole,RoleoOrganizationRoleper cui stai configurando l'associazione di ruoli.ROLE: il nome del ruolo predefinito o personalizzato che vuoi assegnare all'utente (ad esempioproject-creator).
Configura le associazioni di ruoli per un progetto:
gdcloud projects add-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLESostituisci 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 di account di servizio con il progetto del account di servizio (serviceAccount:projectName:serviceAccountName).ROLE_TYPE:RoleoProjectRoleper cui stai configurando l'associazione di ruoli.ROLE: il nome del ruolo predefinito o personalizzato che vuoi assegnare all'utente (ad esempioproject-viewer).
API
Esporta le credenziali utente che utilizzi:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIGEsporta l'account utente per cui vuoi assegnare il ruolo, incluso il prefisso del provider di identità (ad esempio
idpprefix-paul@example.com):export USERNAME=IDP_PREFIX-USER_EMAILEsporta il nome del ruolo di cui ha bisogno l'utente, ad esempio
project-creator. Per informazioni dettagliate sul ruolo, consulta Definizioni dei ruoli.export ROLE_NAME=ROLE_NAMEAssegna un utente a un
ClusterRole,Role,ProjectRole, oOrganizationRole:Assegna un utente a un
ClusterRole:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME}Nei casi in cui un
ClusterRolerichiede unRoleBindinganziché unClusterRoleBinding, consulta le definizioni dei ruoli per scoprire il tipo di associazione richiesto dal ruolo e crea un RoleBinding nello spazio dei nomigpc-systeminvece:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME} --namespace=gpc-systemAssegna un utente a un
Role:Esporta lo spazio dei nomi in cui deve essere creata l'associazione:
export BINDING_NAMESPACE=BINDING_NAMESPACEEsegui i seguenti comandi per creare un
RoleBinding:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --role=${ROLE_NAME} --user=${USERNAME} --namespace=${BINDING_NAMESPACE}
Assegna un utente a un
ProjectRole:Crea un file
projectrolebinding.yaml:apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectRoleBinding metadata: name: BINDING_NAME namespace: PROJECT_NAME spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: ProjectRole name: ROLE_NAME subjects: - apiGroup: rbac.authorization.k8s.io kind: USER_KIND name: USERNAMESostituisci quanto segue:
BINDING_NAME: un nome per l'associazione che l'utente può personalizzare (ad esempiouser-project-creator-binding).PROJECT_NAME: il nome del progetto a cui stai concedendo il ruolo.ROLE_NAME: il nome delProjectRoleche stai assegnando all'utente.USER_KIND: il tipo di utente, che può essereUser,GroupoServiceAccount.USERNAME: l'indirizzo email dell'utente per cui stai assegnando il ruolo, incluso il prefisso del provider di identità (ad esempioidpprefix-paul@example.com). Deve corrispondere aUSERNAMEesportato.
Applica il file
projectrolebinding.yaml:kubectl create -f projectrolebinding.yaml
Assegna un utente a un
OrganizationRole:Crea un file
organizationrolebinding.yaml:apiVersion: resourcemanager.gdc.goog/v1 kind: OrganizationRoleBinding metadata: name: BINDING_NAME namespace: gpc-system spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: OrganizationRole name: ROLE_NAME subjects: - apiGroup: rbac.authorization.k8s.io kind: USER_KIND name: USERNAMESostituisci quanto segue:
BINDING_NAME: un nome per l'associazione che l'utente può personalizzare (ad esempiouser-organization-creator-binding).ROLE_NAME: il nome delOrganizationRoleche stai assegnando all'utente.USER_KIND: il tipo di utente, che può essereUser,GroupoServiceAccount.USERNAME: l'indirizzo email dell'utente per cui stai assegnando il ruolo, incluso il prefisso del provider di identità (ad esempioidpprefix-paul@example.com). Deve corrispondere aUSERNAMEesportato.
Applica il file YAML
organizationrolebinding.yaml:kubectl create -f organizationrolebinding.yaml
Rimuovi le associazioni di ruoli
Quando l'accesso non è più necessario, rimuovi un membro e i relativi ruoli, autorizzazioni e accesso associati.
Per rimuovere i membri:
Console
- Accedi alla console GDC.
- Nel menu di navigazione, fai clic su Identità e accesso > Accesso.
- Nell'elenco Membri autorizzati, seleziona un membro.
- Fai clic su Rimuovi membro.
- Quando richiesto, fai clic su Rimuovi membro per confermare.
gdcloud
Assicurati di aver installato l' interfaccia a riga di comando gdcloud.
Accedi utilizzando il comando
gdcloud auth loginper autenticarti con il tuo provider di identità. Per saperne di più, consulta Autenticazione dell'interfaccia a riga di comando gdcloud.Rimuovi le associazioni di ruoli.
Rimuovi le associazioni di ruoli per un'organizzazione:
gdcloud organizations remove-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLESostituisci le seguenti variabili:
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 di account di servizio con il progetto del account di servizio (serviceAccount:projectName:serviceAccountName).ROLE_TYPE: theClusterRole,Role, orOrganizationRoleper cui stai rimuovendo l'associazione di ruoli.ROLE: il nome del ruolo predefinito o personalizzato che vuoi rimuovere dall'account utente (ad esempioproject-creator).
Rimuovi le associazioni di ruoli per un progetto:
gdcloud projects remove-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLESostituisci le seguenti variabili:
PROJECT: il nome del progetto da cui stai rimuovendo l'associazione di ruoli.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 di account di servizio con il progetto del account di servizio (serviceAccount:projectName:serviceAccountName).ROLE_TYPE:RoleoProjectRoleper cui stai rimuovendo l'associazione di ruoli.ROLE: il nome del ruolo predefinito o personalizzato che vuoi rimuovere dall'account utente (ad esempioproject-viewer).
API
Esporta le credenziali utente che utilizzi:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIGEsporta l'account utente da cui vuoi rimuovere il ruolo, incluso il prefisso del provider di identità (ad esempio
idpprefix-paul@example.com):export USERNAME=IDP_PREFIX-USER_EMAILEsporta lo spazio dei nomi in cui viene rimossa l'associazione:
export BINDING_NAMESPACE=BINDING_NAMESPACEElimina
ClusterRoleBinding,RoleBinding,ProjectRoleBindingoOrganizationRoleBindingper revocare l'autorizzazione concessa all'account utente:Rimuovi
ClusterRoleBindingda un account utente:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-paRimuovi
RoleBindingda un account utente:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Rimuovi
ProjectRoleBindingda un account utente:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Rimuovi
OrganizationRoleBindingda un account utente:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete organizationrolebinding ${USERNAME}-pa \ --namespace=gpc-system
Revoca l'accesso degli utenti
Se un membro lascia la tua organizzazione o il tuo team, puoi revocare il suo accesso all'appliance air-gapped di Google Distributed Cloud (GDC). La revoca dell'accesso di un utente lo disconnette dall'appliance GDC con air gap e rimuove i suoi ruoli e le sue autorizzazioni. Puoi anche elencare l'attività e le sessioni dell'utente dall'ora di inizio e di fine.
Per revocare l'accesso di un utente:
Ottieni le autorizzazioni necessarie per revocare gli utenti. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore sessioni dell'organizzazione (
org-session-admin).Revoca l'accesso dell'utente:
gdcloud admin auth revoke --accounts USER_EMAILSostituisci USER_EMAIL con l'indirizzo email dell'utente a cui revocare l'accesso.
Dopo aver eseguito il comando, vedrai un output simile al seguente. Questo esempio revoca l'accesso all'utente
ariel@example.com:Success: NUMBER of sessions revoked for user ariel@example.comIn questo esempio, la variabile NUMBER si riferisce al numero di sessioni attive dell'utente.
Conferma di aver revocato l'accesso dell'utente eseguendo di nuovo il comando
gdcloud admin auth revoke. Se l'operazione va a buon fine, vedrai quanto segue:No sessions found for account: ariel@example.com
Elenca tutti gli utenti revocati
Per visualizzare tutti gli utenti revocati, le loro attività e le loro sessioni:
Elenca tutti gli utenti revocati dall'ora di inizio e di fine:
gdcloud admin auth list --format="csv(ACCOUNT, IDENTITY_PROVIDER, CREATION_TIME, EXPIRATION_TIME)"Se l'operazione va a buon fine, vedrai un output simile al seguente:
account,identity_provider,creation_time,expiration_time ariel@example.com,example-idp,2023-02-15 22:10:52,2023-02-15 23:10:52