Condividi tramite


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, creare 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 prendere nota dell'ID client 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 durata per il rinnovo automatico e specificare il numero di giorni dopo i quali il certificato deve rinnovare.

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 delle chiavi assegnare criteri di accesso di Key Vault che consentono all'identità gestita assegnata dall'utente di accedere a segreti e 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

Creare un pool di 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

Non è possibile aggiornare i pool esistenti con l'estensione della macchina virtuale Key Vault. Sarà necessario 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 seguenti.

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 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/042998e4-36dc-4b7d-8ce3-a7a2c4877d33/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
    }
  }
}

Corpo della richiesta per il nodo 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/042998e4-36dc-4b7d-8ce3-a7a2c4877d33/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, quindi il nodo di calcolo è inattiva, è 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 altre informazioni, vedere il collegamento alla documentazione dell'estensione key vault seguente.

Passaggi successivi