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.

Observera klient-ID:t 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 Portal.

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 Portal.

När du skapar certifikatet måste du ange Åtgärdstyp för livslängd att förnyas automatiskt och ange hur många dagar certifikatet ska förnyas.

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

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 Portal.

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.

Dricks

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

Begärandetext 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ärandetext 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öka Key Vault-tillägg

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