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 Management:concedi a un soggetto con autorizzazioni nel server API Management utilizzando
ClusterRoleBinding
oRoleBinding
unClusterRole
predefinito.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
ProjectRole
e unProjectRoleBinding
corrispondente. Questo processo propaga unRole
e unRoleBinding
di Kubernetes a unNamespace
di Kubernetes nel cluster, che corrisponde alProject
a cui sono associati ilProjectRole
e ilProjectRoleBinding
.Per l'accesso a livello di cluster:per concedere l'accesso a tutti gli spazi dei nomi all'interno del cluster, crea un
OrganizationRole
e unOrganizationRoleBinding
corrispondente. Questo processo propaga un KubernetesClusterRole
eClusterRoleBinding
all'intero cluster Kubernetes.
Le persone (IO, PA, AO) non sono ruoli, ma raccolte di ruoli utente mappati su autorizzazioni specifiche e assegnati a singoli utenti.
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 ulteriori autorizzazioni 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.
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
- 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 Visualizzatore organizzazione a livello di organizzazione o Creatore progetto 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 login
per autenticarti con il tuo provider di identità. Per ulteriori informazioni, 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/ROLE
Sostituisci 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 del account di servizio (serviceAccount:projectName:serviceAccountName
).ROLE_TYPE
: ilClusterRole
,Role
oOrganizationRole
per 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/ROLE
Sostituisci le seguenti variabili:
PROJECT
: il nome del progetto per cui stai configurando l'associazione di 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_TYPE
: ilRole
oProjectRole
per 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 credenziali utente che utilizzi:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIG
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
Esporta 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_NAME
Assegna un utente a un
ClusterRole
,Role
,ProjectRole
oOrganizationRole
:Assegnare un utente a un
ClusterRole
:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME}
Per i casi in cui un
ClusterRole
richiede unRoleBinding
anziché unClusterRoleBinding
, consulta le definizioni dei ruoli per scoprire il tipo di binding necessario per 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=${USERNAME} --namespace=gpc-system
Assegnare un utente a un
Role
:Esporta lo spazio dei nomi in cui deve essere creato il binding:
export BINDING_NAMESPACE=BINDING_NAMESPACE
Esegui 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}
Assegnare 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: USERNAME
Sostituisci 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 delProjectRole
che stai assegnando all'utente.USER_KIND
: Il tipo di utente, che può essereUser
,Group
oServiceAccount
.USERNAME
: l'indirizzo email dell'utente a cui stai assegnando il ruolo, incluso il prefisso del provider di identità (ad esempioidpprefix-paul@example.com
). Questo valore deve corrispondere aUSERNAME
esportato.
Applica il file
projectrolebinding.yaml
:kubectl create -f projectrolebinding.yaml
Assegnare 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: USERNAME
Sostituisci quanto segue:
BINDING_NAME
: Un nome per l'associazione che l'utente può personalizzare (ad esempiouser-organization-creator-binding
).ROLE_NAME
: il nome delOrganizationRole
che stai assegnando all'utente.USER_KIND
: Il tipo di utente, che può essereUser
,Group
oServiceAccount
.USERNAME
: l'indirizzo email dell'utente a cui stai assegnando il ruolo, incluso il prefisso del provider di identità (ad esempioidpprefix-paul@example.com
). Questo valore deve corrispondere aUSERNAME
esportato.
Applica il file YAML
organizationrolebinding.yaml
:kubectl create -f organizationrolebinding.yaml
Rimuovi associazioni di ruolo
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 richiesto, fai clic su Rimuovi membro per confermare.
gdcloud
Assicurati di aver installato gcloud CLI.
Accedi utilizzando il comando
gdcloud auth login
per autenticarti con il tuo provider di identità. Per ulteriori informazioni, consulta l'autenticazione di gcloud CLI.Rimuovi le associazioni di ruolo.
Rimuovi le associazioni di ruolo per un'organizzazione:
gdcloud organizations remove-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
Sostituisci 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 del account di servizio (serviceAccount:projectName:serviceAccountName
).ROLE_TYPE
: ilClusterRole
,Role
oOrganizationRole
per 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 di ruolo per un progetto:
gdcloud projects remove-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
Sostituisci 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 del account di servizio (serviceAccount:projectName:serviceAccountName
).ROLE_TYPE
: ilRole
oProjectRole
per 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 credenziali utente che utilizzi:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIG
Esporta 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_EMAIL
Esporta lo spazio dei nomi in cui viene rimossa l'associazione:
export BINDING_NAMESPACE=BINDING_NAMESPACE
Elimina
ClusterRoleBinding
,RoleBinding
,ProjectRoleBinding
oOrganizationRoleBinding
per revocare l'autorizzazione concessa all'account utente:Rimuovi
ClusterRoleBinding
da un account utente:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-pa
Rimuovi
RoleBinding
da un account utente:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}
Rimuovi
ProjectRoleBinding
da un account utente:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}
Rimuovi
OrganizationRoleBinding
da 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 air-gapped Google Distributed Cloud (GDC). La revoca dell'accesso di un utente lo disconnette dall'appliance GDC air-gapped e rimuove i suoi ruoli e le 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:
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_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.
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