Abilitare la rotazione automatica dei certificati in un pool di Batch

È possibile creare un pool di Batch con un certificato che può essere rinnovato automaticamente. A tale scopo, il pool deve essere creato con un'identità gestita assegnata dall'utente che ha accesso al certificato in Azure Key Vault.

Creare un'identità assegnata dall'utente

Prima di tutto, crea l'identità gestita assegnata dall'utente nello stesso tenant dell'account Batch. Non è necessario che questa identità gestita sia nello stesso gruppo di risorse o nella stessa sottoscrizione.

Assicurarsi di annotare il Client ID dell'identità gestita assegnata dall'utente. Questo valore sarà necessario in un secondo momento.

Screenshot che mostra l'ID client di un'identità gestita assegnata dall'utente nel portale di Azure.

Creare il certificato

Successivamente, è necessario creare un certificato e aggiungerlo ad Azure Key Vault. Se non è già stato creato un insieme di credenziali delle chiavi, è prima necessario eseguire questa operazione. Per istruzioni, vedere Avvio rapido: Impostare e recuperare un certificato da Azure Key Vault usando il portale di Azure.

Quando si crea il certificato, assicurarsi di impostare Tipo di azione della durata su rinnovo automatico e di specificare il numero di giorni dopo i quali il certificato deve essere rinnovato.

Screenshot della schermata di creazione del certificato nella portale di Azure.

Dopo aver creato il certificato, prendere nota del relativo identificatore segreto. Questo valore sarà necessario in un secondo momento.

Screenshot che mostra l'identificatore segreto di un certificato.

Aggiungere criteri di accesso in Azure Key Vault

Nell'insieme di credenziali, assegna un criterio di accesso di Key Vault che consenta all'identità gestita assegnata dall'utente di accedere ai segreti e ai certificati. Per istruzioni dettagliate, vedere Assegnare un criterio di accesso a Key Vault usando il portale di Azure.

Creare un pool di Batch con un'identità gestita assegnata dall'utente

Crea un pool Batch con l'identità gestita usando la libreria di gestione Batch .NET. Per altre informazioni, vedere Configurare le identità gestite nei pool di Batch.

Suggerimento

I pool esistenti non possono essere aggiornati con l'estensione della macchina virtuale Key Vault. Ricreare il pool.

L'esempio seguente usa l'API REST di gestione batch per creare un pool. Assicurarsi di usare l'Identificatore segreto del certificato per observedCertificates e l'ID client dell'identità gestita per msiClientId, sostituendo i dati di esempio riportati di seguito.

URI DELL'API REST

PUT https://management.azure.com/subscriptions/<subscriptionid>/resourceGroups/<resourcegroupName>/providers/Microsoft.Batch/batchAccounts/<batchaccountname>/pools/<poolname>?api-version=2021-01-01

Corpo della richiesta per il nodo di Linux

{
  "name": "test2",
  "type": "Microsoft.Batch/batchAccounts/pools",
  "properties": {
    "vmSize": "STANDARD_DS2_V2",
    "taskSchedulingPolicy": {
      "nodeFillType": "Pack"
    },
    "deploymentConfiguration": {
      "virtualMachineConfiguration": {
        "imageReference": {
          "publisher": "canonical",
          "offer": "ubuntuserver",
          "sku": "20.04-lts",
          "version": "latest"
        },
        "nodeAgentSkuId": "batch.node.ubuntu 20.04",
        "extensions": [
          {
            "name": "KVExtensions",
            "type": "KeyVaultForLinux",
            "publisher": "Microsoft.Azure.KeyVault",
            "typeHandlerVersion": "3.0",
            "autoUpgradeMinorVersion": true,
            "settings": {
              "secretsManagementSettings": {
                "pollingIntervalInS": "300",
                "certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault",
                "requireInitialSync": true,
                "observedCertificates": [
                  "https://testkvwestus2s.vault.azure.net/secrets/authcertforumatesting/8f5f3f491afd48cb99286ba2aacd39af"
                ]
              },
              "authenticationSettings": {
                "msiEndpoint": "http://169.254.169.254/metadata/identity",
                "msiClientId": "b9f6dd56-d2d6-4967-99d7-8062d56fd84c"
              }
            }
          }
        ]
      }
    },
    "scaleSettings": {
      "fixedScale": {
        "targetDedicatedNodes": 1,
        "resizeTimeout": "PT15M"
      }
    }
  },
  "identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
    }
  }
}

Corpo della richiesta per il nodo di Windows

{
    "name": "test2",
    "type": "Microsoft.Batch/batchAccounts/pools",
    "properties": {
        "vmSize": "STANDARD_DS2_V2",
        "taskSchedulingPolicy": {
            "nodeFillType": "Pack"
        },
        "deploymentConfiguration": {
            "virtualMachineConfiguration": {
                "imageReference": {
                    "publisher": "microsoftwindowsserver",
                    "offer": "windowsserver",
                    "sku": "2022-datacenter",
                    "version": "latest"
                },
                "nodeAgentSkuId": "batch.node.windows amd64",
                "extensions": [
                    {
                        "name": "KVExtensions",
                        "type": "KeyVaultForWindows",
                        "publisher": "Microsoft.Azure.KeyVault",
                        "typeHandlerVersion": "3.0",
                        "autoUpgradeMinorVersion": true,
                        "settings": {
                            "secretsManagementSettings": {
                                "pollingIntervalInS": "300",
                                "requireInitialSync": true,
                                "observedCertificates": [
                                    {
                                        "url": "https://testkvwestus2s.vault.azure.net/secrets/authcertforumatesting/8f5f3f491afd48cb99286ba2aacd39af",
                                        "certificateStoreLocation": "LocalMachine",
                                        "keyExportable": true
                                    }
                                ]
                            },
                            "authenticationSettings": {
                                "msiEndpoint": "http://169.254.169.254/metadata/identity",
                                "msiClientId": "b9f6dd56-d2d6-4967-99d7-8062d56fd84c"
                            }
                        },
                    }
               ]
            }
        },
        "scaleSettings": {
            "fixedScale": {
                "targetDedicatedNodes": 1,
                "resizeTimeout": "PT15M"
            }
        },
    },
    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
        }
    }
}

Convalidare il certificato

Per verificare che il certificato sia stato distribuito correttamente, accedere al nodo di calcolo. L'output dovrebbe essere simile al seguente:

root@74773db5fe1b42ab9a4b6cf679d929da000000:/var/lib/waagent/Microsoft.Azure.KeyVault.KeyVaultForLinux-1.0.1363.13/status# cat 1.status
[{"status":{"code":0,"formattedMessage":{"lang":"en","message":"Successfully started Key Vault extension service. 2021-03-03T23:12:23Z"},"operation":"Service start.","status":"success"},"timestampUTC":"2021-03-03T23:12:23Z","version":"1.0"}]root@74773db5fe1b42ab9a4b6cf679d929da000000:/var/lib/waagent/Microsoft.Azure.KeyVault.KeyVaultForLinux-1.0.1363.13/status#

Risoluzione dei problemi relativi all'estensione Key Vault

Se l'estensione Key Vault è configurata in modo non corretto, il nodo di calcolo potrebbe essere in stato utilizzabile. Per risolvere l'errore dell'estensione di Key Vault è possibile impostare temporaneamente requireInitialSync su "false" e ridistribuire il pool; il nodo di calcolo sarà quindi inattivo. È possibile accedere al nodo di calcolo per controllare i log delle estensioni di KeyVault per individuare gli errori e correggere i problemi di configurazione. Per ulteriori informazioni, visitare il seguente link alla documentazione dell'estensione Key Vault.

Passaggi successivi