Questa pagina descrive come autenticare Config Sync nel tuo repository di immagini OCI o Helm. Config Sync richiede l'accesso di sola lettura alla tua fonte di riferimento in modo da 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 tuo tipo di origine.
La seguente tabella 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 | Supportato dalla maggior parte dei provider Git. | Richiede la gestione delle chiavi. Non supportato per OCI o Helm. |
token | Git, Helm | Supportato dalla maggior parte dei provider Git. Una buona alternativa se la tua organizzazione non consente l'uso di chiavi SSH. Supporta nome utente e password per Helm. | Richiede la gestione dei token. I token possono scadere. Non supportato per OCI. |
Service account Kubernetes | OCI, Helm | Utilizza IAM per concedere l'accesso ad Artifact Registry direttamente a un account di servizio Kubernetes. Richiede l'abilitazione di Workload Identity Federation for GKE sul cluster. | Non supportato per Git. |
Account di servizio Google | Git | Utilizza IAM, che evita di archiviare le credenziali nei secret di Kubernetes. Consigliato per Secure Source Manager e Cloud Source Repositories. Richiede l'abilitazione di Workload Identity Federation for GKE sul cluster. | Richiede la configurazione prima e dopo l'installazione di Config Sync sui cluster. Non supportato 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. | Supportato solo per i repository ospitati in GitHub. Supportato solo in Config Sync versione 1.19.1 e successive. |
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 è disattivato. 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 tua fonte di riferimento, 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 sincronizzare con Config Sync. Per maggiori informazioni, consulta le seguenti risorse:
- Aggiungi configurazioni a un'unica fonte di riferimento: informazioni concettuali sulle configurazioni.
- Best practice per GitOps: suggerimenti e best practice generali per organizzare e gestire il repository.
- Utilizza 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 per la configurazione del cluster per Config Sync.
Concedere l'accesso a un'immagine OCI
Questa sezione descrive come concedere a Config Sync l'accesso di 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 account di servizio Kubernetes
Per l'autenticazione con un account di servizio Kubernetes, nel cluster deve essere abilitata la federazione delle identità per i carichi di lavoro per GKE o la federazione delle identità per i carichi di lavoro per GKE della flotta.
Per concedere a Config Sync l'accesso in sola lettura alla tua immagine OCI utilizzando un account di servizio Kubernetes, completa i seguenti passaggi:
-
Per ottenere le autorizzazioni necessarie per creare un binding di policy, chiedi all'amministratore di concederti il ruolo IAM Service Account Admin (
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 un'autorizzazione specifica per il repository quando vuoi che gli account di servizio abbiano diversi livelli di accesso per ogni repository del tuo 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 la federazione delle identità per i carichi di lavoro per GKE del parco risorse, questo valore è l'ID progetto del parco risorse a cui è registrato il cluster.REPOSITORY
: l'ID dell'immagine.LOCATION
: la posizione regionale o multiregionale del repository.
Quando installi Config Sync,
utilizza l'account di servizio Kubernetes (k8sserviceaccount
) come tipo di autenticazione.
Utilizzare un account di servizio Compute Engine predefinito
In alternativa a un account di servizio Google, se non hai attivato la federazione delle identità per i workload per 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 tuo 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 di progetto.
Quando installi Config Sync,
utilizza il 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 di sola lettura al tuo repository Helm, crea un secret che utilizzi il nome utente e la password del tuo 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 tuo nome utente del repository Helm.PASSWORD
: la password del repository Helm.
Quando installi Config Sync, utilizza il 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 eseguire l'autenticazione utilizzando un account di servizio Kubernetes, devi soddisfare i seguenti requisiti:
- Il repository si trova in Artifact Registry.
- Il cluster ha abilitato Workload Identity Federation for GKE o Workload Identity Federation for GKE della flotta.
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 binding di policy, chiedi all'amministratore di concederti il ruolo IAM Service Account Admin (
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 tuo repository Helm, assegna il ruolo IAM Lettore Artifact Registry (
roles/artifactregistry.reader
) al account di servizio Kubernetes che include il pool Workload Identity Federation per 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 un'autorizzazione specifica per il repository quando vuoi che gli account di servizio abbiano diversi livelli di accesso per ogni repository del tuo 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 la federazione delle identità per i carichi di lavoro per GKE del parco risorse, questo valore è l'ID progetto del parco risorse a cui è registrato il cluster.REPOSITORY
: l'ID dell'immagine.LOCATION
: la posizione regionale o multiregionale del repository.
Quando installi Config Sync,
utilizza l'account di servizio Kubernetes (k8sserviceaccount
) come tipo di autenticazione.
Utilizzare un account di servizio Compute Engine predefinito
In alternativa a un account di servizio Google, se non hai attivato la federazione delle identità per i workload per 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 tuo 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 di progetto.
Quando installi Config Sync,
utilizza il 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