Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Geheime Schlüssel auf Anwendungsebene sind Konfigurationswerte, die Ihr Funktionscode und Ihre Bindungen zur Laufzeit verwenden. Im Gegensatz zu Funktionszugriffsschlüsseln, die HTTP-Endpunkte schützen, sind geheime Schlüssel auf App-Ebene die Anmeldeinformationen, die Ihre Anwendung zum Herstellen einer Verbindung mit anderen Diensten benötigt.
Häufige Beispiele sind:
-
Infrastructure connections -
AzureWebJobsStorageVerbindungszeichenfolgen, Trigger- und Bindungsverbindungen für Event Hubs, Service Bus, Cosmos DB und SQL. - Geschäftsanmeldeinformationen – API-Schlüssel von Drittanbietern, Datenbank-Kennwörter, SaaS-Plattformtoken.
- Benutzerdefinierte Konfiguration – jeder vertrauliche Wert, den Ihr Code aus Umgebungsvariablen liest.
Wählen Sie eine Speicheroption aus.
Azure Container Apps bietet Ihnen zwei Möglichkeiten zum Speichern geheimer Schlüssel auf App-Ebene:
| Auswahl | Am besten geeignet für: | Zentralisierte Verwaltung | Automatische Drehung | Überwachungsprotokollierung |
|---|---|---|---|---|
| Geheime Container-Apps | Entwicklung/Test, einfache einzelne App-Workloads | Nein – auf eine App beschränkt | No | Nur Aktivitätsprotokolle |
| Key Vault-Verweise | Produktion, Multi-App, Compliance | Ja – in allen Apps | Ja (versionsloser URI) | Die vollständige Diagnose von Key Vault |
Tip
Beginnen Sie mit den Geheimnissen von Container Apps, um das Verfahren einfach zu halten. Wechseln Sie zu Key Vault Verweisen, wenn Sie eine zentrale Verwaltung, automatische Rotation oder Compliance-taugliches Auditing benötigen.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.
- Azure CLI Version 2.40.0 oder höher.
- Eine vorhandene Azure Functions-App in Container-Apps oder Berechtigungen zum Erstellen einer App.
Verwenden von Secrets von Container-Apps
Container Apps speichert geheime Schlüssel im Array der App configuration.secrets und verschlüsselt gespeicherte Werte. Sie können geheime Schlüssel in Umgebungsvariablen, Skalierungsregeln, Volume mounts und Dapr-Komponenten referenzieren.
Ein Geheimnis speichern
Wechseln Sie im Azure-Portal zur Container-App "Funktionen".
Wählen Sie unter "Einstellungen" "Geheime Schlüssel" aus.
Wählen Sie "Hinzufügen" aus, und geben Sie die folgenden Werte ein:
Property Wert Namen Ein geheimer Name wie database-password. Verwenden Sie nur Kleinbuchstaben, Zahlen und Bindestriche.Typ Geheimnis der Container-Apps Wert Ihr geheimer Wert. Wählen Sie Hinzufügen aus.
Verweisen auf das Geheimnis in einer Umgebungsvariable
Nachdem Sie einen geheimen Schlüssel gespeichert haben, verweisen Sie darauf in einer Umgebungsvariable, damit ihr Funktionscode ihn lesen kann.
Wählen Sie in der Container-App "Funktionen" unter Anwendung die Optionen Überarbeitungen und Replikate aus.
Wählen Sie " Neue Überarbeitung erstellen" aus.
Wählen Sie auf der Registerkarte " Container " Ihren Container und dann "Bearbeiten" aus.
Wählen Sie die Registerkarte "Umgebungsvariablen " und dann "Hinzufügen" aus.
Geben Sie die folgenden Werte ein:
Property Wert Namen DATABASE_PASSWORDSource Verweisen auf ein Geheimnis Wert database-passwordWählen Sie "Speichern" und dann " Erstellen" aus, um die neue Revision bereitzustellen.
Überprüfen des geheimen Schlüssels
Bestätigen Sie, dass Ihre Funktion den geheimen Wert lesen kann, indem Sie die Funktion aufrufen und überprüfen, ob sie ohne Fehler im Zusammenhang mit fehlender Konfiguration ausgeführt wird.
curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"
Important
Container Apps fügt zur Laufzeit den geheimen Wert in die Umgebungsvariable ein. Ihr Code liest die Umgebungsvariable und greift nicht direkt auf den geheimen Speicher zu.
Limitations
Container-App-Geheimnisse haben die folgenden Einschränkungen:
- Keine Zentralisierung – jede Container-App speichert ihre eigenen geheimen Schlüssel separat.
- Keine automatische Drehung – Sie müssen geheime Werte manuell aktualisieren.
- Kein Ablauf – geheime Schlüssel laufen nicht automatisch ab.
- Eingeschränkte Überwachung – nur grundlegende Aktivitätsprotokolle; keine detaillierte Überwachung des geheimen Zugriffs.
- Keine Versionsverwaltung – kein integrierter geheimer Versionsverlauf.
- Updateverhalten : Das Ändern eines geheimen Schlüssels löst keine neue Revision aus. Sie müssen eine neue Revision erstellen oder vorhandene Überarbeitungen neu starten, um Änderungen zu übernehmen.
Key Vault-Verweise verwenden
Key Vault Verweise ermöglichen es Ihrer Container-App, geheime Schlüssel direkt aus Azure Key Vault mithilfe einer verwalteten Identität abzurufen. Mit diesem Ansatz erhalten Sie eine zentralisierte Verwaltung, automatische Rotation und Auditierung nach Compliance-Standards.
Schritt 1: Einrichten der verwalteten Identität
Ihre Container-App benötigt eine verwaltete Identität, um sich ohne Anmeldeinformationen bei Key Vault zu authentifizieren.
Wechseln Sie im Azure-Portal zur Container-App "Funktionen".
Wählen Sie unter EinstellungenIdentität aus:
Legen Sie auf der Registerkarte "System zugewiesen " den Status auf "Ein" fest.
Wählen Sie "Speichern" und dann " Ja " aus, um dies zu bestätigen.
Schritt 2: Gewähren Key Vault Zugriffs
Weisen Sie die Rolle Key Vault Secrets User der verwalteten Identität zu, damit geheime Schlüssel gelesen werden können.
Wechseln Sie zum Key Vault im Azure-Portal.
Wählen Sie unter Einstellungen die Option Access Control (IAM) aus.
Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen.
Wählen Sie auf der Registerkarte RoleKey Vault Secrets User aus.
Wählen Sie Weiteraus.
Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.
Wählen Sie im Bereich "Verwaltete Identitäten auswählen" Ihr Abonnement aus, wählen Sie "Container-App" für den verwalteten Identitätstyp, wählen Sie Ihre "Funktionen"-Container-App und dann "Auswählen" aus.
Wählen Sie "Überprüfen+ Zuweisen" aus.
Schritt 3: Speichern eines geheimen Schlüssels in Key Vault
Wählen Sie in Ihrer Key Vault unter ObjectsSecrets aus.
Wählen Sie die Option Generieren/Importieren aus.
Geben Sie die folgenden Werte ein:
Property Wert Uploadoptionen Manuell Namen Ein geheimer Name, z. B DatabasePassword. .Wert Ihr geheimer Wert. Wählen Sie "Erstellen" aus.
Wählen Sie Ihren neu erstellten geheimen Schlüssel und dann die aktuelle Version aus.
Kopieren Sie den Geheimbezeichner-URI . Verwenden Sie den versionslosen URI (ohne das nachfolgende Versionssegment), um die automatische Drehung zu aktivieren.
Schritt 4: Verweisen auf das Key Vault-Geheimnis in Container-Apps
Erstellen Sie einen geheimen Container-Apps-Schlüssel, der auf den Key Vault geheimen Schlüssel verweist, und binden Sie ihn dann an eine Umgebungsvariable.
Wechseln Sie zu Ihrer Functions-Container-App. Wählen Sie unter "Einstellungen" "Geheime Schlüssel" aus.
Wählen Sie Hinzufügen aus.
Geben Sie in "Geheimen Schlüssel hinzufügen" die folgenden Werte ein:
Property Wert Namen database-passwordTyp Key Vault-Referenz Key Vault geheime URL Der geheime Identifikator-URI, den Sie kopiert haben. Identität Vom System zugewiesen (oder Ihre vom Benutzer zugewiesene Identität). Wählen Sie Hinzufügen aus.
Wählen Sie unter "Anwendung" "Überarbeitungen" und "Replikate" aus. Erstellen Sie eine neue Überarbeitung mit der Umgebungsvariable
DATABASE_PASSWORD, die auf dendatabase-passwordgeheimen Schlüssel verweist.
Schritt 5: Überprüfen der Key Vault-Referenz
Rufen Sie Ihre Funktion auf, und bestätigen Sie, dass sie ohne Fehler im Zusammenhang mit fehlender Konfiguration ausgeführt wird.
curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"
Automatische Secret-Rotation
Wenn Sie auf ein Key Vault Geheimnis mit einem versionslosen URI verweisen, ruft Container Apps automatisch die neueste Version ab.
-
Versionslose URI:
https://myvault.vault.azure.net/secrets/mysecret- verwendet immer die neueste Version. -
Versionierte URI:
https://myvault.vault.azure.net/secrets/mysecret/ec96f020...- an eine bestimmte Version gebunden.
Bei versionslosen URIs sucht Container-Apps innerhalb von 30 Minuten nach neuen Versionen und startet aktive Überarbeitungen automatisch neu, um den neuen Wert aufzunehmen.