Udostępnij za pośrednictwem


Włączanie automatycznej rotacji certyfikatów w puli usługi Batch

Pulę usługi Batch można utworzyć przy użyciu certyfikatu, który można automatycznie odnowić. W tym celu należy utworzyć pulę przy użyciu tożsamości zarządzanej przypisanej przez użytkownika, która ma dostęp do certyfikatu w usłudze Azure Key Vault.

Tworzenie tożsamości przypisanej przez użytkownika

Najpierw utwórz tożsamość zarządzaną przypisaną przez użytkownika w tej samej dzierżawie co konto usługi Batch. Ta tożsamość zarządzana nie musi znajdować się w tej samej grupie zasobów, a nawet w tej samej subskrypcji.

Pamiętaj, aby zanotować identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika. Ta wartość będzie potrzebna później.

Zrzut ekranu przedstawiający identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika w witrynie Azure Portal.

Tworzenie certyfikatu

Następnie należy utworzyć certyfikat i dodać go do usługi Azure Key Vault. Jeśli nie utworzono jeszcze magazynu kluczy, najpierw musisz to zrobić. Aby uzyskać instrukcje, zobacz Szybki start: ustawianie i pobieranie certyfikatu z usługi Azure Key Vault przy użyciu witryny Azure Portal.

Podczas tworzenia certyfikatu należy ustawić opcję Typ akcji okresu istnienia, aby automatycznie odnowić, i określić liczbę dni, po których certyfikat ma zostać odnowiony.

Zrzut ekranu przedstawiający ekran tworzenia certyfikatu w witrynie Azure Portal.

Po utworzeniu certyfikatu zanotuj jego identyfikator tajny. Ta wartość będzie potrzebna później.

Zrzut ekranu przedstawiający identyfikator wpisu tajnego certyfikatu.

Dodawanie zasad dostępu w usłudze Azure Key Vault

W magazynie kluczy przypisz zasady dostępu usługi Key Vault, które umożliwiają przypisanej przez użytkownika tożsamości zarządzanej dostęp do wpisów tajnych i certyfikatów. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie zasad dostępu usługi Key Vault przy użyciu witryny Azure Portal.

Tworzenie puli usługi Batch z tożsamością zarządzaną przypisaną przez użytkownika

Utwórz pulę usługi Batch z tożsamością zarządzaną przy użyciu biblioteki zarządzania platformy .NET usługi Batch. Aby uzyskać więcej informacji, zobacz Konfigurowanie tożsamości zarządzanych w pulach usługi Batch.

Napiwek

Nie można zaktualizować istniejących pul za pomocą rozszerzenia maszyny wirtualnej usługi Key Vault. Należy ponownie utworzyć pulę.

W poniższym przykładzie do utworzenia puli użyto interfejsu API REST zarządzania usługą Batch. Pamiętaj, aby użyć identyfikatora observedCertificates wpisu tajnego certyfikatu i identyfikatora klienta tożsamości zarządzanej dla msiClientIdelementu , zastępując poniższe przykładowe dane.

Identyfikator URI interfejsu API REST

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

Treść żądania dla węzła systemu 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": {}
    }
  }
}

Treść żądania dla węzła systemu 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": {}
        }
    }
}

Weryfikowanie certyfikatu

Aby potwierdzić, że certyfikat został pomyślnie wdrożony, zaloguj się do węzła obliczeniowego. Powinny zostać wyświetlone dane wyjściowe podobne do następujących:

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#

Rozwiązywanie problemów z rozszerzeniem usługi Key Vault

Jeśli rozszerzenie usługi Key Vault jest niepoprawnie skonfigurowane, węzeł obliczeniowy może być w stanie użytecznym. Aby rozwiązać problemy z niepowodzeniem rozszerzenia usługi Key Vault, możesz tymczasowo ustawić wartość requireInitialSync na wartość false i ponownie wdrożyć pulę, a następnie węzeł obliczeniowy jest w stanie bezczynności, możesz zalogować się do węzła obliczeniowego, aby sprawdzić dzienniki rozszerzeń usługi KeyVault pod kątem błędów i rozwiązać problemy z konfiguracją. Aby uzyskać więcej informacji, zapoznaj się z następującym linkiem do dokumentu rozszerzenia usługi Key Vault.

Następne kroki