Dela via


Aktivera automatisk certifikatrotation i en Batch-pool

Du kan skapa en Batch-pool med ett certifikat som kan förnyas automatiskt. För att göra det måste din pool skapas med en användartilldelad hanterad identitet som har åtkomst till certifikatet i Azure Key Vault.

Skapa en användartilldelad identitet

Skapa först din användartilldelade hanterade identitet i samma klientorganisation som ditt Batch-konto. Den här hanterade identiteten behöver inte finnas i samma resursgrupp eller ens i samma prenumeration.

Var noga med att notera klient-ID för den användartilldelade hanterade identiteten. Du behöver det här värdet senare.

Skärmbild som visar klient-ID för en användartilldelad hanterad identitet i Azure-portalen.

Skapa certifikatet

Därefter måste du skapa ett certifikat och lägga till det i Azure Key Vault. Om du inte redan har skapat ett nyckelvalv måste du göra det först. Anvisningar finns i Snabbstart: Ange och hämta ett certifikat från Azure Key Vault med hjälp av Azure-portalen.

När du skapar ditt certifikat, var noga med att ställa in Livslängdsåtgärdstyp till automatisk förnyelse, och ange antalet dagar efter vilket certifikatet ska förnyas.

Skärmbild av skärmen för att skapa certifikat i Azure-portalen.

När certifikatet har skapats bör du anteckna dess hemliga identifierare. Du behöver det här värdet senare.

Skärmbild som visar den hemliga identifieraren för ett certifikat.

Lägga till en åtkomstprincip i Azure Key Vault

I nyckelvalvet tilldelar du en åtkomstprincip för Key Vault som gör att din användartilldelade hanterade identitet kan komma åt hemligheter och certifikat. Detaljerade anvisningar finns i Tilldela en Key Vault-åtkomstprincip med hjälp av Azure-portalen.

Skapa en Batch-pool med en användartilldelad hanterad identitet

Skapa en Batch-pool med din hanterade identitet med hjälp av Batch .NET-hanteringsbiblioteket. Mer information finns i Konfigurera hanterade identiteter i Batch-pooler.

Tips/Råd

Det går inte att uppdatera befintliga pooler med tillägget för den virtuella Key Vault-datorn. Du måste återskapa poolen.

I följande exempel används REST-API:et för Batch Management för att skapa en pool. Se till att använda certifikatets hemliga identifierare för observedCertificates och den hanterade identitetens klient-ID för msiClientIdoch ersätt exempeldata nedan.

REST API-URI

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

Förfrågningskropp för Linux-nod

{
  "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": {}
    }
  }
}

Begäranstext för Windows-nod

{
    "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": {}
        }
    }
}

Verifiera certifikatet

Logga in på beräkningsnoden för att bekräfta att certifikatet har distribuerats. Du bör se utdata som liknar följande:

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#

Felsökning av Key Vault-tillägget

Om Key Vault-tillägget har konfigurerats felaktigt kan beräkningsnoden vara i användbart tillstånd. Om du vill felsöka fel med Key Vault-tillägget kan du tillfälligt ange requireInitialSync till false och distribuera om poolen. Sedan är beräkningsnoden i inaktivt tillstånd. Du kan logga in på beräkningsnoden för att kontrollera om keyVault-tilläggsloggarna innehåller fel och åtgärda konfigurationsproblemen. Mer information finns i följande nyckelvalvstilläggsdokumentlänk.

Nästa steg