Controllo dell'accesso con IAM
Questo argomento descrive come utilizzare Identity and Access Management per controllare in che modo Config Connector può creare e gestire le risorse Google Cloud.
Per installare Config Connector, esegui l'autenticazione creando un account di servizio IAM e poi utilizzando la federazione delle identità per i carichi di lavoro per GKE in modo che GKE possa associare gli account di servizio IAM agli account di servizio Kubernetes. IAM consente Config Connector agisce su risorse specifiche. Se limiti le autorizzazioni assegnate ai tuoi account di servizio, hai un maggiore controllo sui tipi di risorse che Config Connector può creare.
Puoi scegliere di gestire le risorse con uno o più account di servizio account di servizio.
Un unico account di servizio
Quando installi Config Connector con il componente aggiuntivo GKE o manualmente
installazione, puoi impostare la modalità cluster in ConfigConnector
CustomResource.
Con la modalità cluster, puoi utilizzare un singolo account di servizio IAM
creare e gestire le risorse, anche se utilizzi Config Connector per gestire
più progetti.
Il seguente diagramma mostra come funziona questa modalità, in cui lo stesso account servizio gestisce due progetti:
Più account di servizio
Puoi utilizzare più account di servizio impostando la modalità con spazi dei nomi nel tuo
ConfigConnector
CustomResource.
La modalità con spazi dei nomi ti consente di suddividere le autorizzazioni in base alle rispettive esigenze di diversi account di servizio IAM e di isolare le autorizzazioni tra diversi spazi dei nomi Kubernetes, poiché puoi associare un account di servizio diverso per ogni spazio dei nomi.
Scegli la modalità con spazio dei nomi se:
- Voglio isolare le autorizzazioni IAM nello spazio dei nomi Kubernetes livello.
- Prevediamo di gestire un numero elevato di risorse Google Cloud da più progetti Google Cloud in un unico cluster.
Ad esempio, puoi creare un account di servizio IAM per ogni progetto, organizzare le risorse di ogni progetto nello stesso spazio dei nomi Kubernetes e poi associare l'account di servizio IAM corrispondente allo spazio dei nomi Kubernetes. In questo modo puoi separare le autorizzazioni IAM per ciascun progetto in modo che ogni progetto abbia un insieme distinto e non correlato di autorizzazioni.
Il seguente diagramma mostra una panoramica del funzionamento della modalità con spazi dei nomi, in cui ogni progetto è gestito da un account di servizio diverso:
In modalità con spazi dei nomi, ogni account di servizio IAM è associato a un
spazio dei nomi per impostazione predefinita. Quando crei risorse all'interno di questo spazio dei nomi, Config Connector utilizza questo account di servizio per creare risorse Google Cloud. È presente un pod Config Connector cnrm-controller-manager
dedicato
per ogni spazio dei nomi che simula l'account di servizio IAM.
associati allo spazio dei nomi.
Per scoprire come configurare la modalità con spazio dei nomi, consulta Installazione di Config Connector utilizzando una modalità con spazio dei nomi.
Modificare le autorizzazioni dopo l'installazione
Durante l'installazione di Config Connector, potresti aver selezionato un'istanza temporanea ruolo di base e assegnato il ruolo account di servizio per il quale hai configurato Config Connector. Se hai configurato Config Connector in modalità con nome di spazio, potresti avere più di un account di servizio IAM.
Dopo aver completato l'installazione, potrebbe essere necessario rimuovere o aggiornare autorizzazioni per allinearsi alle considerazioni sulla sicurezza e alle best practice.
Uno dei vantaggi principali di Config Connector è l'utilizzo di strumenti unificati. Ciò significa che puoi utilizzare Config Connector per ottimizzare i ruoli IAM autorizzazioni aggiuntive. Puoi utilizzare le risorse IAMPolicyMember o IAMPartialPolicy in Config Connector per configurare le autorizzazioni IAM. Questo richiede un account di servizio IAM con autorizzazioni di amministratore nei progetti, nelle cartelle o nell'organizzazione. Questo account di servizio deve essere configurato per l'associazione all'installazione di Config Connector tramite la modalità cluster o la modalità con nome nello spazio dei nomi.
Le sezioni seguenti elencano diversi esempi di criteri che utilizzano Config Connector per gestire le autorizzazioni IAM.
Autorizzazione del proprietario dell'organizzazione
Per espandere le autorizzazioni di Config Connector in modo che possa gestire tutti i progetti e le maschere per una determinata organizzazione, completa i seguenti passaggi:
Crea il seguente manifest YAML:
apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-orglevel-permission namespace: NAMESPACE spec: member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com role: roles/owner resourceRef: kind: Organization external: ORGANIZATION_ID
Sostituisci quanto segue:
NAMESPACE
con il nome del tuo spazio dei nomiSERVICE_ACCOUNT_NAME
con il nome del tuo account di servizioHOST_PROJECT_ID
con l'ID progetto host del tuo account di servizioroles/owner
con il ruolo appropriatoORGANIZATION_ID
con l'ID della tua organizzazione
Applica il manifest YAML al tuo cluster utilizzando
kubectl
o qualsiasi strumento di gestione della configurazione di tua scelta.
Autorizzazione proprietario della cartella
Per espandere le autorizzazioni di Config Connector in modo che possa gestire tutti i progetti cartelle in un cartella specifica, completa i seguenti passaggi:
Crea il seguente manifest YAML:
apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-orglevel-permission namespace: NAMESPACE spec: member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com role: roles/owner resourceRef: kind: Folder external: folders/FOLDER_ID
Sostituisci quanto segue:
NAMESPACE
con il nome del tuo spazio dei nomiSERVICE_ACCOUNT_NAME
con il nome del tuo account di servizioHOST_PROJECT_ID
con l'ID progetto host del tuo account di servizioroles/owner
con il ruolo appropriatoFOLDER_ID
con il tuo ID cartella
Applica il manifest YAML al tuo cluster utilizzando
kubectl
o qualsiasi strumento di gestione della configurazione di tua scelta.
Autorizzazioni del proprietario del progetto
Per consentire a Config Connector di gestire le risorse di un progetto specifico, completa i seguenti passaggi:
Crea il seguente manifest YAML:
apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-orglevel-permission namespace: NAMESPACE spec: member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com role: roles/owner resourceRef: kind: Project external: projects/PROJECT_ID
Sostituisci quanto segue:
NAMESPACE
con il nome del tuo spazio dei nomiSERVICE_ACCOUNT_NAME
con il nome del tuo account di servizioHOST_PROJECT_ID
con l'ID progetto host del tuo account di servizioroles/owner
con il ruolo appropriatoPROJECT_ID
con l'ID progetto di destinazione
Applica il manifest YAML al cluster utilizzando
kubectl
o qualsiasi strumento di gestione della configurazione a tua scelta.
Ruoli predefiniti
Se preferisci concedere autorizzazioni più limitate a Config Connector, puoi assegnare uno o più ruoli IAM a Config Connector dell'installazione creando alcune IAMPolicyMember di risorse o un modello IAMPartialPolicy risorsa. I seguenti ruoli vengono comunemente assegnati all'account di servizio Config Connector:
Editor: la concessione del ruolo editor consente la maggior parte delle funzionalità di Config Connector, ad eccezione delle configurazioni a livello di progetto o organizzazione, come le modifiche IAM.
Ruolo Amministratore account di servizio IAM: la concessione delle autorizzazioni
roles/iam.serviceAccountAdmin
consente a Config Connector di configurare gli account di servizio IAM.Resource Manager: la concessione di un Ruolo di Resource Manager come
roles/resourcemanager.folderCreator
consente a Config Connector di gestisci le cartelle e le tue organizzazioni.
Ruoli personalizzati
Se i ruoli predefiniti non soddisfano le tue esigenze, puoi creare ruoli personalizzati con le autorizzazioni che definisci.
Per scoprire come creare e assegnare ruoli personalizzati, consulta Creare e gestire ruoli personalizzati.