Share via


Distribuire segreti dell'applicazione in un cluster gestito di Service Fabric

I segreti possono essere informazioni riservate, ad esempio le stringhe di connessione di archiviazione, le password o altri valori che non devono essere gestiti in testo normale. È consigliabile usare Azure Key Vault per gestire chiavi e segreti per i cluster gestiti di Service Fabric e usarli per questo articolo. Tuttavia, l' uso di segreti in un'applicazione è indipendente dalla piattaforma cloud per consentire alle applicazioni di essere distribuite in un cluster ospitato in un punto qualsiasi.

Il metodo consigliato per gestire le impostazioni di configurazione del servizio è tramite i pacchetti di configurazione del servizio. I pacchetti di configurazione dispongono di controllo delle versioni e sono aggiornabili tramite gli aggiornamenti in sequenza gestiti con convalida dell'integrità e rollback automatico. Questo approccio è da preferire alla configurazione globale in quanto riduce le probabilità di un'interruzione del servizio globale. I segreti crittografati non rappresentano un'eccezione. Service Fabric offre funzionalità incorporate per crittografare e decrittografare i valori in un file Settings.xml del pacchetto configurazione tramite la crittografia del certificato.

Il diagramma seguente illustra il flusso di base per la gestione dei segreti in un'applicazione di Service Fabric:

panoramica della gestione dei segreti

In questo flusso sono presenti quattro passaggi principali:

  1. Ottenere un certificato di crittografia dei dati.
  2. Installare il certificato nel cluster.
  3. Crittografare i valori dei segreti quando si distribuisce un'applicazione con il certificato e inserirli nel file di configurazione Settings.xml del servizio.
  4. Leggere i valori crittografati risultati da Settings. XML eseguendo la decrittografia con lo stesso certificato di crittografia.

Azure Key Vault viene usato qui come percorso di archiviazione sicuro per i certificati e come modo per installare i certificati nei nodi del cluster gestito di Service Fabric in Azure.

Per un esempio su come implementare i segreti delle applicazioni, vedere Gestire i segreti dell'applicazione.

In alternativa, è supportato anche KeyVaultReference. Il supporto di Service Fabric KeyVaultReference semplifica la distribuzione di segreti nelle applicazioni semplicemente facendo riferimento all'URL del segreto archiviato in Key Vault

Creare un certificato di crittografia dei dati

Per creare un insieme di credenziali delle chiavi personalizzato e configurare i certificati, seguire le istruzioni fornite da Azure Key Vault usando l'interfaccia della riga di comando di Azure, PowerShell, il portale e altro ancora.

Nota

L'insieme di credenziali delle chiavi deve essere abilitato per la distribuzione di modelli per consentire al provider di risorse di calcolo di ottenere i certificati e installarli nei nodi del cluster.

Installare il certificato nel cluster

Questo certificato deve essere installato in ogni nodo del cluster e i cluster gestiti di Service Fabric semplificano questa operazione. Il servizio cluster gestito può eseguire il push di segreti specifici della versione nei nodi per installare segreti che non cambieranno spesso, ad esempio l'installazione di una CA radice privata nei nodi. Per la maggior parte dei carichi di lavoro di produzione è consigliabile usare l'estensione KeyVault. L'estensione macchina virtuale key vault fornisce l'aggiornamento automatico dei certificati archiviati in un insieme di credenziali delle chiavi di Azure rispetto a una versione statica.

Per i cluster gestiti sono necessari tre valori, due da Azure Key Vault e uno scelto per il nome dell'archivio locale nei nodi.

Parametri:

  • Source Vault: questo è il
    • ad esempio: /subscriptions/{subscriptionid}/resourceGroups/myrg1/providers/Microsoft.KeyVault/vaults/mykeyvault1
  • Certificate URL: identificatore completo del segreto dell'insieme di credenziali delle chiavi e senza distinzione tra maiuscole e minuscole e non modificabile
  • Certificate Store: si tratta dell'archivio certificati locale nei nodi in cui verrà inserito il certificato
    • nome dell'archivio certificati nei nodi, ad esempio "MY"

I cluster gestiti di Service Fabric supportano due metodi per l'aggiunta di segreti specifici della versione ai nodi.

  1. Portale durante la creazione iniziale del cluster inserisce solo i valori precedenti in questa area:

input dei segreti del portale

  1. Azure Resource Manager durante la creazione o in qualsiasi momento
{
  "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}"
          }
        ]
      }
    ]
  }
}