Share via


Habilitar a rotação automática de certificados em um pool de lotes

Você pode criar um pool de lotes com um certificado que pode ser renovado automaticamente. Para fazer isso, seu pool deve ser criado com uma identidade gerenciada atribuída pelo usuário que tenha acesso ao certificado no Cofre da Chave do Azure.

Criar uma identidade atribuída pelo utilizador

Primeiro, crie sua identidade gerenciada atribuída pelo usuário no mesmo locatário que sua conta do Batch. Essa identidade gerenciada não precisa estar no mesmo grupo de recursos ou mesmo na mesma assinatura.

Certifique-se de anotar a ID do Cliente da identidade gerenciada atribuída pelo usuário. Vai precisar deste valor mais à frente.

Captura de ecrã a mostrar o ID de cliente de uma identidade gerida atribuída pelo utilizador no portal do Azure.

Crie o seu certificado

Em seguida, você precisa criar um certificado e adicioná-lo ao Cofre da Chave do Azure. Se você ainda não criou um cofre de chaves, você precisa fazer isso primeiro. Para obter instruções, consulte Guia de início rápido: definir e recuperar um certificado do Cofre de Chaves do Azure usando o portal do Azure.

Ao criar seu certificado, certifique-se de definir Tipo de ação vitalício para renovar automaticamente e especifique o número de dias após os quais o certificado deve ser renovado.

Captura de ecrã do ecrã de criação de certificados no portal do Azure.

Depois que o certificado for criado, anote seu Identificador Secreto. Vai precisar deste valor mais à frente.

Captura de ecrã a mostrar o Identificador Secreto de um certificado.

Adicionar uma política de acesso no Azure Key Vault

No cofre de chaves, atribua uma política de acesso ao Cofre da Chave que permita que sua identidade gerenciada atribuída pelo usuário acesse segredos e certificados. Para obter instruções detalhadas, consulte Atribuir uma política de acesso ao Cofre da Chave usando o portal do Azure.

Criar um pool de lotes com uma identidade gerenciada atribuída pelo usuário

Crie um pool de lotes com sua identidade gerenciada usando a biblioteca de gerenciamento .NET em lote. Para obter mais informações, consulte Configurar identidades gerenciadas em pools de lotes.

Gorjeta

Os pools existentes não podem ser atualizados com a extensão de VM do Cofre da Chave. Terá de recriar a sua piscina.

O exemplo a seguir usa a API REST de gerenciamento de lote para criar um pool. Certifique-se de usar o Identificador Secreto do seu certificado e observedCertificates o ID do Cliente da sua identidade gerenciada para msiClientId, substituindo os dados de exemplo abaixo.

URI da API REST

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

Corpo da solicitação para o nó 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 da solicitação para o nó do 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": {}
        }
    }
}

Validar o certificado

Para confirmar que o certificado foi implantado com êxito, faça login no nó de computação. Deverá ver um resultado semelhante ao seguinte:

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#

Solução de problemas da extensão Key Vault

Se a extensão do Cofre da Chave estiver configurada incorretamente, o nó de computação poderá estar em estado utilizável. Para solucionar problemas de falha de extensão do Key Vault, você pode definir temporariamente requireInitialSync como false e reimplantar seu pool, em seguida, o nó de computação está em estado ocioso, você pode fazer login no nó de computação para verificar se há erros nos logs de extensão do KeyVault e corrigir os problemas de configuração. Visite o seguinte link do documento de extensão do Key Vault para obter mais informações.

Próximos passos