Configura l'autenticazione per Helm

Questa pagina descrive come configurare Helm per l'autenticazione con Artifact Registry repository.

Prima di iniziare

  1. Se non esiste un repository per i grafici, per creare un nuovo repository. Scegli Docker come formato di repository.
  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init
  3. (Facoltativo) Configura le impostazioni predefinite per Google Cloud CLI Cloud.
  4. Installa Helm 3.8.0 o versioni successive. Nelle versioni precedenti di Helm, il supporto per i grafici in formato OCI è 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ò autenticarsi con le stesse credenziali che che usi per Docker.
Token di accesso
Credenziali predefinite dell'applicazione fornire token di accesso di breve durata che per accedere alle tue risorse Google Cloud.
File di chiave JSON

Una coppia di chiavi gestita dall'utente che puoi utilizzare come credenziale per un l'account di servizio. Poiché la credenziale ha una lunga durata, è la meno sicura di 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 di sistema nel file di configurazione Docker config.json. Helm trova le impostazioni del Registro di sistema in la località predefinita o quella specificata DOCKER_CONFIG.

Se hai configurato Docker con un assistente per le 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 ai tuoi dell'accesso a specifiche risorse Google Cloud. Poiché il token è di breve durata, dovresti richiedere meno di un'ora prima di utilizzarlo per la connessione ad Artifact Registry repository.

Google Cloud ottiene un token di accesso utilizzando Credenziali predefinite dell'applicazione.

Per utilizzare un token di accesso:

  1. Creare un servizio di agire per conto della tua applicazione o di scegliere un servizio esistente l'account di servizio che usi per l'automazione.

    Devi specificare la posizione del file della chiave dell'account di servizio da configurare l'autenticazione con Artifact Registry. Nel caso di account esistenti, puoi visualizzare le chiavi e crearne di nuove nella pagina Account di servizio.

    Vai alla pagina Account di servizio

  2. Concedi al servizio il ruolo Artifact Registry appropriato per fornire l'accesso al repository.

  3. Assegna alla variabile la posizione del file della chiave dell'account di servizio GOOGLE_APPLICATION_CREDENTIALS in modo che Artifact Registry l'helper di credenziali può ottenere la tua chiave quando ti connetti ai repository.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    Dove KEY-FILE è il percorso dell'account di servizio file della chiave.

  4. Ottenere un token di accesso come credenziali quando esegui l'autenticazione su 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 è Google Cloud CLI per ottenere il token di accesso per l'account di servizio. Il tuo accesso token è la password per l'autenticazione.
    • LOCATION è il una o più regioni località 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 sarà in grado di per accedere alle risorse tramite l'account di servizio. Tieni presente che il ciclo di vita l'accesso della chiave all'account di servizio (e quindi ai dati di cui l'account di servizio all'accesso) è indipendente dal ciclo di vita dell'utente che ha scaricato chiave.

Usa le linee guida seguenti per limitare l'accesso ai tuoi repository:

  • Crea account di servizio dedicati che vengano utilizzati solo per interagire repository.
  • Concedi il ruolo Artifact Registry specifico per l'accesso richiesto dall'account di servizio. Ad esempio, un account di servizio che scarica solo gli artefatti richiede solo Artifact Registry Reader ruolo.
  • Configura le autorizzazioni per i tuoi account di servizio dedicati non 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 potrebbero avere il ruolo Lettore Artifact Registry un repository di produzione e il ruolo Writer Artifact Registry per repository 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 con Solo repository Artifact Registry:

  1. Creare un servizio di agire per conto della tua applicazione o di scegliere un servizio esistente l'account di servizio che usi per l'automazione.

    Devi specificare la posizione del file della chiave dell'account di servizio da configurare l'autenticazione con Artifact Registry. Nel caso di account esistenti, puoi visualizzare le chiavi e crearne di nuove nella pagina Account di servizio.

    Vai alla pagina Account di servizio

  2. 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 NEW-FILE-NAME è il tuo file di chiave con codifica Base64.

  3. Concedi al servizio il ruolo Artifact Registry appropriato per fornire l'accesso al repository.

  4. 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:
      • _json_key se utilizzi la chiave dell'account di servizio in formato JSON fornito al momento della creazione del file.
      • _json_key_base64 se hai codificato in base64 tutti i contenuti dei file .
    • KEY-FILE è il nome del file della chiave dell'account di servizio in JSON.
    • LOCATION è il una o più regioni località del repository in cui dell'immagine condivisa.

Helm è ora autenticato con Artifact Registry.

Passaggi successivi