Utilizzo dei secret

Scopri come creare un secret e configurare i servizi Cloud Run for Anthos e le revisioni per utilizzare quel Secret.

Un caso d'uso comune per un servizio è l'accesso ad applicazioni di terze parti tramite nomi utente e password. Per Google Kubernetes Engine, è una best practice archiviare queste informazioni sensibili in un oggetto Secret Kubernetes.

Per fornire i tuoi container l'accesso ai secret, puoi montare ogni Secret come un volume, in modo che le voci nel Secret siano disponibili al container come file. Devi montare il tuo secret per assicurarti di ottenere l'ultima versione di ogni secret quando viene letto.

Puoi anche trasmettere un secret utilizzando variabili di ambiente.

Creazione di un secret

I passaggi seguenti mostrano semplicemente come creare un secret, ma esistono diversi modi per creare un secret, come spiegato nell'argomento Secret.

Quando crei un secret, assicurati di crearlo nello stesso spazio dei nomi del cluster che esegue il tuo servizio Cloud Run for Anthos. In questi esempi viene utilizzato lo spazio dei nomi default.

Per creare un Secret nello spazio dei nomi default del tuo cluster:

  • Crea un Secret utilizzando un file:

    echo -n 'devuser' > ./username.txt
    echo -n 'S!B\*d$zDsb' > ./password.txt
    kubectl create secret generic user-creds --from-file=./username.txt --from-file=./password.txt
    
  • Crea un Secret utilizzando solo un comando kubectl:

    kubectl create secret generic user-creds --from-literal=username=devuser --from-literal=password='S!B\*d$zDsb'
    

Rendere un secret disponibile per un servizio

Puoi impostare i secret utilizzando la console Google Cloud o lo strumento a riga di comando dell'interfaccia a riga di comando di Google Cloud quando esegui il deployment di un nuovo servizio o aggiorni un servizio esistente ed esegui il deployment di una revisione:

console

  1. Vai a Cloud Run for Anthos in Google Cloud Console:

    Vai a Cloud Run for Anthos

  2. Fai clic su Crea servizio se stai configurando un nuovo servizio in cui stai eseguendo il deployment. Se stai configurando un servizio esistente, fai clic sul servizio, quindi su Modifica e esegui il deployment di una nuova revisione.

  3. In Impostazioni avanzate, fai clic su Variabili e secret.

    immagine

  4. In Riferimento a un secret, seleziona il secret preferito dal menu a discesa.

    • Nel menu a discesa Metodo di riferimento, seleziona il modo in cui vuoi utilizzare il secret, montato come volume o esposto come variabili di ambiente.
    • Se utilizzi mount come volume, specifica il percorso, quindi fai clic su Fine.
    • Se esporre i dati come variabili di ambiente:
      1. Specifica il Nome della variabile e seleziona il valore del Secret corrispondente dal menu a discesa Chiave.
      2. Fai clic su Aggiungi per aggiungere un altro valore del secret.
      3. Specifica il Nome della variabile e seleziona il valore del Secret corrispondente dal menu a discesa Chiave.
      4. Fai clic su Fine.

  5. Fai clic su Avanti per passare alla sezione successiva.

  6. Nella sezione Configura il funzionamento del servizio, seleziona la connettività che vuoi utilizzare per richiamare il servizio.

  7. Fai clic su Crea per eseguire il deployment dell'immagine in Cloud Run for Anthos e attendere il completamento del deployment.

Riga di comando

Puoi utilizzare l'interfaccia a riga di comando di Google Cloud per impostare i Secret per i nuovi servizi o per aggiornare i servizi esistenti:

  • Per i servizi esistenti, aggiorna un secret eseguendo il comando gcloud run services update con uno dei seguenti parametri:

    Esempio:

    gcloud run services update SERVICE --update-secrets KEY1=VALUE1,KEY2=VALUE2

    Sostituisci:

    • SERVICE con il nome del tuo servizio.
    • KEY1=VALUE1,KEY2=VALUE2 con un elenco separato da virgole di coppie nome/valore per ogni secret. Per ogni KEY specifichi il percorso iniziando con una barra / per montare un Secret come file. Facoltativamente, puoi escludere la barra per montare il secret come variabile di ambiente. Per ogni VALUE, specifica il nome del secret. Come specificare più parametri.
    • Opzioni dei parametri di comando

      Per specificare diversi insiemi di coppie chiave-valore, puoi specificare più parametri per la leggibilità. Esempio:
      [...]
      --update-secrets "KEY=VALUE1" \
      --update-secrets "KEY=VALUE2" \
      --update-secrets "KEY=VALUE3"
  • Per i nuovi servizi, imposta un Secret eseguendo il comando gcloud run deploy con il parametro --set-secrets:

    gcloud run deploy SERVICE --image=IMAGE_URL --set-secrets KEY1=VALUE1,KEY2=VALUE2

    Sostituisci:

    • IMAGE_URL con un riferimento all'immagine container, ad esempio gcr.io/myproject/my-image:latest.
    • SERVICE con il nome del tuo servizio.
    • KEY1=VALUE1,KEY2=VALUE2 con un elenco separato da virgole di coppie nome/valore per ogni secret. Per ogni KEY specifichi il percorso iniziando con una barra / per montare un Secret come file. Facoltativamente, puoi escludere la barra per montare il secret come variabile di ambiente. Per ogni VALUE, specifica il nome del secret. Come specificare più parametri.
    • Opzioni dei parametri di comando

      Per specificare diversi insiemi di coppie chiave-valore, puoi specificare più parametri per la leggibilità. Esempio:
      [...]
      --update-secrets "KEY=VALUE1" \
      --update-secrets "KEY=VALUE2" \
      --update-secrets "KEY=VALUE3"