Questo documento spiega come gestire le autorizzazioni per i cluster standard in Google Distributed Cloud (GDC) con air gap utilizzando la CLI gdcloud. I cluster standard sono ambienti Kubernetes configurabili con ambito di progetto e servizi predefiniti minimi che offrono maggiore flessibilità e controllo per i carichi di lavoro personalizzati.
Per saperne di più sui cluster standard e su altri tipi di cluster, consulta Configurazione dei cluster Kubernetes.
Questo documento è destinato ai gruppi di operatori di applicazioni, come gli operatori di sviluppo o i data scientist, che devono gestire e proteggere le risorse all'interno dei progetti GDC. Per saperne di più, consulta Pubblico per la documentazione di GDC con air gap.
Prima di iniziare
Prima di gestire l'accesso ai cluster standard, devi disporre delle autorizzazioni necessarie e preparare l'ambiente.
Richiedi i ruoli IAM
Contatta l'amministratore IAM dell'organizzazione per richiedere i seguenti ruoli in base alle attività che devi svolgere:
- Project IAM Admin (
project-iam-admin): crea, aggiorna ed elimina le associazioni di ruoli per i cluster standard all'interno di un progetto. - Standard Cluster Admin (
standard-cluster-admin): crea, aggiorna ed elimina le associazioni di ruoli all'interno di un cluster standard specifico.
Prepara l'ambiente
Concedi le autorizzazioni per l'accesso al cluster standard
Un utente con il ruolo Project IAM Admin (project-iam-admin) può concedere ad altri utenti i ruoli necessari per gestire l'accesso all'interno dei cluster standard:
Accedi con il provider di identità configurato utilizzando gcloud CLI.
Concedi all'utente il ruolo Standard Cluster Admin (
standard-cluster-admin) per il progetto. Questo comando associa l'utente al ruolo, consentendogli di gestire l'accesso all'interno del cluster standard.Per saperne di più sui ruoli, consulta Descrizioni dei ruoli predefiniti e Definizioni dei ruoli per i progetti.
gdcloud projects add-iam-policy-binding PROJECT \ --role=ROLE \ --member=user:USER_ACCOUNTSostituisci le seguenti variabili:
PROJECT: il nome del progetto in cui esiste il cluster standard.ROLE: il nome del ruolo che vuoi concedere (ad esempiostandard-cluster-admin).USER_ACCOUNT: l'account utente per il quale vuoi concedere il ruolo, incluso il prefisso del provider di identità associato alla tua organizzazione (ad esempioidpprefix-user@example.com). Il prefisso specifico utilizzato dipende dalla configurazione dell'IdP della tua organizzazione. Per saperne di più, consulta Connetti a un provider di identità.
L'esempio seguente concede il ruolo Standard Cluster Admin a
user@example.com, presupponendo che il prefisso del provider di identità siafop-per il progettofoo:gdcloud projects add-iam-policy-binding foo \ --role=standard-cluster-admin \ --member=user:fop-user@example.com
Gestisci l'accesso all'interno del cluster standard
Un utente con il ruolo Standard Cluster Admin (standard-cluster-admin) può concedere l'accesso all'interno di un cluster standard:
Accedi con il provider di identità configurato utilizzando gcloud CLI.
Genera un file kubeconfig per un cluster standard utilizzando il flag
--standard. Questo flag è obbligatorio per il targeting di un cluster standard.export KUBECONFIG=KUBECONFIG_FILE gdcloud clusters get-credentials STANDARD_CLUSTER_NAME --standard --project=PROJECTSostituisci le seguenti variabili:
KUBECONFIG_FILE: il percorso del file kubeconfig, ad esempiostandard-cluster-kubeconfig.yaml.STANDARD_CLUSTER_NAME: il nome del cluster standard.PROJECT: il nome del progetto in cui esiste il cluster standard.
Definisci le autorizzazioni all'interno del cluster standard utilizzando
kubectl.Gli utenti con autorizzazioni
standard-cluster-adminpossono creare oggettiRoleeClusterRolepersonalizzati. Per concedere queste autorizzazioni, possono creare gli oggettiRolebindingeClusterRoleBindingcorrispondenti per associare i ruoli a soggetti specifici, come utenti o service account.L'esempio seguente utilizza
kubectlper creare un oggettoRolepersonalizzato di esempio denominatotest-rolenello spazio dei nomitest:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: test-role namespace: test rules: - apiGroups: - "" resources: - configmaps verbs: - get EOFL'esempio seguente crea l'oggetto
RoleBindingper l'oggettoRoledenominatotest-rolenello spazio dei nomitest. Concede le autorizzazioni all'utente alice@example.com con il prefisso del provider di identitàfop-, nonché a un oggettoServiceAccountdenominatomy-service-accountnello spazio dei nomidefault:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: test-role-binding namespace: test subjects: - kind: User name: fop-alice@example.com apiGroup: rbac.authorization.k8s.io - kind: ServiceAccount name: my-service-account namespace: default roleRef: kind: Role name: test-role apiGroup: rbac.authorization.k8s.io EOF