Bereitstellen von Anwendungsgeheimnissen in verwalteten Service Fabric-Clustern

Geheimnisse beinhalten jegliche Art von vertraulichen Informationen (z.B. Speicherverbindungszeichenfolgen, Kennwörter oder andere Werte, die nicht als Nur-Text verarbeitet werden sollen). Wir empfehlen, Azure Key Vault zu verwenden, um Schlüssel und Geheimnisse für Service Fabric verwaltete Cluster zu verwalten und für diesen Artikel zu nutzen. Die Verwendung von Geheimnissen in einer Anwendung ist jedoch cloudplattformunabhängig, sodass Anwendungen auf einem Cluster bereitgestellt werden können, der an einem beliebigen Standort gehostet wird.

Es wird empfohlen, Dienstkonfigurationseinstellungen über Dienstkonfigurationspakete zu verwalten. Konfigurationspakete verfügen über eine Versionsangabe und können über parallele Upgrades aktualisiert werden. Außerdem kann die Integrität überprüft und ein automatischer Rollback durchgeführt werden. Dies wird der globalen Konfiguration vorgezogen, da die Wahrscheinlichkeit eines globalen Dienstausfalls verringert wird. Verschlüsselte Geheimnisse stellen keine Ausnahme dar. Service Fabric verfügt über integrierte Features zum Verschlüsseln und Entschlüsseln von Werten in der Konfigurationspaketdatei „Settings.xml“ mithilfe der Zertifikatverschlüsselung.

Das Diagramm unten zeigt den grundlegenden Ablauf bei der Verwaltung von Geheimnissen in einer Service Fabric-Anwendung:

Übersicht über die Verwaltung von Geheimnissen

Dieser Vorgang besteht im Wesentlichen aus vier Schritten:

  1. Abrufen eines Datenverschlüsselungszertifikats
  2. Installieren des Zertifikats in Ihrem Cluster
  3. Verschlüsseln von Geheimnissen bei der Bereitstellung einer Anwendung mit dem Zertifikat und Einfügen dieser Geheimnisse in die Konfigurationsdatei „Settings.xml“ des Diensts
  4. Lesen der verschlüsselten Werte aus der Datei „Settings.xml“, indem diese mit demselben Verschlüsselungszertifikat entschlüsselt werden

Azure Key Vault wird hier als sicherer Speicherort für Zertifikate sowie zum Installieren von Zertifikaten auf den verwalteten Service Fabric-Clusterknoten in Azure verwendet.

Ein Beispiel zum Implementieren von Anwendungsgeheimnissen finden Sie unter Verwalten von Anwendungsgeheimnissen.

Alternativ wird auch KeyVaultReference unterstützt. Die KeyVaultReference-Unterstützung von Service Fabric vereinfacht das Bereitstellen von Geheimnissen für Ihre Anwendungen, indem auf die URL des Geheimnisses verwiesen wird, die in Key Vault gespeichert ist.

Erstellen eines Datenverschlüsselungszertifikats

Um Ihren eigenen Schlüsseltresor zu erstellen und Zertifikate einzurichten, befolgen Sie die Anweisungen aus Azure Key Vault, indem Sie die Azure CLI, PowerShell, das Portal und mehr verwenden.

Hinweis

Der Schlüsseltresor muss für Vorlagenbereitstellung aktiviert sein, damit der Computeressourcenanbieter Zertifikate daraus abrufen und auf Clusterknoten installieren kann.

Installieren des Zertifikats in Ihrem Cluster

Dieses Zertifikat muss auf jedem Knoten im Cluster installiert sein. Verwaltete Service Fabric-Cluster erleichtern dies. Der verwaltete Clusterdienst kann versionsspezifische Geheimnisse an die Knoten pushen, um Geheimnisse zu installieren, die sich nicht häufig ändern, z. B. die Installation einer privaten Stammzertifizierungsstelle auf den Knoten. Für die meisten Produktionsworkloads wird die Verwendung der KeyVault-Erweiterung empfohlen. Die Key Vault-VM-Erweiterung ermöglicht die automatische Aktualisierung von Zertifikaten, die in einem Azure-Schlüsseltresor gespeichert sind, im Vergleich zu einer statischen Version.

Für verwaltete Cluster benötigen Sie drei Werte: zwei aus Azure Key Vault und einen Wert, den Sie als Namen des lokalen Speichers auf den Knoten festlegen.

Parameter:

  • Source Vault: Dies ist der/die/das
    • beispielsweise: /subscriptions/{abonnementid}/resourceGroups/myrg1/providers/Microsoft.KeyVault/vaults/mykeyvault1
  • Certificate URL: Dies ist der vollständige geheime Schlüsseltresorbezeichner, bei dem Groß-/Kleinschreibung nicht beachtet wird und der unveränderlich ist
  • Certificate Store: Dies ist der lokale Zertifikatspeicher auf den Knoten, auf denen das Zertifikat platziert wird
    • Name des Zertifikatspeichers auf den Knoten, z. B. „MY“

Verwaltete Service Fabric-Cluster unterstützen zwei Methoden zum Hinzufügen versionsspezifischer Geheimnisse zu Ihren Knoten.

  1. Portal während der anfänglichen Clustererstellung, nur Werte aus den oben aufgeführten in diesen Bereich einfügen:

Eingabe von Geheimnissen im Portal

  1. Azure Resource Manager während der Erstellung oder jederzeit
{
  "apiVersion": "2021-05-01",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "properties": {
    "vmSecrets": [
      {
        "sourceVault": {
          "id": "/subscriptions/{subscriptionid}/resourceGroups/myrg1/providers/Microsoft.KeyVault/vaults/mykeyvault1"
        },
        "vaultCertificates": [
          {
            "certificateStore": "MY",
            "certificateUrl": "https://mykeyvault1.vault.azure.net/certificates/{certificatename}/{secret-version}"
          }
        ]
      }
    ]
  }
}