Partager via


Activer la rotation automatique des certificats dans un pool Batch

Vous pouvez créer un pool Batch avec un certificat qui peut automatiquement être renouvelé. Pour ce faire, vous devez créer votre pool avec une identité managée affectée par l’utilisateur qui a accès au certificat dans Azure Key Vault.

Créer une identité attribuée par l’utilisateur

Tout d’abord, créez votre identité managée affectée par l’utilisateur dans le même locataire que votre compte Batch. Cette identité managée n’a pas besoin d’être dans le même groupe de ressources ni même dans le même abonnement.

Veillez à noter l’ID client de l’identité managée affectée par l’utilisateur. Vous aurez besoin de cette valeur ultérieurement.

Capture d’écran montrant l’ID client d’une identité managée affectée par l’utilisateur dans le Portail Azure.

Créer votre certificat

Vous devez ensuite créer un certificat et l’ajouter à Azure Key Vault. Si vous n’avez pas encore créé de coffre de clés, vous devez d’abord le faire. Pour obtenir des instructions, consultez Démarrage rapide : Définir et récupérer un certificat dans Azure Key Vault à l’aide du portail Azure.

Lors de la création de votre certificat, veillez à définir le Type d’action de la durée de vie sur le renouvellement automatique et spécifiez le nombre de jours après lequel le certificat doit être renouvelé.

Capture d’écran de l’écran de création de certificat dans le portail Azure.

Une fois votre certificat créé, notez son Identificateur de secret. Vous aurez besoin de cette valeur ultérieurement.

Capture d’écran montrant l’identificateur de secret d’un certificat.

Ajouter une stratégie d’accès dans Azure Key Vault

Dans votre coffre de clés, attribuez une stratégie d’accès Key Vault qui permet à votre identité managée affectée par l’utilisateur d’accéder aux secrets et aux certificats. Pour obtenir des instructions détaillées, consultez Attribuer une stratégie d’accès Key Vault à l’aide du portail Azure.

Créer un pool Batch avec une identité managée affectée par l’utilisateur

Créez un pool Batch avec votre identité managée à l’aide de la bibliothèque de gestion Batch .NET. Pour plus d’informations, consultez Configurer des identités managées dans des pools Batch.

Conseil

Vous ne pouvez pas mettre à jour des pools existants avec l’extension de machine virtuelle Key Vault. Vous devrez recréer votre pool.

L’exemple suivant utilise l’API REST de gestion Batch pour créer un pool. Veillez à utiliser l’Identificateur de secret de votre certificat pour observedCertificates et l'ID client de votre identité managée pour msiClientId, en remplaçant les données d’exemple ci-dessous.

URI de l’API REST

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

Corps de la demande pour un nœud 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": {}
    }
  }
}

Corps de la demande pour un nœud 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": {}
        }
    }
}

Valider le certificat

Pour vérifier que le certificat a été correctement déployé, connectez-vous au nœud de calcul. Vous devez obtenir une sortie similaire à la suivante :

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#

Résolution des problèmes liés à l’extension Key Vault

Si l’extension Key Vault est configurée de manière incorrecte, il est possible que le nœud de calcul soit dans un état utilisable. Pour résoudre des problèmes de défaillance de l’extension Key Vault, vous pouvez définir la valeur de requireInitialSync sur false et redéployer votre pool et le nœud de calcul est ensuite dans un état inactif. Vous pouvez vous connecter au nœud de calcul pour rechercher des erreurs dans les journaux d’extension Key Vault et corriger les problèmes de configuration. Visitez le lien suivant vers la documentation sur l’extension Key Vault pour obtenir plus d’informations.

Étapes suivantes