Freigeben über


Aktivieren der automatischen Zertifikatrotation in einem Batch-Pool

Sie können einen Batch-Pool mit einem Zertifikat erstellen, das automatisch erneuert werden kann. Zu diesem Zweck muss der Pool mit einer benutzerseitig zugewiesenen verwalteten Identität erstellt werden, die in Azure Key Vault Zugriff auf das Zertifikat hat.

Erstellen einer benutzerseitig zugewiesenen Identität

Erstellen Sie zunächst Ihre benutzerseitig zugewiesene verwaltete Identität im selben Mandanten wie Ihr Azure Batch-Konto. Diese verwaltete Identität muss sich nicht in der gleichen Ressourcengruppe oder sogar im gleichen Abonnement befinden.

Notieren Sie sich auf jeden Fall die Client-ID der benutzerseitig zugewiesenen verwalteten Identität. Sie benötigen diesen Wert später noch.

Screenshot der Client-ID einer benutzerseitig zugewiesenen verwalteten Identität im Azure-Portal

Erstellen eines Zertifikats

Als Nächstes müssen Sie ein Zertifikat erstellen und es Azure Key Vault hinzufügen. Wenn Sie noch keinen Schlüsseltresor erstellt haben, müssen Sie dies zunächst tun. Anweisungen finden Sie unter Schnellstart: Festlegen und Abrufen eines Zertifikats aus Azure Key Vault über das Azure-Portal.

Wenn Sie Ihr Zertifikat erstellen, stellen Sie sicher, dass Sie den Aktionstyp „Lebensdauer“ auf „Automatisch verlängern“ festlegen, und geben Sie die Anzahl von Tagen an, nach der das Zertifikat verlängert werden soll.

Screenshot des Zertifikaterstellungsbildschirms im Azure-Portal

Notieren Sie sich nach dem Erstellen des Zertifikats den geheimen Bezeichner. Sie benötigen diesen Wert später noch.

Screenshot des geheimen Bezeichner eines Zertifikats

Hinzufügen einer Zugriffsrichtlinie in Azure Key Vault

Weisen Sie in Ihrem Schlüsseltresor eine Key Vault-Zugriffsrichtlinie zu, mit der die benutzerseitig zugewiesene verwaltete Identität auf Geheimnisse und Zertifikate zugreifen kann. Detaillierte Anweisungen finden Sie unter Zuweisen einer Key Vault-Zugriffsrichtlinie über das Azure-Portal.

Erstellen eines Batch-Pools mit benutzerseitig zugewiesenen verwalteten Identitäten

Erstellen Sie einen Batch-Pool mit Ihrer verwalteten Identität, indem Sie die Batch-Verwaltungsbibliothek von .NET verwenden. Weitere Informationen finden Sie unter Konfigurieren verwalteter Identitäten in Azure Batch-Pools.

Tipp

Vorhandene Pools können nicht mit der Key Vault-VM-Erweiterung aktualisiert werden. Sie müssen Ihren Pool neu erstellen.

Im folgenden Beispiel wird die Batch Management-Rest-API verwendet, um einen Pool zu erstellen. Stellen Sie sicher, dass Sie den geheimen Bezeichner für observedCertificates und die Client-ID der verwalteten Identität für msiClientId verwenden und die folgenden Beispieldaten ersetzen.

REST-API-URI

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

Anforderungstext für Linux-Knoten

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

Anforderungstext für Windows-Knoten

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

Überprüfen des Zertifikats

Melden Sie sich beim Serverknoten an, um sich zu vergewissern, dass das Zertifikat erfolgreich bereitgestellt wurde. Die Ausgabe sollte etwa folgendermaßen aussehen:

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#

Problembehandlung der Key Vault-Erweiterung

Auch wenn die Key Vault-Erweiterung falsch konfiguriert wurde, ist der Serverknoten möglicherweise verwendbar. Um Fehler bei der Key Vault-Erweiterung zu beheben, können Sie requireInitialSync vorübergehend auf „false“ festlegen und den Pool erneut bereitstellen. Anschließend befindet sich der Serverknoten im Leerlaufzustand. Sie können sich beim Serverknoten anmelden, um die Protokolle der KeyVault-Erweiterung auf Fehler zu überprüfen und Konfigurationsprobleme zu beheben. Weitere Informationen finden Sie unter dem Dokumentationslink zur Key Vault-Erweiterung.

Nächste Schritte