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 allo spazio dei nomi:per concedere l'accesso allo spazio dei nomi di un progetto specifico all'interno del cluster, crea un
ProjectRolee unProjectRoleBindingcorrispondente. Questo processo propaga unRolee unRoleBindingdi Kubernetes a unNamespacedi Kubernetes nel cluster, che corrisponde alProjecta cui sono associati ilProjectRolee ilProjectRoleBinding.Per l'accesso a livello di cluster:per concedere l'accesso a tutti gli spazi dei nomi all'interno del cluster, crea un
OrganizationRolee unOrganizationRoleBindingcorrispondente. Questo processo propaga un KubernetesClusterRoleeClusterRoleBindingall'intero cluster Kubernetes.
Questa pagina è rivolta ai segmenti di pubblico all'interno 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 progetto e associazioni di ruoli 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 progetto possono creare solo ruoli progetto e associazioni di ruoli progetto per i progetti a cui hanno l'autorizzazione di accesso.
Prima di iniziare
Prima di gestire i binding dei ruoli o revocare l'accesso, devi richiedere le autorizzazioni necessarie e preparare l'ambiente. I ruoli specifici richiesti dipendono dalla gestione dei binding dei ruoli o dalla revoca dell'accesso utente.
Richiedi ruoli IAM
Contatta l'amministratore IAM dell'organizzazione per richiedere i ruoli in base alle attività che devi svolgere:
- Amministratore IAM organizzazione (
organization-iam-admin): crea, aggiorna ed elimina le associazioni di ruoli a livello di organizzazione e progetto. - Amministratore sessioni org (
org-session-admin): revoca le sessioni attive di un utente e l'accesso all'interno di una zona specifica.
prepara l'ambiente
Per utilizzare gli strumenti a riga di comando per gestire le associazioni di ruoli o revocare l'accesso, completa la seguente configurazione.
- Scarica e installa gcloud CLI, se non l'hai ancora fatto.
- Per utilizzare l'API con
kubectl, è necessaria una configurazione aggiuntiva:
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 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 i binding dei ruoli per un'organizzazione, seleziona un'organizzazione.
- Per configurare i binding dei ruoli per un progetto, seleziona un progetto.
- Nel menu di navigazione, fai clic su Identity and Access Management > Accesso.
- Fai clic su Aggiungi membro.
- Nell'elenco Provider di identità, seleziona un provider di identità.
- Scegli se aggiungere singoli utenti o gruppi.
- Nel campo Nome utente o alias del 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 Membri autorizzati.
gdcloud
Assicurati di aver installato gcloud CLI.
Accedi utilizzando il comando
gdcloud auth loginper autenticarti con il tuo provider di identità. Per saperne di più, consulta l'autenticazione di gcloud CLI.Configura le associazioni di ruoli.
Configura i binding dei 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 account di servizio con il progetto account di servizio (serviceAccount:projectName:serviceAccountName).ROLE_TYPE: ilClusterRole,RoleoOrganizationRoleper cui stai configurando l'associazione di ruolo.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 account di servizio con il progetto account di servizio (serviceAccount:projectName:serviceAccountName).ROLE_TYPE: ilRoleoProjectRoleper cui stai configurando l'associazione dei ruoli.ROLE: il nome del ruolo predefinito o personalizzato che vuoi assegnare all'utente (ad esempioproject-viewer).
API
Esporta le variabili di ambiente per l'associazione di ruolo:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIG export USERNAME=IDP_PREFIX-USERNAME export ROLE_NAME=ROLE_NAME export USER_EMAIL=IDP_PREFIX-USER_EMAILSostituisci quanto segue:
YOUR_IAM_ADMIN_KUBECONFIG: il percorso del file kubeconfig per l'amministratore IAM.IDP_PREFIX: il prefisso del provider di identità.USERNAME: la parte del nome utente dell'indirizzo email dell'utente prima del simbolo@(ad esempiopauldapaul@example.com).ROLE_NAME: il nome del ruolo di cui l'utente ha bisogno (ad esempioproject-creator). Per informazioni dettagliate sul ruolo, consulta Definizioni dei ruoli.USER_EMAIL: l'indirizzo email dell'account utente a cui vuoi assegnare il ruolo (ad esempiopaul@example.com).
Assegna un utente a un
ClusterRole,Role,ProjectRoleoOrganizationRole:Assegna un utente a un
ClusterRole:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USER_EMAIL}Per i casi in cui un
ClusterRolerichiede unRoleBindinganziché unClusterRoleBinding, consulta le Definizioni dei ruoli per scoprire di quale tipo di binding ha bisogno il ruolo e crea un RoleBinding nello spazio dei nomigpc-system:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USER_EMAIL} --namespace=gpc-systemAssegna un utente a un
Role:Esporta lo spazio dei nomi in cui deve essere creato il binding:
export BINDING_NAMESPACE=BINDING_NAMESPACEEsegui questi comandi per creare un
RoleBinding:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --role=${ROLE_NAME} --user=${USER_EMAIL} --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: IDP_PREFIX-USER_EMAILSostituisci 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.IDP_PREFIX: il prefisso del provider di identità.USER_EMAIL: l'indirizzo email dell'account utente a cui vuoi assegnare il ruolo (ad esempiopaul@example.com).
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: IDP_PREFIX-USER_EMAILSostituisci 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.IDP_PREFIX: il prefisso del provider di identità.USER_EMAIL: l'indirizzo email dell'account utente a cui vuoi assegnare il ruolo (ad esempiopaul@example.com).
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.
Per rimuovere i membri, segui questi passaggi:
Console
- Accedi alla console GDC.
- Nel menu di navigazione, fai clic su Identity and Access Management > Accesso.
- Nell'elenco Membri autorizzati, seleziona un membro.
- Fai clic su Rimuovi membro.
- Quando ti viene richiesto, fai clic su Rimuovi membro per confermare.
gdcloud
Assicurati di aver installato gcloud CLI.
Accedi utilizzando il comando
gdcloud auth loginper autenticarti con il tuo provider di identità. Per saperne di più, consulta l'autenticazione di gcloud CLI.Rimuovi le associazioni dei ruoli.
Rimuovere 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 account di servizio con il progetto account di servizio (serviceAccount:projectName:serviceAccountName).ROLE_TYPE: ilClusterRole,RoleoOrganizationRoleper cui stai rimuovendo l'associazione del ruolo.ROLE: il nome del ruolo predefinito o personalizzato che vuoi rimuovere dall'account utente (ad esempioproject-creator).
Rimuovi le associazioni dei 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 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 account di servizio (serviceAccount:projectName:serviceAccountName).ROLE_TYPE: ilRoleoProjectRoleper cui stai rimuovendo l'associazione di ruolo.ROLE: il nome del ruolo predefinito o personalizzato che vuoi rimuovere dall'account utente (ad esempioproject-viewer).
API
Esporta le variabili di ambiente per l'associazione di ruolo:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIG export USERNAME=IDP_PREFIX-USERNAME export BINDING_NAMESPACE=BINDING_NAMESPACESostituisci quanto segue:
YOUR_IAM_ADMIN_KUBECONFIG: il percorso del file kubeconfig per l'amministratore IAM.IDP_PREFIX: il prefisso del provider di identità.USERNAME: la parte del nome utente dell'indirizzo email dell'utente prima del simbolo@(ad esempiopauldapaul@example.com).BINDING_NAMESPACE: lo spazio dei nomi in cui viene rimosso il binding.
Elimina
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
Revocare l'accesso utente
Se un membro lascia la tua organizzazione o il tuo team, puoi revocare il suo accesso all'appliance con air gap 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 sessione organizzazione (
org-session-admin).Revoca l'accesso dell'utente:
gdcloud admin auth revoke --accounts USER_EMAILSostituisci 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.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 ha esito positivo, viene visualizzato quanto segue:No sessions found for account: ariel@example.com
Elenca tutti gli utenti revocati
Per visualizzare tutti gli utenti revocati e le loro attività e 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, viene visualizzato 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