Questa pagina descrive come configurare Helm per l'autenticazione con i repository Artifact Registry.
Prima di iniziare
- Se non esiste un repository per i grafici, crea un nuovo repository. Scegli Docker come formato del repository.
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- (Facoltativo) Configura le impostazioni predefinite per Google Cloud CLI Cloud.
Installa Helm 3.8.0 o versioni successive. Nelle versioni precedenti di Helm, il supporto per i grafici in formato OCI è una funzionalità sperimentale.
Esegui
helm version
per verificare la tua versione.
Scelta di un metodo di autenticazione
Nella maggior parte dei casi, consigliamo di utilizzare un account di servizio per l'autenticazione in Artifact Registry.
Sono disponibili i seguenti metodi di autenticazione:
- Usa le credenziali Artifact Registry configurate per Docker
- Per impostazione predefinita, Helm può eseguire l'autenticazione con le stesse credenziali che usi per Docker.
- Token di accesso
- Le credenziali predefinite dell'applicazione forniscono token di accesso di breve durata utilizzati da un account di servizio per accedere alle risorse Google Cloud.
- File di chiave JSON
Una coppia di chiavi gestita dall'utente che puoi utilizzare come credenziale per un account di servizio. Grazie alla lunga durata, è l'opzione meno sicura tra tutti i metodi di autenticazione disponibili.
Se possibile, utilizza un token di accesso per ridurre il rischio di accesso non autorizzato agli artefatti.
Utilizzo della configurazione Docker
Per impostazione predefinita, Helm supporta le impostazioni del Registro di sistema nel file di configurazione Docker config.json. Helm trova le impostazioni del Registro di sistema nel percorso predefinito o in quello specificato dalla variabile di ambiente DOCKER_CONFIG.
Se hai configurato Docker con un assistente per le credenziali per l'autenticazione con Artifact Registry, Helm utilizza la tua configurazione esistente per i repository Docker di Artifact Registry.
Utilizzo di un token di accesso
I token di accesso sono token di breve durata che forniscono accesso alle tue risorse Google Cloud. Poiché il token è di breve durata, dovresti richiederlo meno di un'ora prima di utilizzarlo per connetterti ai repository Artifact Registry.
Google Cloud ottiene un token di accesso utilizzando Credenziali predefinite dell'applicazione.
Per utilizzare un token di accesso:
Crea un account di servizio per agire per conto della tua applicazione o scegli un account di servizio esistente da utilizzare per l'automazione.
Per configurare l'autenticazione con Artifact Registry, avrai bisogno della posizione del file delle chiavi dell'account di servizio. Per gli account esistenti, puoi visualizzare le chiavi e crearne di nuove nella pagina Account di servizio.
Concedi il ruolo Artifact Registry appropriato all'account di servizio per fornire l'accesso al repository.
Assegna la posizione del file delle chiavi dell'account di servizio alla variabile
GOOGLE_APPLICATION_CREDENTIALS
in modo che l'helper credenziali di Artifact Registry possa ottenere la chiave durante la connessione con i repository.export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
Dove KEY-FILE è il percorso del file della chiave dell'account di servizio.
Ottieni un token di accesso come credenziali quando esegui l'autenticazione in Artifact Registry con Docker.
Linux / MacOS
Esegui questo comando:
gcloud auth application-default print-access-token | helm registry login -u oauth2accesstoken \ --password-stdin https://LOCATION-docker.pkg.dev
Windows
Esegui questo comando:
gcloud auth application-default print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ https://LOCATION-docker.pkg.dev
Dove
oauth2accesstoken
è il nome utente da utilizzare per l'autenticazione con un token di accesso.gcloud auth application-default print-access-token
è il comando Google Cloud CLI per ottenere il token di accesso per l'account di servizio. Il token di accesso è la password per l'autenticazione.- LOCATION è la località a livello di una o più regioni del repository in cui è archiviata l'immagine.
Helm è ora autenticato con Artifact Registry.
Utilizzo di un file di chiave JSON
Chiunque abbia accesso a una chiave privata valida per un account di servizio potrà accedere alle risorse tramite l'account di servizio. Tieni presente che il ciclo di vita dell'accesso della chiave all'account di servizio (e quindi i dati a cui l'account di servizio ha accesso) è indipendente dal ciclo di vita dell'utente che ha scaricato la chiave.
Usa le linee guida seguenti per limitare l'accesso ai tuoi repository:
- Crea account di servizio dedicati che vengano utilizzati solo per interagire con i repository.
- Concedi il ruolo Artifact Registry specifico per l'accesso richiesto dall'account di servizio. Ad esempio, un account di servizio che scarica solo artefatti richiede solo il ruolo Lettore Artifact Registry.
- Configura le autorizzazioni per i tuoi account di servizio dedicati in ciascun repository anziché a livello di progetto. Puoi quindi specificare l'accesso in base al contesto del repository. Ad esempio, un account di servizio per le build di sviluppo potrebbe avere il ruolo Lettore Artifact Registry per un repository di produzione e il ruolo Writer Artifact Registry per un repository di gestione temporanea.
- Segui le best practice per la gestione delle chiavi degli account di servizio.
Per creare un nuovo account di servizio e una chiave dell'account di servizio da utilizzare solo con i repository Artifact Registry:
Crea un account di servizio per agire per conto della tua applicazione o scegli un account di servizio esistente da utilizzare per l'automazione.
Per configurare l'autenticazione con Artifact Registry, avrai bisogno della posizione del file delle chiavi dell'account di servizio. Per gli account esistenti, puoi visualizzare le chiavi e crearne di nuove nella pagina Account di servizio.
Facoltativamente, puoi eseguire la codifica in base64 di tutti i contenuti del file della chiave.
Linux
base64 FILE-NAME > NEW-FILE-NAME
macOS
base64 -i FILE-NAME -o NEW-FILE-NAME
Windows
Base64.exe -e FILE-NAME > NEW-FILE-NAME
dove FILE-NAME è il nome file della chiave originale e NEW-FILE-NAME è il file della chiave con codifica Base64.
Concedi il ruolo Artifact Registry appropriato all'account di servizio per fornire l'accesso al repository.
Utilizza la chiave dell'account di servizio per eseguire l'autenticazione:
Linux / MacOS
Esegui questo comando:
cat KEY-FILE | helm registry login -u KEY-TYPE --password-stdin \ https://LOCATION-docker.pkg.dev
Windows
Esegui questo comando:
helm registry login -u KEY-TYPE --password-stdin https://LOCATION-docker.pkg.dev < KEY-FILE
Dove
- KEY-TYPE corrisponde a uno dei seguenti valori:
_json_key
se utilizzi la chiave dell'account di servizio in formato JSON così come è stata fornita al momento della creazione del file._json_key_base64
se hai codificato in base64 tutti i contenuti del file.
- KEY-FILE è il nome del file della chiave dell'account di servizio in formato JSON.
- LOCATION è la località a livello di una o più regioni del repository in cui è archiviata l'immagine.
- KEY-TYPE corrisponde a uno dei seguenti valori:
Helm è ora autenticato con Artifact Registry.