Konfigurieren von kundenseitig verwalteten Schlüsseln für Ihr Azure Batch-Konto mit Azure Key Vault und Verwaltete Identität
Standardmäßig werden von Azure Batch plattformseitig verwaltete Schlüssel verwendet, um alle im Azure Batch-Dienst gespeicherten Kundendaten zu verschlüsseln, wie z. B. Zertifikate, Auftrags-/Taskmetadaten. Optional können Sie eigene Schlüssel (d. h. kundenseitig verwaltete Schlüssel) verwenden, um die in Azure Batch gespeicherten Daten zu verschlüsseln.
Die von Ihnen angegebenen Schlüssel müssen in Azure Key Vault generiert werden, und der Zugriff darauf muss mit verwalteten Identitäten für Azure-Ressourcen erfolgen.
Es gibt zwei Arten von verwalteten Identitäten: systemseitig und benutzerseitig zugewiesene Identitäten.
Sie können Ihr Batch-Konto mit einer systemseitig zugewiesenen verwalteten Identität erstellen oder eine separate benutzerseitig zugewiesene verwaltete Identität erstellen, für die Zugriff auf die kundenseitig verwalteten Schlüssel besteht. Sehen Sie sich die Vergleichstabelle an, um sich mit den Unterschieden vertraut zu machen und zu ermitteln, welche Option für Ihre Lösung am besten geeignet ist. Wenn Sie beispielsweise dieselbe verwaltete Identität nutzen möchten, um auf mehrere Azure-Ressourcen zuzugreifen, benötigen Sie eine benutzerseitig zugewiesene verwaltete Identität. Andernfalls reicht ggf. eine systemseitig zugewiesene verwaltete Identität aus, die Ihrem Batch-Konto zugeordnet ist. Bei Verwendung einer benutzerseitig zugewiesenen verwalteten Identität haben Sie auch die Möglichkeit, bei der Erstellung des Batch-Kontos kundenseitig verwaltete Schlüssel zu erzwingen, wie nachfolgend veranschaulicht.
Erstellen eines Batch-Kontos mit systemseitig zugewiesener verwalteter Identität
Falls Sie keine separate benutzerseitig zugewiesene verwaltete Identität benötigen, können Sie beim Erstellen Ihres Batch-Kontos eine systemseitig zugewiesene verwaltete Identität aktivieren.
Wichtig
Eine vom System zugewiesene verwaltete Identität, die wie hier beschrieben für ein Batch-Konto zur Verschlüsselung von Kundendaten erstellt wurde, kann nicht als benutzerseitig zugewiesene verwaltete Identität in einem Batch-Pool verwendet werden. Wenn Sie dieselbe verwaltete Identität sowohl für das Batch-Konto als auch für den Batch-Pool verwenden möchten, verwenden Sie stattdessen eine gemeinsame benutzerseitig zugewiesene verwaltete Identität.
Azure-Portal
Wählen Sie im Azure-Portal beim Erstellen von Batch-Konten auf der Registerkarte Erweitert als Identitätstyp Systemseitig zugewiesen aus.
Nachdem das Konto erstellt wurde, ist im Abschnitt Eigenschaften im Feld Identitätsprinzipal-ID eine eindeutige GUID enthalten. Als Identitätstyp wird System assigned
angezeigt.
Sie benötigen diesen Wert, um für dieses Batch-Konto Zugriff auf die Key Vault-Instanz zu gewähren.
Azure CLI
Wenn Sie ein neues Batch-Konto erstellen, geben Sie SystemAssigned
für den --identity
-Parameter an.
resourceGroupName='myResourceGroup'
accountName='mybatchaccount'
az batch account create \
--name $accountName \
--resource-group $resourceGroupName \
--locations regionName='West US 2' \
--identity 'SystemAssigned'
Nach dem Erstellen des Kontos können Sie überprüfen, ob die vom System zugewiesene verwaltete Identität für dieses Konto aktiviert wurde. Notieren Sie sich den Wert für PrincipalId
, da Sie ihn benötigen, um dem Batch-Konto Zugriff auf die Key Vault-Instanz zu gewähren.
az batch account show \
--name $accountName \
--resource-group $resourceGroupName \
--query identity
Hinweis
Die vom System zugewiesene verwaltete Identität, die in einem Batch-Konto erstellt wurde, wird nur zum Abrufen von kundenseitig verwalteten Schlüsseln aus dem Key Vault verwendet. Diese Identität ist für Batch-Pools nicht verfügbar. Um eine benutzerseitig zugeordnete verwaltete Identität in einem Pool zu verwenden, lesen Sie Konfigurieren verwalteter Identitäten in Azure Batch-Pools.
Erstellen einer benutzerseitig zugewiesenen verwalteten Identität
Bei Bedarf können Sie auch eine benutzerseitig zugewiesene verwaltete Identität erstellen, die für den Zugriff auf Ihre kundenseitig verwalteten Schlüssel verwendet werden kann.
Sie benötigen den Wert unter Client-ID für diese Identität, um dafür den Zugriff auf die Key Vault-Instanz zu ermöglichen.
Konfigurieren Ihrer Azure Key Vault-Instanz
Die Azure Key Vault-Instanz, auf der Ihre Schlüssel generiert werden, muss auf demselben Mandanten wie Ihr Batch-Konto erstellt werden. Hierfür ist es nicht erforderlich, dass sie sich in derselben Ressourcengruppe oder unter demselben Abonnement befindet.
Erstellen einer Azure Key Vault-Instanz
Stellen Sie beim Erstellen einer Azure Key Vault-Instanz mit kundenseitig verwalteten Schlüsseln für Azure Batch sicher, dass die Optionen Vorläufiges Löschen und Löschschutz aktiviert sind.
Hinzufügen einer Zugriffsrichtlinie zu Ihrer Azure Key Vault-Instanz
Fügen Sie im Azure-Portal nach der Erstellung der Key Vault-Instanz in Zugriffsrichtlinie unter Einstellung den Zugriff auf das Batch-Konto mithilfe der verwalteten Identität hinzu. Wählen Sie unter Schlüsselberechtigungen die Berechtigungen Abrufen, Schlüssel packen und Schlüssel entpacken aus.
Machen Sie im Feld Auswählen unter Prinzipal eine der folgenden Angaben:
- Für systemseitig zugewiesene verwaltete Identität: Geben Sie die zuvor abgerufene
principalId
oder den Namen des Batch-Kontos ein. - Für benutzerseitig zugewiesene verwaltete Identität: Geben Sie die Client-ID, die Sie zuvor abgerufen haben, oder den Namen der benutzerseitig zugewiesenen verwalteten Identität ein.
Generieren eines Schlüssels in Azure Key Vault
Wechseln Sie im Azure-Portal zur Key Vault-Instanz im Abschnitt Schlüssel, und wählen Sie Generieren/importieren aus. Wählen Sie für den Schlüsseltyp die Option RSA
und für die RSA-Schlüsselgröße mindestens 2048
aus. EC
-Schlüsseltypen werden derzeit als kundenseitig verwalteter Schlüssel in einem Batch-Konto nicht unterstützt.
Klicken Sie nach dem Erstellen des Schlüssels auf den neu erstellten Schlüssel und die aktuelle Version, und kopieren Sie den Schlüsselbezeichner im Abschnitt Eigenschaften. Vergewissern Sie sich, dass unter Zulässige Vorgänge die Optionen Schlüssel packen und Schlüssel entpacken aktiviert sind.
Aktivieren von kundenseitig verwalteten Schlüsseln für ein Batch-Konto
Nachdem die Voraussetzungen erfü+llt sind, können Sie kundenseitig verwaltete Schlüssel für Ihr Batch-Konto aktivieren.
Azure-Portal
Navigieren Sie im Azure-Portal zur Batch-Konto-Seite. Aktivieren Sie im Abschnitt Verschlüsselung die Option Kundenseitig verwalteter Schlüssel. Sie können den Schlüsselbezeichner direkt verwenden, oder sie können den Schlüsseltresor auswählen und dann auf Schlüsseltresor und Schlüssel auswählen klicken.
Azure CLI
Nachdem das Batch-Konto mit der vom System zugewiesenen verwalteten Identität erstellt wurde und der Zugriff auf Key Vault erteilt wurde, aktualisieren Sie das Batch-Konto mit der URL {Key Identifier}
unter dem keyVaultProperties
-Parameter. Legen Sie außerdem --encryption-key-source
auf Microsoft.KeyVault
fest.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-source Microsoft.KeyVault \
--encryption-key-identifier {YourKeyIdentifier}
Erstellen eines Batch-Kontos mit benutzerseitig zugewiesener verwalteter Identität und kundenseitig verwalteten Schlüsseln
Mit dem .NET-Client für die Batchverwaltung können Sie ein Batch-Konto erstellen, das über eine benutzerseitig zugewiesene verwaltete Identität und kundenseitig verwaltete Schlüssel verfügt.
string subscriptionId = "Your SubscriptionID";
string resourceGroupName = "Your ResourceGroup name";
var credential = new DefaultAzureCredential();
ArmClient _armClient = new ArmClient(credential);
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = _armClient.GetResourceGroupResource(resourceGroupResourceId);
var data = new BatchAccountCreateOrUpdateContent(AzureLocation.EastUS)
{
Encryption = new BatchAccountEncryptionConfiguration()
{
KeySource = BatchAccountKeySource.MicrosoftKeyVault,
KeyIdentifier = new Uri("Your Key Azure Resource Manager Resource ID"),
},
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
{
UserAssignedIdentities = {
[new ResourceIdentifier("Your Identity Azure Resource Manager ResourceId")] = new UserAssignedIdentity(),
},
}
};
var lro = resourceGroupResource.GetBatchAccounts().CreateOrUpdate(WaitUntil.Completed, "Your BatchAccount name", data);
BatchAccountResource batchAccount = lro.Value;
Aktualisieren der Version des kundenseitig verwalteten Schlüssels
Wenn Sie eine neue Version eines Schlüssels erstellen, aktualisieren Sie das Batch-Konto, damit dieses die neue Version nutzt. Folgen Sie diesen Schritten:
- Navigieren Sie im Azure-Portal zu Ihrem Batch-Konto, und zeigen Sie die Einstellungen für „Verschlüsselung“ an.
- Geben Sie den URI für die neue Schlüsselversion ein. Alternativ können Sie die Key Vault-Instanz und den Schlüssel erneut auswählen, um die Version zu aktualisieren.
- Speichern Sie die Änderungen.
Sie können die Version auch über die Azure CLI aktualisieren.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-identifier {YourKeyIdentifierWithNewVersion}
Tipp
Sie können Ihre Schlüssel automatisch rotieren lassen, indem Sie eine Schlüsselrotationsrichtlinie innerhalb von Key Vault erstellen. Wenn Sie einen Schlüsselbezeichner für das Batch-Konto angeben, verwenden Sie den versionslosen Schlüsselbezeichner, um die automatische Rotation mit einer gültigen Rotationsrichtlinie zu aktivieren. Weitere Informationen finden Sie unter Konfigurieren der Schlüsselrotation in Key Vault.
Verwenden eines anderen Schlüssels für die Batch Verschlüsselung
Gehen Sie wie folgt vor, um den für die Batch-Verschlüsselung verwendeten Schlüssel zu ändern:
- Navigieren Sie zu Ihrem Batch-Konto, und zeigen Sie die Einstellungen für „Verschlüsselung“ an.
- Geben Sie den URI für den neuen Schlüssel ein. Alternativ können Sie die Key Vault-Instanz und einen neuen Schlüssel auswählen.
- Speichern Sie die Änderungen.
Sie können auch mithilfe der Azure CLI einen anderen Schlüssel verwenden.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-identifier {YourNewKeyIdentifier}
Häufig gestellte Fragen
- Werden kundenseitig verwaltete Schlüssel für vorhandene Batch-Konten unterstützt? Nein. Kundenseitig verwaltete Schlüssel werden nur für neue Batch-Konten unterstützt.
- Kann ich RSA-Schlüsselgrößen über 2048 Bits auswählen? Ja, die RSA-Schlüsselgrößen
3072
und4096
werden ebenfalls unterstützt. - Welche Vorgänge sind nach dem Sperren/Widerrufen eines vom Kunden verwalteten Schlüssels verfügbar? Wenn Batch den Zugriff auf den kundenseitig verwalteten Schlüssel verliert, ist der einzige zulässige Vorgang das Löschen des Kontos.
- Wie kann ich den Zugriff auf mein Batch-Konto wiederherstellen, wenn ich den Key Vault-Schlüssel versehentlich lösche? Da Löschschutz und vorläufiges Löschen aktiviert sind, können Sie die vorhandenen Schlüssel wiederherstellen. Weitere Informationen finden Sie unter Wiederherstellen einer Azure Key Vault-Instanz.
- Kann ich kundenseitig verwaltete Schlüssel deaktivieren? Sie können jederzeit den Verschlüsselungstyp des Batch-Kontos auf „Von Microsoft verwalteter Schlüssel“ zurücksetzen. Sie können den Schlüssel anschließend löschen oder ändern.
- Wie kann ich meine Schlüssel rotieren? Kundenseitig verwaltete Schlüssel werden nicht automatisch rotiert, es sei denn, der Schlüssel ist versionslos, und es wurde eine entsprechende Schlüsselrotationsrichtlinie innerhalb von Key Vault festgelegt. Zum manuellen Rotieren des Schlüssels müssen Sie den Schlüsselbezeichner aktualisieren, dem das Konto zugeordnet ist.
- Wie lange dauert es nach dem Wiederherstellen des Zugriffs, bis das Batch-Konto wieder funktioniert? Nach dem Wiederherstellen des Zugriffs kann es bis zu 10 Minuten dauern, bis das Konto wieder zugänglich ist.
- Was geschieht mit meinen Ressourcen, während das Batch-Konto nicht verfügbar ist? Alle Pools, die ausgeführt werden, wenn der Batch-Zugriff auf den kundenseitig verwalteten Schlüssel verloren geht, werden weiterhin ausgeführt. Die Knoten in diesen Pools werden jedoch in den Zustand „Nicht verfügbar“ versetzt, und die Ausführung von Tasks wird beendet (und sie werden erneut in die Warteschlange gestellt). Sobald der Zugriff wieder hergestellt wurde, werden die Knoten wieder verfügbar, und die Tasks werden neu gestartet.
- Gilt dieser Verschlüsselungsmechanismus für VM-Datenträger in einem Batch-Pool? Nein. Bei mit der Cloud Services-Konfiguration erstellten Pools (als veraltet markiert) wird keine Verschlüsselung auf das Betriebssystem und den temporären Datenträger angewendet. Bei mit der VM-Konfiguration erstellten Pools werden das Betriebssystem und die angegebenen Datenträger standardmäßig mit einem von der Microsoft-Plattform verwalteten Schlüssel verschlüsselt. Derzeit können Sie keinen eigenen Schlüssel für diese Datenträger angeben. Um den temporären Datenträger von VMs für einen Batch-Pool mit einem von der Microsoft-Plattform verwalteten Schlüssel zu verschlüsseln, müssen Sie die Eigenschaft diskEncryptionConfiguration im Pool der Konfiguration der virtuellen Maschine aktivieren. Für höchst vertrauliche Daten empfehlen wir, die Verschlüsselung temporärer Datenträger zu aktivieren und das Speichern von vertraulichen Daten auf Betriebssystemdatenträgern und Datenträgern für Daten zu vermeiden. Weitere Informationen finden Sie unter Erstellen eines Pools mit aktivierter Datenträgerverschlüsselung.
- Ist die vom System zugewiesene verwaltete Identität für das Batch-Konto auf den Computeknoten verfügbar? Nein. Die systemseitig zugewiesene verwaltete Identität wird derzeit nur für den Zugriff auf Azure Key Vault für den kundenseitig verwalteten Schlüssel verwendet. Um eine benutzerseitig zugeordnete verwaltete Identität auf Computeknoten zu verwenden, lesen Sie Konfigurieren verwalteter Identitäten in Azure Batch-Pools.
Nächste Schritte
- Informieren Sie sich über die bewährten Methoden in Bezug auf die Sicherheit in Azure Batch.
- Weitere Informationen zu Azure Key Vault