Configurare l'autenticazione per Helm

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

Prima di iniziare

  1. Se non esiste un repository per i tuoi grafici, creane uno nuovo. Scegli Docker come formato del repository.
  2. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:

    gcloud init

    Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  3. (Facoltativo) Configura le impostazioni predefinite per i comandi di Google Cloud CLI.
  4. 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 versione.

Scelta di un metodo di autenticazione

Nella maggior parte dei casi, consigliamo di utilizzare un account di servizio per l'autenticazione ad Artifact Registry.

Sono disponibili i seguenti metodi di autenticazione:

Utilizzare 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 Google Cloud risorse.
File di chiavi JSON

Una coppia di chiavi gestita dall'utente che puoi utilizzare come credenziale per un account di servizio. Poiché la credenziale è di lunga durata, è l'opzione meno sicura di tutti i metodi di autenticazione disponibili.

Se possibile, utilizza un token di accesso per ridurre il rischio di accessi non autorizzati 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 registro in posizione predefinita o nella posizione specificata dalla DOCKER_CONFIG variabile di ambiente.

Se hai configurato Docker con un helper per le credenziali per l'autenticazione ad 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 Google Cloud risorse. Poiché il token è di breve durata, devi richiederlo meno di un'ora prima di utilizzarlo per connetterti ai repository di Artifact Registry.

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

Per utilizzare un token di accesso:

  1. Crea un service account che agisca per conto della tua applicazione o scegli un service account esistente che utilizzi per l'automazione.

    Per configurare l'autenticazione con Artifact Registry, avrai bisogno del percorso del file delle chiavi del account di servizio. Per gli account esistenti, puoi visualizzare le chiavi e crearne di nuove nella pagina Service account.

    Vai alla pagina Service account

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

  3. Assegna il percorso del file delle chiavi del account di servizio alla variabile GOOGLE_APPLICATION_CREDENTIALS in modo che l'helper per le credenziali di Artifact Registry possa ottenere la chiave quando si connette ai repository.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    Dove KEY-FILE è il percorso del file delle chiavi del account di servizio .

  4. Ottieni un token di accesso come credenziali quando esegui l'autenticazione ad 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.pkg.dev
    

    Windows

    Esegui questo comando:

    gcloud auth application-default print-access-token
    ya29.8QEQIfY_...
    
    helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \
    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 di 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 località regionale o multiregionale del repository.

L'autenticazione di Helm con Artifact Registry è stata eseguita.

Utilizzo di un file di chiavi 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 al account di servizio (e quindi ai dati a cui ha accesso il 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 repository:

  • Crea service account dedicati utilizzati solo per interagire con i repository.
  • Concedi il ruolo Artifact Registry specifico per l'accesso richiesto dal account di servizio. Ad esempio, un account di servizio che scarica solo gli 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 Lettore Artifact Registry per un repository di produzione e il ruolo Writer Artifact Registry per un repository di staging.
  • Segui le best practice per la gestione delle account di servizio account.

Per creare un nuovo account di servizio e una chiave del account di servizio da utilizzare solo con i repository di Artifact Registry:

  1. Crea un service account che agisca per conto della tua applicazione o scegli un service account esistente che utilizzi per l'automazione.

    Per configurare l'autenticazione con Artifact Registry, avrai bisogno del percorso del file delle chiavi del account di servizio. Per gli account esistenti, puoi visualizzare le chiavi e crearne di nuove nella pagina Service account.

    Vai alla pagina Service account

  2. (Facoltativo) Puoi codificare in base64 tutti i contenuti del file delle chiavi.

    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 delle chiavi codificato in base64.

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

  4. 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.pkg.dev
    

    Windows

    Esegui questo comando:

    helm registry login -u KEY-TYPE --password-stdin LOCATION-docker.pkg.dev < KEY-FILE
    

    Dove

    • KEY-TYPE è uno dei seguenti:
      • _json_key se utilizzi la chiave del account di servizio in formato JSON così come è stata fornita quando hai creato il file.
      • _json_key_base64 se hai codificato in base64 tutti i contenuti del file.
    • KEY-FILE è il nome del file delle chiavi del account di servizio in formato JSON.
    • LOCATION è la località regionale o multiregionale del repository.

L'autenticazione di Helm con Artifact Registry è stata eseguita.

Passaggi successivi