Mit geheimen Schlüsseln arbeiten
In Code Engineerfahren Sie, wie Sie mit geheimen Schlüsseln arbeiten können. In Code Engine können Sie Ihre Informationen als Schlüssel-Wert-Paare in Secrets speichern, die von Ihrer Funktion, Ihrem Job oder Ihrer Anwendung unter Verwendung von Umgebungsvariablen verwendet werden können.
Was sind Geheimnisse und warum sollte ich sie nutzen?
In Code Enginesind geheime Schlüssel (und ConfigMaps) eine Sammlung von Schlüssel/Wert-Paaren. Wenn sie Umgebungsvariablen zugeordnet sind, werden die NAME=VALUE-Beziehungen so konfiguriert, dass der Name der Umgebungsvariablen
dem 'Schlüssel' der einzelnen Einträge in diesen Zuordnungen entspricht und der Wert der Umgebungsvariablen dem 'Wert' des jeweiligen Schlüssels.
Von einem geheimen Schlüssel wird eine Methode zum Einschließen sensibler Konfigurationsinformationen wie Kennwörter oder SSH-Schlüssel bereitgestellt. Indem Sie Werte aus Ihrem Geheimnis referenzieren, können Sie sensible Informationen von Ihrer Bereitstellung entkoppeln, um Ihre Anwendung, Funktion oder Aufgabe portabel zu halten. Alle, die über eine Zugriffsberechtigung für Ihr Projekt verfügen, können auch Ihre geheimen Schlüssel anzeigen; bedenken Sie, dass die Informationen des geheimen Schlüssels mit diesen Benutzern gemeinsam genutzt werden können. Geheime Schlüssel enthalten die Informationen in Form von Schlüssel/Wert-Paaren.
Da Secrets und Configmaps ähnliche Entitäten sind (mit dem Unterschied, dass Secrets sicherer gespeichert werden), ist auch die Art und Weise, wie Sie mit Secrets und Configmaps interagieren und arbeiten, ähnlich. Weitere Informationen zu Konfigurationszuordnungen finden Sie unter Mit Konfigurationszuordnungen arbeiten.
Welche Art von geheimen Schlüsseln kann ich in Code Engineerstellen?
Code Engine unterstützt verschiedene geheime Schlüssel und stellt Optionen zum Erstellen und Arbeiten mit geheimen Schlüsseln bereit.
In der folgenden Tabelle sind die unterstützten geheimen Schlüssel in Code Enginezusammengefasst.
| Name | Beschreibung |
|---|---|
| Basisauthentifizierung | Ein geheimer Schlüssel, der einen Schlüssel username und password enthält.Verwenden Sie grundlegende Authentifizierungsgeheimnisse, wenn Sie auf einen Dienst zugreifen, der eine grundlegende HTTP Authentifizierung erfordert. |
| Generisch | Ein geheimer Schlüssel, der einfache Schlüssel/Wert-Paare und Code Engine speichert, geht weder von den definierten Schlüssel/Wert-Paaren noch von der beabsichtigten Verwendung des geheimen Schlüssels aus. Verwenden Sie generische geheime Schlüssel, wenn Sie eigene Schlüssel/Wert-Paare für den Zugriff auf einen Service definieren wollen. |
| HMAC | Ein Geheimnis, das einen access_key_id und einen secret_access_key Schlüssel enthält.Verwenden Sie HMAC-Anmeldeinformationen, um S3-compatible Tools und Bibliotheken zu verwenden, die eine Authentifizierung erfordern, aber keine IBM Cloud® Identity and Access Management API-Schlüssel unterstützen. |
| Registry | Ein geheimer Schlüssel, der Berechtigungsnachweise für den Zugriff auf eine Container-Registry speichert. Verwenden Sie geheime Registry-Schlüssel, wenn Sie mit Code Engine-Apps oder -Jobs für den Zugriff auf ein Container-Image arbeiten. Oder Sie verwenden Code Engine, um ein Container-Image zu erstellen, und der geheime Registry-Schlüssel wird von Code Engine verwendet, um auf die Registry zuzugreifen, um das erstellte Container-Image zu speichern. Dieser geheime Schlüssel wird in der Befehlszeilenschnittstelle auch als Registry access secret bezeichnet. |
| Servicezugriff | Ein geheimer Schlüssel, der Berechtigungsnachweise für den Zugriff auf eine IBM Cloud-Serviceinstanz speichert. Verwenden Sie Dienstzugriffsgeheimnisse, wenn Sie mit Dienstverknüpfungen in Code Engine arbeiten. Code Engine kann dieses Geheimnis automatisch generieren oder Sie können Ihr eigenes benutzerdefiniertes Dienstzugriffsgeheimnis erstellen. |
| SSH | Ein geheimer Schlüssel, der Berechtigungsnachweise für die Authentifizierung bei einem Service mit einem SSH-Schlüssel speichert, z. B. die Authentifizierung bei einem Git-Repository, z. B. GitHub oder GitLab. Verwenden Sie geheime SSH-Schlüssel, wenn Code Engine ein Container-Image für Sie erstellen soll. Code Engine verwendet diesen geheimen Schlüssel, um auf Ihren Quellcode in einem Code-Repository zuzugreifen. Verwenden Sie diesen geheimen Schlüssel beispielsweise bei Buildausführungen, um auf Ihren Quellcode in einem Repository wie GitHub oder GitLabzuzugreifen. Dieser geheime Schlüssel wird auch als Git repository access secret in der Befehlszeilenschnittstelle und Code repo access in der Konsole verwendet. |
| Transport Layer Security (TLS) | Ein geheimer Schlüssel, der ein signiertes TLS-Zertifikat enthält, einschließlich aller Zwischenzertifikate und des zugehörigen privaten Schlüssels von einer Zertifizierungsstelle (CA). Verwenden Sie geheime TLS-Schlüssel, wenn Sie mit angepassten Domänenzuordnungen in Code Enginearbeiten. |
Geheime Schlüssel erstellen
Verwenden Sie Geheimnisse, um Ihren Anwendungen, Aufträgen oder Funktionen sensible Informationen zur Verfügung zu stellen. Geheime Schlüssel sind in Schlüssel/Wert-Paaren definiert und die in den geheimen Schlüsseln gespeicherten Daten sind verschlüsselt.
Geheimen Schlüssel über die Konsole erstellen
In diesem Abschnitt erfahren Sie, wie Sie geheime Schlüssel über die Code Engine-Konsole erstellen können.
In diesem Abschnitt erfahren Sie, wie Sie die folgenden Typen von geheimen Schlüsseln über die Konsole erstellen:
Erstellen eines generischen Geheimnisses von der Konsole aus
Lernen Sie, wie Sie über die Code Engine Konsole generische Secrets erstellen, die von Funktionen, Jobs oder Anwendungen als Umgebungsvariablen verwendet werden können.
Erstellen Sie zunächst ein Projekt, bevor Sie beginnen.
- Wenn Ihr Projekt den Status Aktiv hat, klicken Sie auf der Seite Code Engine Projekte auf den Namen Ihres Projekts.
- Klicken Sie auf der Seite 'Komponenten' auf Geheime Schlüssel und Konfigurationszuordnungen.
- Klicken Sie auf der Seite 'Geheime Schlüssel und Konfigurationszuordnungen' auf Erstellen, um Ihren geheimen Schlüssel zu erstellen.
- Führen Sie auf der Seite 'Create secret or configmap' die folgenden Schritte aus:
- Wählen Sie Generischer geheimer Schlüssel aus und klicken Sie auf Next.
- Geben Sie einen Namen an, z. B.
mysecret-generic. - Klicken Sie auf Schlüssel/Wert-Paar hinzufügen. Geben Sie ein oder mehrere Schlüssel/Wert-Paare für diesen geheimen Schlüssel an. Geben Sie zum Beispiel einen Schlüssel als
secret1mit dem Wertmysecret1und einen anderen Schlüssel alssecret2mit dem Werttarget-secretan. Der von Ihnen für den Schlüssel gewählte Namen muss nicht mit dem Namen der Umgebungsvariablen übereinstimmen. Der ausgeblendete Wert für den Schlüssel kann übrigens bei Bedarf angezeigt werden. - Klicken Sie auf Erstellen, um den geheimen Schlüssel zu erstellen.
Nachdem Ihr Geheimnis von der Konsole aus erstellt wurde, gehen Sie zur Seite Secrets and configmaps, um eine Liste der definierten Geheimnisse und configmaps anzuzeigen. Sie können Filter anwenden, um die Liste an Ihre Anforderungen anzupassen.
Erstellen eines HMAC-Geheimnisses über die Konsole
Erfahren Sie, wie Sie HMAC-Geheimnisse über die Konsole Code Engine erstellen, die von Funktionen, Jobs oder Anwendungen als Umgebungsvariablen verwendet werden können. Sie werden mit S3-compatible Tools und Bibliotheken verwendet, die eine Authentifizierung erfordern, aber keine IBM Cloud® Identity and Access Management API-Schlüssel unterstützen.
Erstellen Sie zunächst ein Projekt, bevor Sie beginnen.
- Wenn Ihr Projekt den Status Aktiv hat, klicken Sie auf der Seite Code Engine Projekte auf den Namen Ihres Projekts.
- Klicken Sie auf der Seite 'Komponenten' auf Geheime Schlüssel und Konfigurationszuordnungen.
- Klicken Sie auf der Seite 'Geheime Schlüssel und Konfigurationszuordnungen' auf Erstellen, um Ihren geheimen Schlüssel zu erstellen.
- Führen Sie auf der Seite 'Create secret or configmap' die folgenden Schritte aus:
- Wählen Sie HMAC secret und klicken Sie auf Next.
- Geben Sie einen Namen an, z. B.
mysecret-hmac. - Geben Sie die Zugriffsschlüssel-ID an.
- Geben Sie den geheimen Zugangsschlüssel an. Der ausgeblendete Wert für den Schlüssel kann übrigens bei Bedarf angezeigt werden.
- Klicken Sie auf Erstellen, um den geheimen Schlüssel zu erstellen.
Nachdem Ihr Geheimnis von der Konsole aus erstellt wurde, gehen Sie zur Seite Secrets and configmaps, um eine Liste der definierten Geheimnisse und configmaps anzuzeigen. Sie können Filter anwenden, um die Liste an Ihre Anforderungen anzupassen.
Weitere Informationen über HMAC-Geheimnisse finden Sie unter IBM Cloud Object Storage- API-Schlüssel vs. HMAC.
Erstellen eines Registrierungsgeheimnisses über die Konsole
Hier erfahren Sie, wie Sie geheime Registry-Schlüssel über die Code Engine-Konsole erstellen, die von Funktionen, Jobs, Apps oder Builds für den Zugriff auf ein Container-Image mit einer Pull-oder Push-Operation verarbeitet werden können.
Erstellen Sie zunächst ein Projekt, bevor Sie beginnen.
- Wenn Ihr Projekt den Status Aktiv hat, klicken Sie auf der Seite Code Engine Projekte auf den Namen Ihres Projekts.
- Klicken Sie auf der Seite 'Komponenten' auf Geheime Schlüssel und Konfigurationszuordnungen.
- Klicken Sie auf der Seite 'Geheime Schlüssel und Konfigurationszuordnungen' auf Erstellen, um Ihren geheimen Schlüssel zu erstellen.
- Führen Sie auf der Seite 'Create secret or configmap' die folgenden Schritte aus:
- Wählen Sie Geheimer Registry-Schlüssel aus und klicken Sie dann auf Next.
- Geben Sie einen Namen an, z. B.
mysecret-registry. - Geben Sie die Zielregistry für diesen geheimen Schlüssel an, z. B. IBM Cloud Container Registry oder Docker Hub.
- Geben Sie die Position der Registry an.
- Geben Sie einen Benutzernamen an. Wenn dieser geheime Schlüssel für IBM Cloud Container Registrygilt, lautet der Benutzername
iamapikey. Wenn dieser geheime Schlüssel für Docker Hub gilt, ist dies Ihre Docker-ID. - Geben Sie die Berechtigungsnachweise für den Benutzernamen ein. Verwenden Sie für IBM Cloud Container RegistryIhren IAM-API-Schlüssel. Für Docker Hub können Sie Ihr Docker-Hub-Kennwort oder ein Zugriffstoken verwenden. Geben Sie für andere Zielregistrys das Kennwort oder den API-Schlüssel für den Benutzernamen an.
- Klicken Sie auf Erstellen, um den geheimen Schlüssel zu erstellen.
Nachdem Ihr Geheimnis von der Konsole aus erstellt wurde, gehen Sie zur Seite Secrets and configmaps, um eine Liste der definierten Geheimnisse und configmaps anzuzeigen. Sie können Filter anwenden, um die Liste an Ihre Anforderungen anzupassen.
Weitere Informationen zum Arbeiten mit Image-Registrys finden Sie unter Auf Container-Registrys zugreifen.
Geheimen SSH-Schlüssel über die Konsole erstellen
Hier erfahren Sie, wie Sie einen geheimen SSH-Schlüssel über die Konsole erstellen, der von Builds für den Zugriff auf private Quellcode-Repositorys verarbeitet werden kann. Ein geheimer SSH-Schlüssel speichert Berechtigungsnachweise für die Authentifizierung bei einem Service mit einem SSH-Schlüssel, wie z. B. die Authentifizierung bei einem Git-Repository, wie z. B. GitHub oder GitLab.
Erstellen Sie zunächst ein Projekt, bevor Sie beginnen.
- Wenn Ihr Projekt den Status Aktiv hat, klicken Sie auf der Seite Code Engine Projekte auf den Namen Ihres Projekts.
- Klicken Sie auf der Seite 'Komponenten' auf Geheime Schlüssel und Konfigurationszuordnungen.
- Klicken Sie auf der Seite 'Geheime Schlüssel und Konfigurationszuordnungen' auf Erstellen, um Ihren geheimen Schlüssel zu erstellen.
- Führen Sie auf der Seite 'Create secret or configmap' die folgenden Schritte aus:
- Wählen Sie Geheimer SSH-Schlüssel aus und klicken Sie dann auf Next.
- Geben Sie einen Namen an, z. B.
mysecret-ssh. - Fügen Sie den privaten SSH-Schlüssel für diesen geheimen Schlüssel hinzu.
- Klicken Sie auf Erstellen, um den geheimen Schlüssel zu erstellen.
Nachdem Ihr Geheimnis von der Konsole aus erstellt wurde, gehen Sie zur Seite Secrets and configmaps, um eine Liste der definierten Geheimnisse und configmaps anzuzeigen. Sie können Filter anwenden, um die Liste an Ihre Anforderungen anzupassen.
Verwenden Sie Ihren geheimen SSH-Schlüssel, wenn Sie mit privaten Code-Repositorys wie Git-Repositorys arbeiten. Siehe Zugriff auf private Code-Repositories.
Erstellen eines TLS-Geheimnisses über die Konsole
Hier erfahren Sie, wie Sie einen geheimen TLS-Schlüssel über die Konsole erstellen, der von Apps verarbeitet werden kann, wenn Sie mit angepassten Domänenzuordnungen in Code Enginearbeiten. Ein geheimer TLS-Schlüssel (Transport Layer Security) enthält ein signiertes TLS-Zertifikat, einschließlich aller Zwischenzertifikate und des zugehörigen privaten Schlüssels von einer Zertifizierungsstelle (CA).
Erstellen Sie zunächst ein Projekt, bevor Sie beginnen.
- Wenn Ihr Projekt den Status Aktiv hat, klicken Sie auf der Seite Code Engine Projekte auf den Namen Ihres Projekts.
- Klicken Sie auf der Seite 'Komponenten' auf Geheime Schlüssel und Konfigurationszuordnungen.
- Klicken Sie auf der Seite 'Geheime Schlüssel und Konfigurationszuordnungen' auf Erstellen, um Ihren geheimen Schlüssel zu erstellen.
- Führen Sie auf der Seite 'Create secret or configmap' die folgenden Schritte aus:
- Wählen Sie Geheimer TLS-Schlüssel aus und klicken Sie auf Next.
- Geben Sie einen Namen an, z. B.
mysecret-tls. - Fügen Sie die Zertifikatskette und den zugehörigen privaten Schlüssel hinzu. Beachten Sie, dass Sie die Zertifikate verketten können, indem Sie jedes in einer neuen Zeile beginnen. Sie können diese Informationen in einer Datei angeben.
- Klicken Sie auf Erstellen, um den geheimen Schlüssel zu erstellen.
Nachdem Ihr Geheimnis von der Konsole aus erstellt wurde, gehen Sie zur Seite Secrets and configmaps, um eine Liste der definierten Geheimnisse und configmaps anzuzeigen. Sie können Filter anwenden, um die Liste an Ihre Anforderungen anzupassen.
Verwenden Sie Ihren geheimen TLS-Schlüssel bei der Arbeit mit angepassten Domänenzuordnungen in Code Engine.
Erstellen von Geheimnissen mit der CLI
Lernen Sie, wie Sie mit der Code Engine CLI Secrets erstellen, die von Anwendungen, Jobs oder Funktionen als Umgebungsvariablen verwendet werden können.
Vorbereitende Schritte
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
Seit der CLI-Version 1.42.0 sind die Definition und die Arbeit mit Secrets in der CLI unter der secret befehlsgruppe zusammengefasst. Siehe ibmcloud ce secret-Befehle.
Verwenden Sie die Option --format, um die Kategorie des Geheimnisses anzugeben, z. B. basic_auth, generic, hmac, ssh, tls oder registry. Der Standardwert
für die Option --format ist generic.
Mit dem Befehl secret create können Sie verschiedene Formate für geheime Schlüssel erstellen und verwalten. Beschreibungen der verschiedenen Formate für geheime Schlüssel finden Sie unter Welche Art von geheimen Schlüsseln kann ich in Code Engine?
Hier erfahren Sie, wie Sie die folgenden Typen von geheimen Schlüsseln mit der Befehlszeilenschnittstelle erstellen:
Erstellen eines grundlegenden Authentifizierungsgeheimnisses mit der CLI
Ein grundlegendes Authentifizierungsgeheimnis enthält einen Benutzernamen und einen Kennwortschlüssel und wird für den Zugriff auf einen Dienst verwendet, der eine grundlegende HTTP Authentifizierung erfordert. Im folgenden Beispiel wird
ein geheimer Basisauthentifizierungsschlüssel mit Berechtigungsnachweisen für myusername erstellt und das zugehörige Kennwort wird in einer Datei auf der lokalen Workstation bereitgestellt.
ibmcloud ce secret create --name mysecret-basicauth --format basic_auth --username myusername --password-from-file ./password.txt
So zeigen Sie die Details dieses geheimen Schlüssels an:
ibmcloud ce secret get --name mysecret-basicauth
Beispielausgabe
Getting secret 'mysecret-basicauth'...
OK
Name: mysecret-basicauth
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: basic_auth
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 66s
Created: 2021-03-10T18:44:18-05:00
Data:
---
password: REDACTED
username: bXl1c2VybmFtZQ==
Beachten Sie, dass der Wert des Schlüssels username für diesen geheimen Schlüssel für die Basisauthentifizierung codiert und der Wert von password neu bearbeitet wird. Verwenden Sie zum Anzeigen der Daten des geheimen
Schlüssels in der entschlüsselten Form die Option --decode mit dem Befehl secret get.
Erstellen eines generischen Geheimnisses mit der CLI
Ein generischer geheimer Schlüssel speichert einfache Schlüssel/Wert-Paare und Code Engine geht weder von den definierten Schlüssel/Wert-Paaren noch von der beabsichtigten Verwendung des geheimen Schlüssels aus.
Sie können ein allgemeines Geheimnis mit dem secret create befehl auf eine der folgenden Arten erstellen. Standardmäßig wird ein generischer geheimer Schlüssel erstellt, wenn die Option --format nicht angegeben ist.
-
Erstellen Sie direkt in der Befehlszeile einen geheimen Schlüssel, indem Sie die Option
--from-literalim FormatKEY=VALUEverwenden. Beispiel:ibmcloud ce secret create --name myliteralsecret --from-literal "TARGET=My literal secret" -
Erstellen Sie einen geheimen Schlüssel, indem Sie mithilfe der Option
--from-fileauf eine Datei verweisen. Wenn Sie diese Option verwenden, wird der gesamte Inhalt der Datei zum Wert für das Schlüssel/Wert-Paar. Verwenden Sie für das folgende Beispiel eine Datei namenssecrets.txtmit dem Inhaltmy little secret1.-
Bei dem folgenden Beispiel wird das Format
--from-file KEY=FILEmit dem Befehlsecret createverwendet:ibmcloud ce secret create --name mysecretmsg1 --from-file TARGET=secrets.txt -
Im folgenden Beispielbefehl wird das Format
--from-file FILEmit dem Befehlsecret createverwendet. In diesem Beispiel istTARGET(ohne Erweiterung) der Name der Datei, wobei dieser Name mit dem Namen der Umgebungsvariablen übereinstimmt, die dem Job bekannt ist.ibmcloud ce secret create --name mysecretmsg2 --from-file TARGET
-
-
Erstellen Sie einen geheimen Schlüssel, indem Sie mit der Option
--from-env-fileauf eine Datei verweisen, die mindestens eine Zeile enthält, die dem FormatKEY=VALUEentspricht. Jede Zeile der angegebenen Datei wird als Schlüssel/Wert-Paar hinzugefügt. Zeilen in der angegebenen Datei, die leer sind oder mit#beginnen, werden ignoriert. Verwenden Sie für dieses Beispiel eine Datei mit dem Namensecrets_multi.txt, die die Schlüssel/Wert-Paare enthält:sec1=mysec1,sec2=mysec2undsec3=mysec3.ibmcloud ce secret create --name mysecretmulti --from-env-file secrets_multi.txt
Wenn Sie einen generischen geheimen Schlüssel aus einer Datei erstellen (oder aktualisieren) wollen, verwenden Sie die Option --from-file mit einem der folgenden Formate: --from-file FILE oder --from-file KEY=FILE Wenn Sie in Code Enginedie Option --from-file verwenden, um geheime Werte anzugeben, ist der gesamte Inhalt in der Datei der Wert für das Schlüssel/Wert-Paar. Wenn Sie das Optionsformat --from-file KEY=FILE verwenden, ist KEY der Name der Umgebungsvariablen, die Ihrem Auftrag, Ihrer Funktion oder Ihrer Anwendung bekannt ist. Wenn Sie das Optionsformat --from-file FILE verwenden, ist FILE der Name der
Umgebungsvariablen, die Ihrem Auftrag, Ihrer Funktion oder Ihrer Anwendung bekannt ist. Enthält Ihre Datei Schlüssel/Wert-Paare, fügen Sie mithilfe der Option --from-env-file eine Umgebungsvariable für jedes Schlüssel/Wert-Paar
in der angegebenen Datei hinzu. Alle Zeilen in der angegebenen Datei, die leer sind oder mit # beginnen, werden ignoriert.
Um die Details des generischen geheimen Schlüssels anzuzeigen, myliteralsecret,
ibmcloud ce secret get --name myliteralsecret
Beispielausgabe
Getting secret 'myliteralsecret'...
OK
Name: myliteralsecret
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: generic
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 66s
Created: 2023-03-07 21:06:34 +0000 UTC
Data:
---
TARGET: TXkgbGl0ZXJhbCBzZWNyZXQ=
Beachten Sie, dass der Wert des Schlüssels TARGET für dieses generische Geheimnis verschlüsselt ist. Verwenden Sie zum Anzeigen der Daten des geheimen Schlüssels in der entschlüsselten Form die Option --decode mit
dem Befehl secret get.
Erstellen eines HMAC-Geheimnisses mit der CLI
Ein HMAC-Geheimnis enthält einen access_key_id und einen secret_access_key Schlüssel und wird mit S3-compatible Tools und Bibliotheken verwendet, die eine Authentifizierung erfordern, aber keine IBM Cloud® Identity
and Access Management API-Schlüssel unterstützen. Siehe IBM Cloud Object Storage- API-Schlüssel vs. HMAC, wenn Sie IBM
Cloud® Identity and Access Management API-Schlüssel oder HMAC-Anmeldeinformationen verwenden möchten. Im folgenden Beispiel wird ein HMAC-Geheimnis mit Musteranmeldeinformationen erstellt, die nach Aufforderung angegeben werden müssen.
ibmcloud ce secret create --name mysecret-hmac --format hmac --access-key-id-prompt --secret-access-key-prompt
So zeigen Sie die Details dieses geheimen Schlüssels an:
ibmcloud ce secret get --name mysecret-hmac
Beispielausgabe
Getting secret 'mysecret-hmac'...
OK
Name: mysecret-hmac
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: hmac_auth
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 86s
Created: 2025-05-15T12:41:15-05:00
Data:
---
access_key_id: MWEyYjNjNGQ1ZTZmMWEyYjNjNGQ1ZTZmMWEyYjNjNGQK
secret_access_key: REDACTED
Beachten Sie, dass der Wert des Schlüssels access_key_id für dieses HMAC-Geheimnis verschlüsselt ist und der Wert von secret_access_key unkenntlich gemacht wurde. Verwenden Sie zum Anzeigen der Daten des geheimen
Schlüssels in der entschlüsselten Form die Option --decode mit dem Befehl secret get.
Erstellen eines Registrierungsgeheimnisses mit der CLI
Ein geheimer Registry-Schlüssel speichert Berechtigungsnachweise für den Zugriff auf eine Container-Registry.
Im folgenden Beispiel wird ein geheimer Registry-Schlüssel mit dem Namen mysecret-registry erstellt, um auf eine IBM Cloud Container Registry-Instanz zuzugreifen, die sich auf dem us.icr.io-Registry-Server befindet
und Berechtigungsnachweise für username und password angibt.
ibmcloud ce secret create --name mysecret-registry --format registry --server us.icr.io --username iamapikey --password API_KEY
So zeigen Sie die Details dieses geheimen Schlüssels an:
ibmcloud ce secret get --name mysecret-registry
Beispielausgabe
Getting secret 'mysecret-registry'...
OK
Name: mysecret-registry
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: registry
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 66s
Created: 2023-03-07 20:00:45 +0000 UTC
Data:
---
email: ""
password: REDACTED
server: dXMuaWNyLmlv
username: aWFtYXBpa2V5
Beachten Sie, dass der Wert der Schlüssel username und server für diesen geheimen Registry-Schlüssel codiert ist und der Wert von password neu bearbeitet wird. Verwenden Sie zum Anzeigen der Daten des
geheimen Schlüssels in der entschlüsselten Form die Option --decode mit dem Befehl secret get.
Geheimen SSH-Schlüssel über die Befehlszeilenschnittstelle erstellen
Ein geheimer SSH-Schlüssel speichert Berechtigungsnachweise für die Authentifizierung bei einem Service mit einem SSH-Schlüssel, z. B. für die Authentifizierung bei einem Git-Repository, z. B. GitHub oder GitLab.
Im folgenden Beispiel wird ein geheimer SSH-Schlüssel mit dem Namen mysecret-ssh erstellt, um auf einen Host zuzugreifen, der in der Datei known_hosts enthalten ist, indem eine Authentifizierung mit einer unverschlüsselten
privaten SSH-Schlüsseldatei durchgeführt wird, die sich im Verzeichnis /<filepath>/.ssh/<key_name> befindet. Dabei ist <filepath> der Pfad auf Ihrer lokalen Workstation. Dieser Befehl erfordert
einen Namen und einen Schlüsselpfad und lässt auch weitere optionale Argumente zu, wie z. B. den Pfad zur Datei für bekannte Hosts.
ibmcloud ce secret create --name mysecret-ssh --format ssh --key-path ~/.ssh/<key_name> --known-hosts-path ~/.ssh/known_hosts
So zeigen Sie die Details dieses geheimen Schlüssels an:
ibmcloud ce secret get --name mysecret-ssh
Beispielausgabe
Getting secret 'mysecret-ssh'...
OK
Name: mysecret-ssh'
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: ssh
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 66s
Created: 2023-03-07 19:19:59 +0000 UTC
Data:
---
known_hosts: fDF8bGh0ekpiSFVXdXRxZWg1NUlrWTk4RjdOdjJZPXxsUmhZd0txVmIwd3dSV2xzcjEySFdoWURUTG89IHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQUJJd0FBQVFFQXEyQTdoUkdtZG5tOXRVRGJPOUlEU3dCSzZUYlFhK1BYWVBDUHk2cmJUclR0dzdQSGtjY0tycHAweVZocDVIZEVJY0tyNnBMbFZEQmZPTFg5UVVzeUNPVjB3emZqSUpObEdFWXNkbExKaXpIaGJuMm1VanZTQUhRcVpFVFlQODFlRnpMUU5uUEh0NEVWVlVoN1ZmREVTVTg0S2V6bUQ1UWxXcFhMbXZVMzEveU1mK1NlOHhoSFR2S1NDWklGSW1Xd29HNm1iVW9XZjluenBJb2FTakIrd2VxcVVVbXBhYWFzWFZhbDcySitVWDJCKzJSUFczUmNUMGVPelFncWxKTDNSS3JUSnZkc2pFM0pFQXZHcTNsR0hTWlh5MjhHM3NrdWEyU21WaS93NHlDRTZnYk9EcW5UV2xnNyt3QzYwNHlkR1hBOFZKaVM1YXA0M0pYaVVGRkFhUT09CnwxfEpUSjI4MCt0RkFSMGcxZ3VrZW56U3ZBYm5sQT18RDlSUWppenZlR3UxS0FnNjhNeisrUHM3RmZrPSBlY2RzYS1zaGEyLW5pc3RwMjU2IEFBQUFFMlZqWkhOaExYTm9ZVEl0Ym1semRIQXlOVFlBQUFBSWJtbHpkSEF5TlRZQUFBQkJCRW1LU0VOalFFZXpPbXhrWk15N29wS2d3RkI5bmt0NVlScllNak51RzVOODd1UmdnNkNMcmJvNXdBZFQveTZ2MG1LVjBVMncwV1oyWUIvKytUcG9ja2c9CnwxfDhIOXpNb0VORklZVDNPeVZYWlQrY25wb0srND18dVdhVThFV1FPc0ttSDMzREVVd0xnNUtiUk44PSBzc2gtZWQyNTUxOSBBQUFBQzNOemFDMWxaREkxTlRFNUFBQUFJT01xcW5rVnpybTBTZEc2VU9vcUtMc2FiZ0g1Qzlva1dpMGRoMmw5R0tKbAo=
ssh-privatekey: REDACTED
Beachten Sie, dass der Wert des known_hosts-Schlüssels für diesen geheimen SSH-Schlüssel codiert ist und der Wert von ssh-privatekey neu bearbeitet wird. Verwenden Sie zum Anzeigen der Daten des geheimen Schlüssels
in der entschlüsselten Form die Option --decode mit dem Befehl secret get.
Erstellen eines TLS-Geheimnisses mit der CLI
Ein geheimer TLS-Schlüssel (Transport Layer Security) enthält ein signiertes TLS-Zertifikat, einschließlich aller Zwischenzertifikate und des zugehörigen privaten Schlüssels von einer Zertifizierungsstelle (CA). Verwenden Sie geheime TLS-Schlüssel, wenn Sie mit angepassten Domänenzuordnungen arbeiten.
Im folgenden Beispiel wird ein geheimer TLS-Schlüssel mit dem Namen mysecret-tls erstellt. Die Zertifikatskette, die der angepassten Domäne entspricht, ist in der Datei certificate.txt und die entsprechende Datei
mit privatem Schlüssel in der Datei privatekey.txt enthalten. In diesem Beispiel befinden sich beide Dateien im Stammverzeichnis der lokalen Workstation.
ibmcloud ce secret create --name mysecret-tls --format tls --cert-chain-file certificate.txt --private-key-file privatekey.txt
So zeigen Sie die Details dieses geheimen Schlüssels an:
ibmcloud ce secret get --name mysecret-tls
Beispielausgabe
Getting secret 'mysecret-tls'...
OK
Name: mysecret-tls'
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: tls
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 66s
Created: 2023-03-07 16:14:46 +0000 UTC
Data:
---
tls.crt: REDACTED
tls.key: REDACTED
Geheime Schlüssel über die Befehlszeilenschnittstelle auflisten
Verwenden Sie nach der Erstellung geheimer Schlüssel den Befehl secret list, um alle geheimen Schlüssel in Ihrem Projekt aufzulisten. Beispiel:
ibmcloud ce secret list
Beispielausgabe
Listing secrets...
OK
Name Format Data Age
ce-auto-icr-private-us-south registry 4 333d
ce-auto-private-icr-us-south registry 4 335d
myregistry-seccmd registry 4 3h31m
mysecret-basicauth basic_auth 2 7m37s
mysecret-generic generic 1 7m7s
mysecret-genericfromfile generic 2 2m29s
mysecret-hmac hmac_auth 2 21m
mysecret-registry registry 4 111s
mysecret-ssh ssh_auth 2 42m
mysecret-tls tls 2 3h47m
Geheime Schlüssel aktualisieren
Sie können Schlüssel/Wert-Paare für vorhandene geheime Schlüssel ändern.
Geheime Schlüssel über die Konsole aktualisieren
Sie können Schlüssel/Wert-Paare für Ihre definierten geheimen Schlüssel über die Konsole aktualisieren.
-
Sie können Schlüssel/Wert-Paare für Ihre definierten geheimen Schlüssel auf eine der folgenden Arten über die Konsole aktualisieren.
- Rufen Sie die Seite 'Geheime Schlüssel und Konfigurationszuordnungen' für Ihr Projekt auf und suchen Sie den zu aktualisierenden geheimen Schlüssel. Klicken Sie auf den Namen des geheimen Schlüssels, der aktualisiert werden soll, um den Schlüssel zu öffnen.
- Wenn Ihr Geheimnis von einer Anwendung, einem Job oder einer Funktion referenziert wird, dann verwenden Sie die Links in der Tabelle der Umgebungsvariablen auf der Registerkarte Umgebungsvariablen Ihrer Anwendung, Ihres Jobs oder Ihrer Funktion. Diese Links führen Sie direkt zu Ihrem Geheimnis. Sie können stattdessen auch zur Seite 'Geheime Schlüssel und Konfigurationszuordnungen' für Ihr Projekt wechseln und den zu aktualisierenden geheimen Schlüssel auf dieser Seite suchen. Klicken Sie auf den Namen des geheimen Schlüssels, der aktualisiert werden soll, um den Schlüssel zu öffnen.
-
Klicken Sie auf Bearbeiten und nehmen Sie die Aktualisierungen für Ihren geheimen Schlüssel vor.
-
Klicken Sie auf Speichern, um die Änderungen an Ihrem geheimen Schlüssel zu speichern.
Wenn Ihr aktualisiertes Geheimnis von einem Auftrag, einer Funktion oder einer Anwendung referenziert wird, muss der Auftrag, die Funktion oder die Anwendung neu gestartet werden, damit die neuen Daten wirksam werden.
- Apps-Klicken Sie auf der Seite für Ihre App auf Neue Überarbeitung und anschließend auf Speichern und implementieren. Sie können stattdessen auch warten, bis Ihre App auf null skaliert ist. Beim anschließenden Scale-up für die App verwendet die App dann den aktualisierten geheimen Schlüssel.
- Jobs-Klicken Sie auf der Seite für Ihren Job auf Job übergeben , um Ihren Job auszuführen, oder Sie können einen Job erneut ausführen. Bei dieser neuen Jobausführung wird der aktualisierte geheime Schlüssel verwendet.
- Funktionen-Klicken Sie auf der Seite für Ihre Funktion auf Funktion testen. Wenn Sie einen Browser mit der Funktion URL geöffnet haben, aktualisieren Sie den Browser.
Geheime Schlüssel über die Befehlszeilenschnittstelle aktualisieren
Sie können einen vorhandenen geheimen Schlüssel und die zugehörigen Schlüssel/Wert-Paare über die Befehlszeilenschnittstelle aktualisieren.
-
Verwenden Sie zum Ändern des Werts eines Schlüssel/Wert-Paars in einem definierten geheimen Schlüssel den Befehl
secret update. Aktualisieren Sie den geheimen Schlüsselmysecret-registry, um einen anderen Server zu verwenden.ibmcloud ce secret update --name mysecret-registry --format registry --server <new_server> --username <new_username> --password <password> -
Nach der Aktualisierung Ihres geheimen Schlüssels können Sie nun mit dem Befehl
secret getDetails zu einem bestimmten geheimen Schlüssel anzeigen. Verwenden Sie bei Bedarf die Option--decode, um die geheimen Daten als decodiert anzuzeigen. Beispiel:ibmcloud ce secret get --name mysecret-registry --decodeBeispielausgabe
Getting generic secret 'mysecret-registry'... OK Name: mysecret-registry ID: abcdefgh-abcd-abcd-abcd-c88e2775388e Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 21m Created: 2023-03-07 20:00:45 +0000 UTC Data: --- email: "" password: REDACTED server: newserver username: newuser
Geheime Schlüssel referenzieren
Ihr Auftrag, Ihre Funktion oder Ihre Anwendung kann die in einem Geheimnis gespeicherten Informationen mithilfe von Umgebungsvariablen abrufen und verwenden.
Geheime Schlüssel über die Konsole referenzieren
Sie können die Konsole verwenden, um Umgebungsvariablen für Ihre Anwendungen, Aufträge und Funktionen zu erstellen, die vollständig auf ein Geheimnis oder auf einzelne Schlüssel in einem Geheimnis verweisen.
Der geheime Schlüssel, der referenziert werden soll, muss vorhanden sein. Weitere Informationen finden Sie unter Geheimen Schlüssel erstellen. Erstellen Sie für dieses Beispiel einen geheimen Schlüssel mit der
Bezeichnung target-secret mit dem Schlüssel/Wert-Paar TARGET=Sunshine.
-
Um über Ihre Apps, Jobs und Funktionen auf einen definierten geheimen Schlüssel zu verweisen, erstellen Sie eine Umgebungsvariable. Die Umgebungsvariable kann einen vollständigen vorhandenen geheimen Schlüssel oder einen einzelnen Schlüssel in einem vorhandenen geheimen Schlüssel referenzieren. Wenn Sie vollständig auf einen geheimen Schlüssel (oder eine Konfigurationszuordnung) verweisen, können Sie optional
prefixangeben. Wenn Sie beispielsweise in dermyapp-Anwendung vollständig auf den geheimen Schlüsselmysecretverweisen und das Präfixmysecret_verwenden, erhält jeder Schlüssel im geheimen Schlüssel das Präfixmysecret_. -
Nachdem Sie Umgebungsvariablen erstellt haben, müssen Sie Ihre Anwendungen, Aufträge und Funktionen neu starten, damit die Änderungen wirksam werden. Wenn es um eine App geht, speichern Sie die betreffende App und stellen Sie sie bereit, um die App mit den von Ihnen definierten Umgebungsvariablen zu aktualisieren. Wenn es um einen Job geht, übergeben Sie den betreffenden Job, um den Job mit den von Ihnen definierten Umgebungsvariablen zu aktualisieren.
-
Nachdem der Status der Apps, Jobs und Funktionen in Bereit geändert wurde, können Sie die Anwendung oder Funktion testen oder den Job ausführen. Klicken Sie bei einer App auf Anwendung testen und anschließend im Teilfenster „Testanwendung“ auf Anforderung senden. Um die Anwendung in einer Webseite zu öffnen, klicken Sie auf Anwendungs-URL. Da im Beispiel
myappein Präfix für das vollständig referenzierte Geheimnismysecretangegeben wurde, werden alle Schlüssel dieses Geheimnisses als Umgebungsvariablen referenziert und mitmysecret_vorangestellt. Diese Umgebungsvariablen werden beispielsweise alsmysecret_secret1=mysecret1undmysecret_secret2=mysecret2angezeigt.
Um eine Umgebungsvariable zu aktualisieren, die auf einen geheimen Schlüssel verweist, siehe Aktualisieren von Umgebungsvariablen und Überlegungen zum Aktualisieren von Umgebungsvariablen.
Informationen zum Entfernen einer Umgebungsvariablen, die einen geheimen Schlüssel referenziert, finden Sie unter Umgebungsvariablen löschen.
Im folgenden Beispiel wird der zuvor definierte geheime Schlüssel mysecret verwendet, den Sie über die Konsole in Verbindung mit einem Job definiert haben, und dieser geheime Schlüssel wird vollständig mithilfe einer Umgebungsvariablen
referenziert.
-
Erstellen Sie einen Job und führen Sie ihn aus. Erstellen Sie für dieses Beispiel einen Code Engine-Job, der das
icr.io/codeengine/codeengine-Image verwendet, und führen Sie dann den Job aus. Wenn eine Anfrage an diesen Beispielauftrag gesendet wird, liest der Auftrag die UmgebungsvariableTARGET, drucktHello ${TARGET} from Code Engineund gibt eine Liste der Umgebungsvariablen aus. Ist die UmgebungsvariableTARGETleer, wirdHello World from Code Enginezurückgegeben.Ausgehend von der Seite 'Jobs'
- Erstellen Sie einen Job, z. B.
myjob. - Geben Sie
icr.io/codeengine/codeengineals Imagereferenz an. - Klicken Sie auf Erstellen, um den Job zu erstellen.
Wenn der Workload, den Sie mit dem Geheimnis verwenden möchten, bereits in Code Engine definiert ist, gehen Sie auf die Seite Anwendungen, Jobs oder Funktionen und klicken Sie auf den Namen Ihrer Anwendung, Ihres Jobs oder Ihrer Funktion, um die Komponente zu öffnen.
- Erstellen Sie einen Job, z. B.
-
Wenn der Job erstellt ist, klicken Sie auf der Seite 'Jobs' auf den Namen des Jobs, um den Job zu öffnen.
-
Aktualisieren Sie den Job so, dass ein geheimer Schlüssel als Umgebungsvariable hinzugefügt wird. Klicken Sie auf Umgebungsvariablen, um die Registerkarte zu öffnen, und klicken Sie auf Hinzufügen, um Ihre Umgebungsvariable hinzuzufügen.
-
Ausgehend von der Seite 'Umgebungsvariablen hinzufügen'
- Wählen Sie zum Verwenden des zuvor definierten geheimen Schlüssels die Option Vollständigen geheimen Schlüssel referenzieren aus.
- Wählen Sie im Menü den Namen des gewünschten geheimen Schlüssels aus, z. B.
target-secret. - Klicken Sie auf Hinzufügen, um die Umgebungsvariable hinzuzufügen.
- Klicken Sie auf Speichern, um die Änderungen an Ihrem Job zu speichern.
-
Klicken Sie zum Ausführen des Jobs mit der Umgebungsvariable, die auf einen geheimen Schlüssel verweist, auf Job übergeben. Im vorliegenden Beispiel zeigen die Protokolle für die Ausführung des Jobs
myjobden TextHello Sunshine from Code Enginean und es werden die Umgebungsvariablen, einschließlich von Werten geheimer Schlüssel, die über Umgebungsvariablen referenziert werden, ausgegeben.
Geheime Schlüssel über die Befehlszeilenschnittstelle referenzieren
Um Geheimnisse mit Anwendungen, Jobs und Funktionen zu verwenden, können Sie Umgebungsvariablen setzen, die vollständig auf ein Geheimnis verweisen, oder einzelne Schlüssel in einem Geheimnis mit der Befehlszeile referenzieren.
Verweis auf bestehende geheime Schlüssel mit der CLI
Die folgenden Beispiele verweisen auf einen generischen geheimen Schlüssel. Dies ist der standardmäßige geheime Schlüssel, wenn die Option --format nicht angegeben ist. Verwenden Sie die Option --format, um die
Kategorie des geheimen Schlüssels anzugeben, beispielsweise basic_auth, generic, ssh, tls oder registry.
Wenn Sie einen geheimen Schlüssel mit einer Workload über die Befehlszeilenschnittstelle verwenden möchten, geben Sie die Option --env-from-secret in den folgenden Befehlen an.
Im folgenden Beispiel wird beschrieben, wie ein vorhandenes generisches Geheimnis mit einem Auftrag über die Befehlszeile referenziert werden kann.
-
Verwenden Sie den
secret createum die folgenden zwei generischen Geheimnisse für dieses Szenario zu erstellen. Standardmäßig wird ein generischer geheimer Schlüssel erstellt, wenn die Option--formatnicht angegeben ist.ibmcloud ce secret create --name myliteralsecret --from-literal "TARGET=My big literal secret"ibmcloud ce secret create --name myliteralsecret2 --from-literal "TARGET=My little literal secret" -
Erstellen Sie einen Job und verweisen Sie auf das Geheimnis von
myliteralsecret. Erstellen Sie für dieses Beispiel einen Code Engine-Job, der dasicr.io/codeengine/codeengine-Image verwendet, und führen Sie dann den Job aus. Wenn eine Anfrage an diesen Beispielauftrag gesendet wird, liest der Auftrag die UmgebungsvariableTARGET, drucktHello ${TARGET} from Code Engineund gibt eine Liste der Umgebungsvariablen aus. Ist die UmgebungsvariableTARGETleer, wirdHello World from Code Enginezurückgegeben.ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine --array-indices 2-3 --env-from-secret myliteralsecret -
Führen Sie den Job
myjobaus.ibmcloud ce jobrun submit --name myjobrun --job myjob -
Verwenden Sie den Befehl
jobrun get, um die Details der Jobausführung einschließlich der Instanzen der Jobausführung anzuzeigen.ibmcloud ce jobrun get --name myjobrunBeispielausgabe
Getting jobrun 'myjobrun'... Getting instances of jobrun 'myjobrun'... Getting events of jobrun 'myjobrun'... Run 'ibmcloud ce jobrun events -n myjobrun' to get the system events of the job run instances. Run 'ibmcloud ce jobrun logs -f -n myjobrun' to follow the logs of the job run instances. OK Name: myjobrun [...] Job Ref: myjob Environment Variables: Type Name Value Secret full reference myliteralsecret Image: icr.io/codeengine/codeengine Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 2-3 Array Size: 2 JOP_ARRAY_SIZE Value: 2 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 9s Instance Statuses: Succeeded: 2 Conditions: Type Status Last Probe Last Transition Pending True 13s 13s Running True 9s 9s Complete True 9s 9s Events: Type Reason Age Source Messages Normal Updated 10s (x4 over 14s) batch-job-controller Updated JobRun "myjobrun" Normal Completed 10s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-2-0 0/1 Succeeded 0 14s myjobrun-3-0 0/1 Succeeded 0 14s -
Zeigen Sie die Protokolle der Jobausführung
myjobrunan. Sie können Protokolle aller Instanzen einer Jobausführung oder Protokolle einer bestimmten Instanz einer Jobausführung anzeigen. Zeigen Sie dieses Mal die Protokolle aller Instanzen der Jobausführung an. Das Protokoll zeigtHello my big literal secret!an, das durch die Verwendung einer Umgebungsvariablen mit einem geheimen Schlüssel angegeben wurde. Hinweis: Für diesen Job, der mit demicr.io/codeengine/codeengine-Image definiert ist, gibt die Ausgabe der Jobausführung die Umgebungsvariablen aus, einschließlich aller Werte für geheime Schlüssel, die mit Umgebungsvariablen referenziert werden.ibmcloud ce jobrun logs --jobrun myjobrunBeispielausgabe
Getting logs for all instances of job run 'myjobrun'... Getting jobrun 'myjobrun'... Getting instances of jobrun 'myjobrun'... OK myjobrun-2-0/myjob: Hello from helloworld! I'm a batch job! Index: 2 Hello My big literal secret from: . ___ __ ____ ____ ./ __)/ \( \( __) ( (__( O )) D ( ) _) .\___)\__/(____/(____) .____ __ _ ___ __ __ _ ____ ( __)( ( \ / __)( )( ( \( __) .) _) / /( (_ \ )( / / ) _) (____)\_)__) \___/(__)\_)__)(____) Some Env Vars: -------------- HOME=/root HOSTNAME=myjobrun-2-0 JOB_INDEX=2 KUBERNETES_PORT=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=172.21.0.1 KUBERNETES_SERVICE_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ SHLVL=1 TARGET=My big literal secret myjobrun-3-0/myjob: Hello from helloworld! I'm a batch job! Index: 3 Hello My big literal secret from: . ___ __ ____ ____ ./ __)/ \( \( __) ( (__( O )) D ( ) _) .\___)\__/(____/(____) .____ __ _ ___ __ __ _ ____ ( __)( ( \ / __)( )( ( \( __) .) _) / /( (_ \ )( / / ) _) (____)\_)__) \___/(__)\_)__)(____) Some Env Vars: -------------- HOME=/root HOSTNAME=myjobrun-3-0 JOB_INDEX=3 KUBERNETES_PORT=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=172.21.0.1 KUBERNETES_SERVICE_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ SHLVL=1 TARGET=My big literal secret -
Senden Sie den Auftragslauf erneut und geben Sie an, dass der geheime Schlüssel
myliteralsecret2für diesen Joblauf verwendet werden soll.ibmcloud ce jobrun resubmit --jobrun myjobrun --name myjobrunresubmit --env-from-secret myliteralsecret2Wenn Sie einen Auftrag, eine Anwendung oder eine Funktion mit einer Umgebungsvariablen aktualisieren, die ein Geheimnis vollständig referenziert, um ein anderes Geheimnis vollständig zu referenzieren, überschreiben vollständige Referenzen andere vollständige Referenzen in der Reihenfolge, in der sie gesetzt wurden (der zuletzt referenzierte Satz überschreibt den ersten Satz).
-
Verwenden Sie den Befehl
jobrun get, um die Details der Jobausführung einschließlich der Instanzen der Jobausführung anzuzeigen. Beachten Sie, dass der Joblauf auf die beiden geheimen Schlüsselmyliteralsecretundmyliteralsecret2verweist.ibmcloud ce jobrun get --name myjobrunresubmitBeispielausgabe
Getting jobrun 'myjobrunresubmit'... Getting instances of jobrun 'myjobrunresubmit'... Getting events of jobrun 'myjobrunresubmit'... [...] Name: myjobrunresubmit ID: 79f01367-932b-4a76-be18-b1e68790a85b Project Name: myproject Project ID: 841f0f38-420d-4388-b5d8-f230657d7dc6 Age: 14s Created: 2021-06-15T21:15:37-04:00 Job Ref: myjob Environment Variables: Type Name Value Secret full reference myliteralsecret Secret full reference myliteralsecret2 Image: icr.io/codeengine/codeengine Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 2-3 Array Size: 2 JOP_ARRAY_SIZE Value: 2 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 11s Instance Statuses: Succeeded: 2 Conditions: Type Status Last Probe Last Transition Pending True 14s 14s Running True 12s 12s Complete True 11s 11s Events: Type Reason Age Source Messages Normal Updated 13s (x4 over 16s) batch-job-controller Updated JobRun "myjobrunresubmit" Normal Completed 13s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrunresubmit-2-0 0/1 Succeeded 0 16s myjobrunresubmit-3-0 0/1 Succeeded 0 16s -
Anzeige der Job-Laufprotokolle einer Instanz des Job-Laufs
myjobrunresubmit. Diesmal zeigen Sie die Protokolle der Instanzmyjobrunresubmit-3-0an. Das Protokoll zeigtHello My little literal secret!an, also den Wert, der immyliteralsecret2geheimen Schlüssel angegeben ist. Verwenden Sie den Befehljobrun get, um die Details der Jobausführung einschließlich der aktiven Instanzen der Jobausführung anzuzeigen.ibmcloud ce jobrun logs --instance myjobrunresubmit-3-0Beispielausgabe
Getting logs for job run instance 'myjobrunresubmit-3-0'... OK myjobrunresubmit-3-0/myjob: Hello from helloworld! I'm a batch job! Index: 3 Hello My little literal secret from: . ___ __ ____ ____ ./ __)/ \( \( __) ( (__( O )) D ( ) _) .\___)\__/(____/(____) .____ __ _ ___ __ __ _ ____ ( __)( ( \ / __)( )( ( \( __) .) _) / /( (_ \ )( / / ) _) (____)\_)__) \___/(__)\_)__)(____) Some Env Vars: -------------- HOME=/root HOSTNAME=myjobrunresubmit-3-0 JOB_INDEX=3 KUBERNETES_PORT=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=172.21.0.1 KUBERNETES_SERVICE_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ SHLVL=1 TARGET=My little literal secret -
Verwenden Sie zum Ändern des Werts eines Schlüssel/Wert-Paars in einem geheimen Schlüssel den Befehl
secret update. Aktualisieren wir den geheimen Schlüsselmyliteralsecret, um den Wert desTARGET-Schlüssels vonMy big literal secretinMy new big literal secretzu ändern.ibmcloud ce secret update --name myliteralsecret --from-literal "TARGET=My new big literal secret" -
Führen Sie Ihren Job erneut aus, damit die neuen Daten wirksam werden. Übergeben Sie die Jobausführung erneut und geben Sie an, dass für diese Jobausführung der geheime Schlüssel
myliteralsecretverwendet werden soll.
ibmcloud ce jobrun resubmit --jobrun myjobrun --name myjobrunresubmit2 --env-from-secret myliteralsecret
- Zeigen Sie die Protokolle der Jobausführung
myjobrunresubmit2an. Diesmal zeigt das AuftragsprotokollHello My new big literal secret!an, was dem Wert im aktualisiertenmyliteralsecretgeheimen Schlüssel entspricht. Sie können den Befehljobrun getverwenden, um die Details der Jobausführung einschließlich der aktiven Instanzen der Jobausführung anzuzeigen. Zeigen Sie die Protokolle für eine aktive Instanz der Jobausführung an.
ibmcloud ce jobrun logs --instance myjobrunresubmit2-2-0
Beispielausgabe
Getting logs for job run instance 'myjobrunresubmit2-2-0'...
OK
myjobrunresubmit2-2-0/myjob:
Hello from helloworld! I'm a batch job! Index: 2
Hello My new big literal secret from:
. ___ __ ____ ____
./ __)/ \( \( __)
( (__( O )) D ( ) _)
.\___)\__/(____/(____)
.____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
.) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
HOME=/root
HOSTNAME=myjobrunresubmit2-2-0
JOB_INDEX=2
KUBERNETES_PORT=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_HOST=172.21.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
SHLVL=1
TARGET=My new big literal secret
Zusammenfassend lässt sich sagen, dass Sie grundlegende Szenarien abgeschlossen haben, um zu demonstrieren, wie Geheimnisse mit einem Auftrag verwendet werden können, indem Sie auf ein bestehendes vollständiges Geheimnis verweisen und Schlüssel innerhalb eines Geheimnisses aktualisieren.
Verweis auf Geheimnisse, die noch nicht mit der CLI definiert sind
Wenn ein Geheimnis nicht existiert, bevor es referenziert wird, kann eine Anwendung nicht erfolgreich bereitgestellt werden, und ein Auftrag oder eine Funktion kann nicht erfolgreich ausgeführt werden, bis das referenzierte Geheimnis erstellt wurde.
Wenn Sie mit einer Anwendung, einem Job oder einer Funktion arbeiten und das referenzierte Geheimnis noch nicht definiert ist, verwenden Sie die Option --force, um die Überprüfung der Existenz des referenzierten Geheimnisses
zu vermeiden. Die Option --force kann mit den folgenden Befehlen verwendet werden:
Wenn Sie die Option --force mit diesen Befehlen verwenden, wird die Aktion zum Erstellen, Aktualisieren oder Ausführen der Anwendung, des Auftrags oder der Funktion abgeschlossen. Die Anwendung, der Auftrag oder die Funktion
wird jedoch erst dann erfolgreich ausgeführt, wenn das referenzierte Geheimnis existiert. Wenn Sie dem Befehl zusätzlich zur Option --force die Option --no-wait hinzufügen, führt das System die Aktion aus und
wartet nicht darauf, dass die Anwendung, der Auftrag oder die Funktion erfolgreich ausgeführt wird.
Das folgende Beispiel beschreibt, wie man mit Hilfe der CLI auf einen geheimen Schlüssel verweist, der noch nicht mit einer App definiert ist.
-
Erstellen Sie einen Job. Erstellen Sie für dieses Beispiel einen Code Engine-Job, der das
icr.io/codeengine/codeengine-Image verwendet, und führen Sie dann den Job aus. Wenn eine Anfrage an diesen Beispielauftrag gesendet wird, liest der Auftrag die UmgebungsvariableTARGET, drucktHello ${TARGET} from Code Engineund gibt eine Liste der Umgebungsvariablen aus. Ist die UmgebungsvariableTARGETleer, wirdHello World from Code Enginezurückgegeben.ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine -
Verwenden Sie den Befehl
jobrun submit, um den Jobmyjobauszuführen. Beachten Sie, dass dasmynewliteralsecretnicht existiert. Wenn Sie die Option--no-waitmit dem Befehljobrun submitverwenden, wird der Joblauf übermittelt und wartet nicht auf die Beendigung der Instanzen dieses Joblaufs.ibmcloud ce jobrun submit --name myjobrun1 --job myjob --env-from-secret mynewliteralsecret --force --no-wait -
Verwenden Sie den Befehl
jobrun get, um Details zum Auftragsdurchlauf anzuzeigen, einschließlich der Informationen zu den Umgebungsvariablen. Beachten Sie, dass sich der Joblauf im Statuspendingbefindet.ibmcloud ce jobrun get --name myjobrun1Beispielausgabe
Getting jobrun 'myjobrun1'... Getting instances of jobrun 'myjobrun1'... Getting events of jobrun 'myjobrun1'... [...] Name: myjobrun1 [...] Job Ref: myjob Environment Variables: Type Name Value Secret full reference mynewliteralsecret Image: icr.io/codeengine/codeengine Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Instance Statuses: Pending: 1 Conditions: Type Status Last Probe Last Transition Pending True 100s 100s Events: Type Reason Age Source Messages Normal Updated 108s (x5 over 2m29s) batch-job-controller Updated JobRun "myjobrun1" Instances: Name Running Status Restarts Age myjobrun1-0-0 0/1 Pending 0 2m29s -
Geheimen Schlüssel erstellen
ibmcloud ce secret create --name mynewliteralsecret --from-literal "TARGET=Fun secret" -
Führen Sie den Job
myjobrun1erneut aus.ibmcloud ce jobrun resubmit --jobrun myjobrun1 --name myjobrunresubmit1Führen Sie den Befehl
ibmcloud ce jobrun get -n myjobrunresubmit1aus, um den Status dieses Joblaufs zu überprüfen. -
Zeigen Sie die Protokolle der Jobausführung
myjobrunresubmit1an. In den Protokollen wirdHello Fun secret from Code Engineangezeigt, was bestätigt, dass der Joblauf auf dasmyliteralsecretverwiesen hat.ibmcloud ce jobrun logs --jobrun myjobrunresubmit1Beispielausgabe
Getting logs for all instances of job run 'myjobrunresubmit1'... Getting jobrun 'myjobrunresubmit1'... Getting instances of jobrun 'myjobrunresubmit1'... OK myjobrunresubmit1-0-0/myjob: Hello from helloworld! I'm a batch job! Index: 0 Hello Fun secret from: . ___ __ ____ ____ ./ __)/ \( \( __) ( (__( O )) D ( ) _) .\___)\__/(____/(____) .____ __ _ ___ __ __ _ ____ ( __)( ( \ / __)( )( ( \( __) .) _) / /( (_ \ )( / / ) _) (____)\_)__) \___/(__)\_)__)(____) Some Env Vars: -------------- HOME=/root HOSTNAME=myjobrunresubmit1-0-0 JOB_INDEX=0 KUBERNETES_PORT=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=172.21.0.1 KUBERNETES_SERVICE_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ SHLVL=1 TARGET=Fun secret
Weitere detaillierte Szenarios zum Verweisen auf vollständige geheime Schlüssel und Konfigurationszuordnungen als Umgebungsvariablen, Überschreiben von Verweisen und Entfernen von Verweisen in der Befehlszeilenschnittstelle finden Sie unter Auf geheime Schlüssel und Konfigurationszuordnungen verweisen.
Geheime Schlüssel löschen
Wenn Sie ein Geheimnis nicht mehr benötigen, können Sie es löschen.
Löschen von Geheimnissen aus der Konsole
- So löschen Sie ein Geheimnis von der Konsole aus,
- Rufen Sie die Seite Secrets and configmaps auf Ihrer Projektseite Code Engine auf.
- Klicken Sie auf das zu löschende Geheimnis, um dessen Seite zu öffnen.
- Klicken Sie auf der Seite für den jeweiligen geheimen Schlüssel auf Aktionen > Geheimen Schlüssel löschen.
- So löschen Sie ein Schlüssel-Wert-Paar für ein bestimmtes Geheimnis aus der Konsole,
- Rufen Sie die Seite Secrets and configmaps auf Ihrer Projektseite Code Engine auf.
- Klicken Sie auf das Geheimnis, das Sie ändern möchten, um die entsprechende Seite zu öffnen.
- Löschen Sie auf der Seite für das jeweilige Geheimnis das Schlüssel-Wert-Paar, das Sie entfernen möchten.
Sie können auch definierte Umgebungsvariablen löschen, die geheime Schlüssel oder Konfigurationszuordnungen referenzieren. Um eine definierte Umgebungsvariable zu löschen, gehen Sie auf die Registerkarte Umgebungsvariablen Ihrer Anwendung, Ihres Jobs oder Ihrer Funktion und löschen Sie die Umgebungsvariable, die Sie löschen möchten. Nachdem Sie eine definierte Umgebungsvariable gelöscht haben, müssen Sie auf Speichern klicken, um die Änderungen in Ihrer Anwendung, Ihrem Job oder Ihrer Funktion zu speichern. Weitere Informationen hierzu finden Sie unter Umgebungsvariable löschen.
Löschen von Geheimnissen mit der CLI
Wenn Sie einen geheimen Schlüssel in der Befehlszeilenschnittstelle löschen möchten, verwenden Sie den Befehl secret delete; Beispiel:
ibmcloud ce secret delete --name myliteralsecret -f
Beispielausgabe
Deleting secret myliteralsecret...
OK
Sie können zum Löschen von Umgebungsvariablen, die geheime Schlüssel und Konfigurationszuordnungen referenzieren, auch die Befehlszeilenschnittstelle verwenden.