Questa pagina descrive come autenticare Config Sync nel repository di immagini OCI o Helm. Config Sync richiede l'accesso in sola lettura alla fonte attendibile per poter leggere le configurazioni, applicarle ai cluster e mantenerle sincronizzate.
Scegliere un metodo di autenticazione
Il metodo di autenticazione che utilizzi dipende da ciò che è supportato per il tipo di origine.
La tabella seguente riassume i metodi di autenticazione che puoi utilizzare con Config Sync:
| Metodo | Origini supportate | Descrizione | Limitazioni |
|---|---|---|---|
| Nessuna autenticazione | Git, OCI, Helm | Non è richiesta alcuna configurazione aggiuntiva. | Funziona solo se la fonte attendibile è pubblica. |
| Coppia di chiavi SSH | Git | Supportata dalla maggior parte dei provider Git. | Richiede la gestione delle chiavi. Non supportata per OCI o Helm. |
| Token | Git, OCI, Helm | Supportata dalla maggior parte dei provider Git. Una buona alternativa se la tua organizzazione non consente l'utilizzo delle chiavi SSH. Supporta nome utente e password per OCI e Helm. | Richiede la gestione dei token. I token possono scadere. |
| Service account Kubernetes | OCI, Helm | Utilizza IAM per concedere l'accesso ad Artifact Registry direttamente a un account di servizio Kubernetes. Richiede che Workload Identity Federation for GKE sia abilitato sul cluster. | Non supportata per Git. |
| Service account Google | Git | Utilizza IAM, il che evita di archiviare le credenziali nei secret Kubernetes. Consigliato per Secure Source Manager e Cloud Source Repositories. Richiede che Workload Identity Federation for GKE sia abilitato sul cluster. | Richiede la configurazione prima e dopo l'installazione di Config Sync sui cluster. Non supportata per i repository ospitati al di fuori di Secure Source Manager o Cloud Source Repositories. |
| App GitHub | Git | Integrazione diretta con GitHub. Consente autorizzazioni granulari. | Supportata solo per i repository ospitati in GitHub. |
Config Sync supporta anche i seguenti metodi di autenticazione. Tuttavia, questi metodi sono consigliati solo se non puoi utilizzare una delle opzioni elencate nella tabella precedente:
- cookiefile: potrebbe non essere supportato per tutti i provider Git. Non supportato per OCI o Helm.
- Service account predefinito di Compute Engine (
gcenode): non consigliato perché questo metodo funziona solo se Workload Identity Federation for GKE è disabilitato. Supportato per Git, OCI e Helm. - Service account di servizio per Helm e OCI: supportato, ma non consigliato perché il metodo account di servizio Kubernetes richiede meno configurazione.
Prima di iniziare
Prima di concedere a Config Sync l'accesso di sola lettura alla fonte attendibile, completa le seguenti attività:
Prepara o accedi a un'immagine OCI o a un repository Helm in cui archiviare i file di configurazione che vuoi che Config Sync sincronizzi. Per saperne di più, consulta le seguenti risorse:
- Aggiungere configurazioni a una fonte attendibile: informazioni concettuali sulle configurazioni.
- Best practice di GitOps: suggerimenti e best practice generali per organizzare e gestire il repository.
- Utilizzare un repository non strutturato: consigli per l'utilizzo e l'organizzazione di un repository non strutturato.
Crea o accedi a un cluster GKE. Prima di creare un cluster, esamina i requisiti e i consigli di configurazione del cluster per Config Sync.
Concedere l'accesso a un'immagine OCI
Questa sezione descrive come concedere a Config Sync l'accesso in sola lettura alle immagini OCI utilizzando un metodo di autenticazione supportato.
Per l'autenticazione a Config Sync, devi archiviare le immagini OCI in Artifact Registry.
Utilizzare un token
Per utilizzare un token per concedere a Config Sync l'accesso in sola lettura al repository OCI, crea un secret che utilizzi il nome utente e la password del repository OCI:
kubectl create secret generic SECRET_NAME \
--namespace=config-management-system \
--from-literal=username=USERNAME \
--from-literal=password=PASSWORD
Sostituisci quanto segue:
SECRET_NAME: un nome per il secret.USERNAME: il nome utente del repository OCI.PASSWORD: la password del repository OCI.
Quando installi Config Sync, utilizza token (token) come tipo di autenticazione.
Devi anche specificare il nome del secret nel campo spec.oci.secretRef.name.
Utilizzare un account di servizio Kubernetes
Per l'autenticazione con un account di servizio Kubernetes, il cluster deve avere Workload Identity Federation for GKE o Workload Identity Federation for GKE del parco risorse abilitato.
Per concedere a Config Sync l'accesso in sola lettura all'immagine OCI utilizzando un account di servizio Kubernetes, completa i seguenti passaggi:
-
Per ottenere le autorizzazioni necessarie per creare un'associazione di policy, chiedi all'amministratore di concederti il ruolo IAM Amministratore service account (
roles/iam.serviceAccountAdmin) sul account di servizio. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Concedi il ruolo IAM Lettore Artifact Registry (
roles/artifactregistry.reader) al account di servizio Kubernetes che include il pool Workload Identity Federation for GKE:Concedi l'autorizzazione a livello di progetto se le stesse autorizzazioni si applicano a tutti i repository del progetto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"Concedi l'autorizzazione specifica per il repository quando vuoi che i service account abbiano livelli di accesso diversi per ogni repository del progetto.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.FLEET_HOST_PROJECT_ID: se utilizzi Workload Identity Federation for GKE, questo valore è uguale all'ID progetto. Se utilizzi Workload Identity Federation for GKE del parco risorse, questo valore è l'ID progetto del parco risorse a cui è registrato il cluster.REPOSITORY: l'ID dell'immagine.LOCATION: la località regionale o multiregionale del repository.
Quando installi Config Sync, utilizza account di servizio Kubernetes (k8sserviceaccount) come tipo di autenticazione.
Utilizzare un account di servizio predefinito di Compute Engine
In alternativa a un account di servizio Google, se non hai abilitato Workload Identity Federation for GKE, puoi utilizzare un account di servizio Compute Engine per l'autenticazione.
Per utilizzare un account di servizio predefinito di Compute Engine per concedere a Config Sync l'accesso in sola lettura al repository, concedi al account di servizio Compute Engine l'autorizzazione di lettura ad Artifact Registry:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role=roles/artifactregistry.reader
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progettoPROJECT_NUMBER: il numero del progetto.
Quando installi Config Sync, utilizza account di servizio Compute Engine (gcenode) come tipo di autenticazione.
Concedere l'accesso a un repository Helm
Questa sezione descrive come concedere a Config Sync l'accesso di sola lettura ai grafici Helm archiviati in un repository.
Utilizzare un token
Per utilizzare un token per concedere a Config Sync l'accesso in sola lettura al repository Helm, crea un secret che utilizzi il nome utente e la password del repository Helm:
kubectl create secret generic SECRET_NAME \
--namespace=config-management-system \
--from-literal=username=USERNAME \
--from-literal=password=PASSWORD
Sostituisci quanto segue:
SECRET_NAME: un nome per il secret.USERNAME: il nome utente del repository Helm.PASSWORD: la password del repository Helm.
Quando installi Config Sync, utilizza token (token) come tipo di autenticazione.
Devi anche specificare il nome del secret nel campo spec.helm.secretRef.name.
Utilizzare un account di servizio Kubernetes
Per l'autenticazione utilizzando un account di servizio Kubernetes, devi soddisfare i seguenti requisiti:
- Il repository si trova in Artifact Registry.
- Il cluster ha Workload Identity Federation for GKE o Workload Identity Federation for GKE del parco risorse abilitato.
Per utilizzare un account di servizio Kubernetes per concedere a Config Sync l'accesso in sola lettura al repository Helm, completa i seguenti passaggi:
-
Per ottenere le autorizzazioni necessarie per creare un'associazione di policy, chiedi all'amministratore di concederti il ruolo IAM Amministratore service account (
roles/iam.serviceAccountAdmin) sul account di servizio. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per utilizzare un account di servizio Kubernetes per concedere a Config Sync l'accesso in sola lettura al repository Helm, concedi il ruolo IAM Lettore Artifact Registry (
roles/artifactregistry.reader) al account di servizio Kubernetes che include il pool Workload Identity Federation for GKE:Concedi l'autorizzazione a livello di progetto se le stesse autorizzazioni si applicano a tutti i repository del progetto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"Concedi l'autorizzazione specifica per il repository quando vuoi che i service account abbiano livelli di accesso diversi per ogni repository del progetto.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.FLEET_HOST_PROJECT_ID: se utilizzi Workload Identity Federation for GKE, questo valore è uguale all'ID progetto. Se utilizzi Workload Identity Federation for GKE del parco risorse, questo valore è l'ID progetto del parco risorse a cui è registrato il cluster.REPOSITORY: l'ID dell'immagine.LOCATION: la località regionale o multiregionale del repository.
Quando installi Config Sync, utilizza account di servizio Kubernetes (k8sserviceaccount) come tipo di autenticazione.
Utilizzare un account di servizio predefinito di Compute Engine
In alternativa a un account di servizio Google, se non hai abilitato Workload Identity Federation for GKE, puoi utilizzare un account di servizio Compute Engine per l'autenticazione.
Per utilizzare un account di servizio predefinito di Compute Engine per concedere a Config Sync l'accesso in sola lettura al repository, concedi al account di servizio Compute Engine l'autorizzazione di lettura ad Artifact Registry:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role=roles/artifactregistry.reader
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progettoPROJECT_NUMBER: il numero del progetto.
Quando installi Config Sync, utilizza account di servizio Compute Engine (gcenode) come tipo di autenticazione.
Passaggi successivi
- Installare Config Sync con le impostazioni predefinite
- Personalizzare l'installazione di Config Sync