Toepassingsgeheimen implementeren in een beheerd Service Fabric-cluster

Geheimen kunnen gevoelige informatie zijn, zoals opslag verbindingsreeks s, wachtwoorden of andere waarden die niet mogen worden verwerkt in tekst zonder opmaak. U wordt aangeraden Azure Key Vault te gebruiken om sleutels en geheimen te beheren voor beheerde Service Fabric-clusters en deze te gebruiken voor dit artikel. Het gebruik van geheimen in een toepassing is echter platformneutraal in de cloud, zodat toepassingen overal kunnen worden geïmplementeerd in een cluster dat wordt gehost.

De aanbevolen manier om serviceconfiguratie-instellingen te beheren, is via serviceconfiguratiepakketten. Configuratiepakketten zijn versiebeheer en kunnen worden bijgewerkt via beheerde rolling upgrades met statusvalidatie en automatisch terugdraaien. Dit is de voorkeur aan globale configuratie, omdat het de kans op een wereldwijde servicestoring vermindert. Versleutelde geheimen zijn geen uitzondering. Service Fabric heeft ingebouwde functies voor het versleutelen en ontsleutelen van waarden in een configuratiepakket Instellingen.xml bestand met behulp van certificaatversleuteling.

In het volgende diagram ziet u de basisstroom voor geheimbeheer in een Service Fabric-toepassing:

Overzicht van geheimbeheer

Deze stroom bestaat uit vier hoofdstappen:

  1. Haal een certificaat voor gegevenscodering op.
  2. Installeer het certificaat in uw cluster.
  3. Versleutel geheime waarden bij het implementeren van een toepassing met het certificaat en injecteer deze in het Instellingen.xml configuratiebestand van een service.
  4. Versleutelde waarden uit Instellingen.xml lezen door te ontsleutelen met hetzelfde coderingscertificaat.

Azure Key Vault wordt hier gebruikt als een veilige opslaglocatie voor certificaten en als een manier om certificaten te installeren op de beheerde Service Fabric-clusterknooppunten in Azure.

Zie Toepassingsgeheimen beheren voor een voorbeeld van het implementeren van toepassingengeheimen.

U kunt ook KeyVaultReference ondersteunen. Service Fabric KeyVaultReference-ondersteuning maakt het eenvoudig om geheimen in uw toepassingen te implementeren door te verwijzen naar de URL van het geheim dat is opgeslagen in Key Vault

Een certificaat voor gegevenscodering maken

Als u uw eigen sleutelkluis wilt maken en certificaten wilt instellen, volgt u de instructies van Azure Key Vault met behulp van de Azure CLI, PowerShell, Portal en meer.

Notitie

De sleutelkluis moet zijn ingeschakeld voor sjabloonimplementatie , zodat de rekenresourceprovider certificaten kan ophalen en installeren op clusterknooppunten.

Het certificaat installeren in uw cluster

Dit certificaat moet worden geïnstalleerd op elk knooppunt in het cluster en beheerde Service Fabric-clusters maken dit eenvoudig. De beheerde clusterservice kan versiespecifieke geheimen naar de knooppunten pushen om geheimen te installeren die niet vaak veranderen, zoals het installeren van een privé-basis-CA naar de knooppunten. Voor de meeste productieworkloads raden we u aan om de KeyVault-extensie te gebruiken. De Key Vault VM-extensie biedt automatische vernieuwing van certificaten die zijn opgeslagen in een Azure-sleutelkluis versus een statische versie.

Voor beheerde clusters hebt u drie waarden nodig, twee uit Azure Key Vault en één die u kiest voor de naam van het lokale archief op de knooppunten.

Parameters:

  • Source Vault: Dit is de
    • bijvoorbeeld: /subscriptions/{subscriptionid}/resourceGroups/myrg1/providers/Microsoft.KeyVault/vaults/mykeyvault1
  • Certificate URL: Dit is de volledige Key Vault-geheime id en is niet hoofdlettergevoelig en onveranderbaar
  • Certificate Store: Dit is het lokale certificaatarchief op de knooppunten waar het certificaat wordt geplaatst
    • naam van het certificaatarchief op de knooppunten, bijvoorbeeld : 'MIJN'

Beheerde Service Fabric-clusters ondersteunen twee methoden voor het toevoegen van versiespecifieke geheimen aan uw knooppunten.

  1. Portal tijdens het maken van het eerste cluster voegt alleen waarden van boven in dit gebied in:

invoer van portalgeheimen

  1. Azure Resource Manager tijdens het maken of op elk gewenst moment
{
  "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}"
          }
        ]
      }
    ]
  }
}