Secrets verwenden

Erfahren Sie, wie Sie ein Secret erstellen und Cloud Run for Anthos-Dienste und -Überarbeitungen so konfigurieren, dass dieses Secret verwendet wird.

Ein häufiger Anwendungsfall für einen Dienst ist der Zugriff auf Anwendungen von Drittanbietern über Nutzernamen und Passwörter. Für Google Kubernetes Engine empfiehlt es sich, diese vertraulichen Informationen in einem Secret-Objekt von Kubernetes zu speichern.

Um Ihren Containern Zugriff auf Secrets zu gewähren, können Sie jedes Secret als Volume bereitstellen. Dadurch werden die Einträge im Secret als Dateien für den Container verfügbar. Sie sollten Ihr Secret bereitstellen, um dafür zu sorgen, dass Sie beim Lesen die neueste Version jedes Secrets erhalten.

Sie können ein Secret auch mit Umgebungsvariablen übergeben.

Secret erstellen

Die folgenden Schritte zeigen lediglich, wie ein Secret erstellt wird, aber es gibt mehrere Möglichkeiten, ein Secret zu erstellen. Dies wird im Thema Secret erläutert.

Achten Sie beim Erstellen eines Secrets darauf, dass Sie es im selben Namespace erstellen wie den Cluster, auf dem Ihr Cloud Run for Anthos-Dienst ausgeführt wird. In dieser Anleitung wird der Namespace default verwendet.

So erstellen Sie ein Secret im Namespace default Ihres Clusters:

  • Erstellen Sie mithilfe einer Datei ein Secret:

    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
    
  • Erstellen Sie ein Secret nur mit einem kubectl-Befehl:

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

Secret für einen Dienst bereitstellen

Sie können Secrets mit der Cloud Console oder dem Google Cloud CLI-Befehlszeilentool festlegen, wenn Sie einen neuen Dienst bereitstellen oder einen vorhandenen Dienst aktualisieren und eine Überarbeitung bereitstellen:

Console

  1. Rufen Sie Cloud Run for Anthos in der Google Cloud Console auf:

    Zu Cloud Run for Anthos

  2. Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Klicken Sie unter Erweiterte Einstellungen auf Variablen und Secrets.

    Image

  4. Wählen Sie unter Secret-Referenz das gewünschte Secret aus dem Drop-down-Menü aus.

    • Wählen Sie im Drop-down-Menü Referenzmethode aus, wie Sie Ihr Secret verwenden möchten: als Volume oder als Umgebungsvariablen bereitstellen.
    • Wenn Sie die Bereitstellung als Volume verwenden, geben Sie den Pfad an und klicken Sie auf Fertig.
    • Wenn Sie das Secret als Umgebungsvariable bereitstellen:
      1. Geben Sie den Namen der Variable an und wählen Sie im Drop-down-Menü Schlüssel den entsprechenden Secret-Wert aus.
      2. Klicken Sie auf Hinzufügen, um einen weiteren Secret-Wert hinzuzufügen.
      3. Geben Sie den Namen der Variable an und wählen Sie im Drop-down-Menü Schlüssel den entsprechenden Secret-Wert aus.
      4. Klicken Sie auf Fertig.

  5. Klicken Sie auf Weiter, um mit dem nächsten Abschnitt fortzufahren.

  6. Wählen Sie im Abschnitt Konfigurieren, wie dieser Dienst ausgelöst wird die Verbindung aus, die Sie zum Auslösen des Dienstes verwenden möchten.

  7. Klicken Sie auf Erstellen, um das Image in Cloud Run for Anthos bereitzustellen. Warten Sie dann, bis die Bereitstellung abgeschlossen ist.

Befehlszeile

Sie können das Google Cloud CLI verwenden, um Secrets für neue Dienste festzulegen oder vorhandene Dienste zu aktualisieren:

  • Aktualisieren Sie für vorhandene Dienste ein Secret, indem Sie den Befehl gcloud run services update mit einem der folgenden Parameter ausführen:

    Beispiel:

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

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • KEY1=VALUE1,KEY2=VALUE2 durch eine durch Kommas getrennte Liste von Name und Wertpaaren für jedes Secret. Geben Sie für jeden KEY einen Pfad beginnend mit einem Schrägstrich / an, um ein Secret als Datei bereitzustellen. Optional können Sie den Schrägstrich ausschließen, um das Secret als Umgebungsvariable bereitzustellen. Geben Sie für jeden VALUE den Secret-Namen an. So legen Sie mehrere Parameter fest.
    • Optionen für Befehlsparameter

      Wenn Sie mehrere Gruppen von Schlüssel/Wert-Paaren angeben möchten, können Sie mehrere Parameter angeben, um die Lesbarkeit zu verbessern. Beispiel:
      [...]
      --update-secrets "KEY=VALUE1" \
      --update-secrets "KEY=VALUE2" \
      --update-secrets "KEY=VALUE3"
      
  • Legen Sie für neue Dienste ein Secret fest, indem Sie den Befehl gcloud run deploy mit dem Parameter --set-secrets ausführen:

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

    Ersetzen Sie:

    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/myproject/my-image:latest.
    • SERVICE durch den Namen des Dienstes.
    • KEY1=VALUE1,KEY2=VALUE2 durch eine durch Kommas getrennte Liste von Name und Wertpaaren für jedes Secret. Geben Sie für jeden KEY einen Pfad beginnend mit einem Schrägstrich / an, um ein Secret als Datei bereitzustellen. Optional können Sie den Schrägstrich ausschließen, um das Secret als Umgebungsvariable bereitzustellen. Geben Sie für jeden VALUE den Secret-Namen an. So legen Sie mehrere Parameter fest.
    • Optionen für Befehlsparameter

      Wenn Sie mehrere Gruppen von Schlüssel/Wert-Paaren angeben möchten, können Sie mehrere Parameter angeben, um die Lesbarkeit zu verbessern. Beispiel:
      [...]
      --update-secrets "KEY=VALUE1" \
      --update-secrets "KEY=VALUE2" \
      --update-secrets "KEY=VALUE3"