La configurazione dell'autenticazione Helm per Artifact Registry ti consente di eseguire il push, il pull e la gestione dei grafici nei repository in formato Docker. Esegui l'autenticazione riutilizzando le tue credenziali Docker esistenti, generando un token di accesso di breve durata o fornendo un file di chiavi del account di servizio.
Prima di iniziare
- Se non esiste un repository per i grafici, creane uno nuovo. Scegli Docker come formato del repository.
-
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud init - (Facoltativo) Configura i valori predefiniti per i comandi Google Cloud CLI.
Installa Helm 3.8.0 o versioni successive. Nelle versioni precedenti di Helm, il supporto dei grafici in formato OCI è una funzionalità sperimentale.
Esegui
helm versionper verificare la 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:
- Utilizza le credenziali di Artifact Registry configurate per Docker
- Per impostazione predefinita, Helm può eseguire l'autenticazione con le stesse credenziali che utilizzi per Docker.
- Token di accesso Le credenziali predefinite dell'applicazione
- forniscono token di accesso di breve durata che un account di servizio utilizza per accedere alle tue risorse Cloud de Confiance by S3NS .
- File di chiave JSON
Una coppia di chiavi gestita dall'utente che puoi utilizzare come credenziale per un account di servizio. Poiché le credenziali sono di lunga durata, si tratta dell'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 ai tuoi artefatti.
Utilizzo della configurazione Docker
Per impostazione predefinita, Helm supporta le impostazioni del registro nel file di configurazione Docker config.json. Helm trova le impostazioni del registry nella posizione predefinita o in quella specificata dalla variabile di ambiente DOCKER_CONFIG.
Se hai configurato Docker con un helper credenziali per l'autenticazione con Artifact Registry, Helm utilizza la 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 l'accesso alle tue risorseCloud de Confiance by S3NS . Poiché il token ha una durata limitata, devi richiederlo meno di un'ora prima di utilizzarlo per connetterti ai repository Artifact Registry.
Cloud de Confiance ottiene un token di accesso utilizzando le credenziali predefinite dell'applicazione.
Per utilizzare un token di accesso:
Crea un service account che agisca per conto della tua applicazione oppure scegli un service account esistente che utilizzi per l'automazione.
Per configurare l'autenticazione con Artifact Registry, devi conoscere la posizione del file della chiave del 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 della chiave del account di servizio alla variabile
GOOGLE_APPLICATION_CREDENTIALSin modo che l'helper delle credenziali di Artifact Registry possa ottenere la chiave quando si connette ai repository.export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILEdove KEY-FILE è il percorso del file della chiave del 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 LOCATION-docker.s3nsregistry.frWindows
Esegui questo comando:
gcloud auth application-default print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ LOCATION-docker.s3nsregistry.frDove
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 il account di servizio. Il token di accesso è la password per l'autenticazione.-
LOCATIONè la posizione regionale del repository.
Helm ora è autenticato con Artifact Registry.
Utilizzo di un file della chiave JSON
Chiunque abbia accesso a una chiave privata valida per un account di servizio potrà accedere alle risorse tramite il account di servizio. Tieni presente che il ciclo di vita dell'accesso della chiave all'account di servizio (e quindi ai dati a cui ha accesso l'account di servizio) è indipendente dal ciclo di vita dell'utente che ha scaricato la chiave.
Utilizza le seguenti linee guida per limitare l'accesso ai tuoi repository:
- Crea service account dedicati che vengono utilizzati solo per interagire con i repository.
- Concedi il ruolo Artifact Registry specifico per l'accesso richiesto dalaccount di serviziot. Ad esempio, un account di servizio che scarica solo artefatti richiede solo il ruolo Lettore Artifact Registry.
- Configura le autorizzazioni per i service account dedicati su ogni 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 Artifact Registry Reader per un repository di produzione e il ruolo Artifact Registry Writer 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 del account di servizio da utilizzare solo con i repository Artifact Registry:
Crea un service account che agisca per conto della tua applicazione oppure scegli un service account esistente che utilizzi per l'automazione.
Per configurare l'autenticazione con Artifact Registry, devi conoscere la posizione del file della chiave del account di servizio. Per gli account esistenti, puoi visualizzare le chiavi e crearne di nuove nella pagina Account di servizio.
Se vuoi, puoi codificare in base64 tutti i contenuti del file della chiave.
Linux
base64 FILE-NAME > NEW-FILE-NAMEmacOS
base64 -i FILE-NAME -o NEW-FILE-NAMEWindows
Base64.exe -e FILE-NAME > NEW-FILE-NAMEdove FILE-NAME è il nome del file della chiave originale e NEW-FILE-NAME è il file della chiave codificato in base64.
Concedi il ruolo Artifact Registry appropriato al service account per fornire l'accesso al repository.
Utilizza la chiave del account di servizio per l'autenticazione:
Linux / macOS
Esegui questo comando:
cat KEY-FILE | helm registry login -u KEY-TYPE --password-stdin \ LOCATION-docker.s3nsregistry.frWindows
Esegui questo comando:
helm registry login -u KEY-TYPE --password-stdin LOCATION-docker.s3nsregistry.fr < KEY-FILEDove
- KEY-TYPE è uno dei seguenti:
_json_keyse utilizzi la chiave del account di servizio in formato JSON così come è stata fornita al momento della creazione del file._json_key_base64se 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 posizione regionale del repository.
- KEY-TYPE è uno dei seguenti:
Helm ora è autenticato con Artifact Registry.