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.
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.
Dopo aver creato il certificato, prendere nota del relativo identificatore segreto. Questo valore sarà necessario in un secondo momento.
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
- Altre informazioni su Identità gestite per le risorse di Azure.
- Informazioni su come usare chiavi gestite dal cliente con identità gestite dall'utente.