Toepassingsgeheimen implementeren in een Service Fabric beheerd cluster

Geheimen kunnen gevoelige informatie zijn, zoals opslagverbindingsreeksen, wachtwoorden of andere waarden die niet in tekst zonder tekst mogen worden verwerkt. We raden u aan Azure Key Vault sleutels en geheimen te beheren voor Service Fabric beheerde clusters en deze te gebruiken voor dit artikel. Het gebruik van geheimen in een toepassing is echter cloudplatformagnostisch, zodat toepassingen kunnen worden geïmplementeerd in een cluster dat overal wordt gehost.

De aanbevolen manier om serviceconfiguratie-instellingen te beheren, is via serviceconfiguratiepakketten. Configuratiepakketten worden geversierd en kunnen worden updateerbaar via beheerde rolling upgrades met statusvalidatie en automatisch terugdraaien. Dit heeft de voorkeur boven wereldwijde configuratie, omdat dit de kans op een wereldwijde service-storing vermindert. Versleutelde geheimen vormen geen uitzondering. Service Fabric beschikt over ingebouwde functies voor het versleutelen en ontsleutelen van waarden in een configuratiepakket Settings.xml met behulp van certificaatversleuteling.

Het volgende diagram illustreert de basisstroom voor geheimbeheer in een Service Fabric toepassing:

overzicht van geheimenbeheer

Deze stroom bestaat uit vier hoofdstappen:

  1. Een gegevenscodeercertificaat verkrijgen.
  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 Settings.xml-configuratiebestand van een service.
  4. Lees versleutelde waarden uit Settings.xml 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 Service Fabric beheerde clusterknooppunten in Azure.

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

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

Een gegevenscodeercertificaat 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 verkrijgen en op clusterknooppunten kan installeren.

Het certificaat installeren in uw cluster

Dit certificaat moet worden geïnstalleerd op elk knooppunt in het cluster en Service Fabric beheerde clusters maken dit gemakkelijk. De beheerde clusterservice kan versiespecifieke geheimen naar de knooppunten pushen om geheimen te installeren die niet vaak worden gewijzigd, zoals het installeren van een persoonlijke basis-CA op de knooppunten. Voor de meeste productieworkloads raden we u aan 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 van Azure Key Vault en één die u kiest voor de naam van het lokale winkel 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 object-id en is niet-casegevoelig en onveranderbaar
  • Certificate Store: Dit is het lokale certificaatopslag op de knooppunten waar het certificaat wordt geplaatst
    • naam van certificaatopslag op de knooppunten, bijvoorbeeld: "MIJN"

Service Fabric beheerde clusters ondersteunt twee methoden voor het toevoegen van versiespecifieke geheimen aan uw knooppunten.

  1. Portal tijdens het maken van het eerste cluster alleen waarden van hierboven invoegen in dit gebied:

portal geheimeninvoer

  1. Azure Resource Manager 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}"
          }
        ]
      }
    ]
  }
}