Freigeben über


Identitäts- und Schlüsselverwaltung für TDE mit kundenseitig verwalteten Schlüsseln auf Datenbankebene

Gilt für:Azure SQL-Datenbank

Hinweis

  • TDE CMK auf Datenbankebene ist für Azure SQL-Datenbank (alle SQL-Datenbank-Editionen) verfügbar. Es ist nicht für Azure SQL Managed Instance, lokal installierten SQL Server, Azure VMs und Azure Synapse Analytics (dedizierte SQL-Pools (ehemals SQL DW)) verfügbar.
  • Derselbe Leitfaden kann angewendet werden, um kundenseitig verwaltete Schlüssel auf Datenbankebene im gleichen Mandanten zu konfigurieren, indem der Verbundclient-ID-Parameter ausgeschlossen wird. Weitere Informationen zu kundenseitig verwalteten Schlüsseln auf Datenbankebene finden Sie unter Transparente Datenverschlüsselung (TDE) mit kundenseitig verwalteten Schlüsseln auf Datenbankebene.

In diesem Leitfaden werden die Schritte zum Erstellen, Aktualisieren und Abrufen einer Azure SQL-Datenbank-Instanz mit transparenter Datenverschlüsselung (Transparent Data Encryption, TDE) und kundenseitig verwalteten Schlüsseln (CMK) auf Datenbankebene unter Verwendung einer benutzerseitig zugewiesenen verwalteten Identität für den Zugriff auf Azure Key Vault beschrieben. Der Azure Key Vault befindet sich in einem anderen Microsoft Entra-Mandanten als der Azure SQL-Datenbank. Weitere Informationen finden Sie unter Mandantenübergreifende kundenseitig verwaltete Schlüssel mit Transparent Data Encryption.

Hinweis

Microsoft Entra ID war zuvor als Azure Active Directory (Azure AD) bekannt.

Voraussetzungen

Erforderliche Ressourcen im ersten Mandanten

In diesem Tutorial wird davon ausgegangen, dass der erste Mandant einem unabhängigen Softwareanbieter (Independent Software Vendor, ISV) und der zweite Mandant der Kundschaft gehört. Weitere Informationen zu diesem Szenario finden Sie unter Mandantenübergreifende kundenseitig verwaltete Schlüssel mit Transparent Data Encryption.

Damit Sie TDE für Azure SQL-Datenbank mit einem mandantenübergreifenden CMK konfigurieren können, benötigen Sie eine Microsoft Entra-Anwendung mit mehreren Mandanten, die mit einer benutzerseitig zugewiesenen verwalteten Identität mit Anmeldeinformationen für eine Verbundidentität für die Anwendung konfiguriert ist. Befolgen Sie dazu einen der Leitfäden unter „Voraussetzungen“.

  1. Erstellen und konfigurieren Sie im ersten Mandanten, in dem Sie die Azure SQL-Datenbank-Instanz erstellen möchten, eine mehrinstanzenfähige Microsoft Entra-Anwendung.

  2. Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität.

  3. Konfigurieren Sie die vom Benutzer zugewiesene verwaltete Identität als Verbundidentitätsnachweis für die mehrmandantenfähige Anwendung.

  4. Notieren Sie sich den Namen und die ID der Anwendung. Sie finden beides, indem Sie unter Azure-Portal>Microsoft Entra ID>Unternehmensanwendungen nach der erstellten Anwendung suchen.

Erforderliche Ressourcen im zweiten Mandanten

Hinweis

Azure AD- und MSOnline PowerShell-Module sind ab dem 30. März 2024 veraltet. Weitere Informationen finden Sie im Update zur Einstellung. Nach diesem Datum wird die Unterstützung für diese Module auf die Migrationsunterstützung für das Microsoft Graph PowerShell-SDK und Sicherheitskorrekturen beschränkt. Die veralteten Module funktionieren weiterhin bis zum 30. März 2025.

Es wird empfohlen, für die Interaktion mit Microsoft Entra ID (früher Azure AD) zu Microsoft Graph PowerShell zu migrieren. Informationen zu allgemeinen Migrationsfragen finden Sie in den häufig gestellten Fragen zur Migration. Hinweis: Bei der Version 1.0.x von MSOnline können nach dem 30. Juni 2024 Unterbrechungen auftreten.

  1. Erstellen Sie im zweiten Mandanten, in dem sich die Azure Key Vault-Instanz befindet, einen Dienstprinzipal (Anwendung) mithilfe der Anwendungs-ID der registrierten Anwendung im ersten Mandanten. Hier sind einige Beispiele für die Registrierung der Mehrinstanzenanwendung. Ersetzen Sie <TenantID> und <ApplicationID> durch die Kundenmandanten-ID aus Microsoft Entra ID bzw. der Anwendungs-ID der mehrinstanzenfähigen Anwendung:

    • PowerShell:

      Connect-Entra -TenantID <TenantID>
      New-EntraServicePrincipal  -AppId <ApplicationID>
      
    • Die Azure CLI:

      az login --tenant <TenantID>
      az ad sp create --id <ApplicationID>
      
  2. Navigieren Sie zu Azure-Portal>Microsoft Entra ID>Unternehmensanwendungen, und suchen Sie nach der erstellten Anwendung.

  3. Erstellen Sie bei Bedarf eine Azure Key Vault-Instanz und einen Schlüssel.

  4. Erstellen Sie die Zugriffsrichtlinie, oder legen Sie sie fest.

    1. Wählen Sie beim Erstellen der Zugriffsrichtlinie unter Schlüsselberechtigungen die Berechtigungen „Abrufen“, „Schlüssel packen“ und „Schlüssel entpacken“ aus.
    2. Wählen Sie die mehrfachinstanzenfähige Anwendung aus, die im ersten Schritt in der Option "Prinzipal " beim Erstellen der Zugriffsrichtlinie erstellt wurde.

    Screenshot des Zugriffsrichtlinienmenüs von Azure Key Vault im Azure-Portal.

  5. Nachdem die Zugriffsrichtlinie und der Schlüssel erstellt wurden, rufen Sie den Schlüssel aus Azure Key Vault ab, und notieren Sie den Schlüsselbezeichner.

Erstellen einer Azure SQL-Datenbank-Instanz mit kundenseitig verwalteten Schlüsseln auf Datenbankebene

Im Folgenden finden Sie Beispiele zum Erstellen einer Datenbank in Azure SQL-Datenbank mit einer benutzerseitig zugewiesenen verwalteten Identität und zum Festlegen eines mandantenübergreifenden kundenseitig verwalteten Schlüssels auf Datenbankebene. Die benutzerseitig zugewiesene verwaltete Identität ist für das Einrichten eines kundenseitig verwalteten Schlüssels für TDE (Transparent Data Encryption) während der Datenbankerstellung erforderlich.

  1. Wechseln Sie zum Azure SQL-Hub bei aka.ms/azuresqlhub.

  2. Wählen Sie im Bereich für azure SQL-Datenbankdie Option "Optionen anzeigen" aus.

  3. Wählen Sie im Fenster "Azure SQL-Datenbankoptionen " die Option "SQL-Datenbank erstellen" aus.

    Screenshot des Azure-Portals mit dem Azure SQL-Hub, der Schaltfläche

  4. Wählen Sie auf der Registerkarte Grundeinstellungen des Formulars SQL-Datenbank erstellen unter Projektdetails das gewünschte Abonnement für Azure, die Ressourcengruppe und den Server für Ihre Datenbank aus. Verwenden Sie dann einen eindeutigen Namen für den Datenbanknamen. Wenn Sie keinen logischen Server für Azure SQL-Datenbank erstellt haben, finden Sie weitere Informationen unter Erstellen eines Servers, der mit TDE mit mandantenübergreifenden kundenseitig verwalteten CMKs konfiguriert ist.

  5. Wenn Sie zur Registerkarte " Sicherheit " gelangen, wählen Sie "Transparente Datenverschlüsselung für den Schlüssel auf Datenbankebene konfigurieren" aus.

    Screenshot: Azure-Portal und Menü „Sicherheit“ beim Erstellen einer Azure SQL-Datenbank.

  6. Wählen Sie im Menü Transparente Datenverschlüsselung die Option kundenseitig verwalteter Schlüssel auf Datenbankebene (CMK) aus.

    Screenshot: Menü „Transparente Datenverschlüsselung“ im Azure-Portal.

  7. Wählen Sie für die benutzerseitig zugewiesene verwaltete Identität die Option Konfigurieren, um eine Datenbankidentität zu aktivieren, und fügen Sie der Ressource eine benutzerseitig zugewiesene verwaltete Identität hinzu, wenn die gewünschte Identität nicht im Menü Identität aufgeführt ist. Wählen Sie anschließend Anwenden.

    Screenshot: Menü „Identität“ im Azure-Portal.

    Hinweis

    Sie können die Verbundclientidentität hier konfigurieren, wenn Sie CMK für TDE konfigurieren.

  8. Wählen Sie im Menü Transparente Datenverschlüsselung die Option Schlüssel ändern aus. Wählen Sie das gewünschte Abonnement, Schlüsseltresor, Schlüssel und Version für den kundenseitig verwalteter Schlüssel aus, der für TDE verwendet werden soll. Wählen Sie die Schaltfläche Auswählen aus. Nachdem Sie einen Schlüssel ausgewählt haben, können Sie bei Bedarf zusätzliche Datenbankschlüssel hinzufügen, indem Sie den Azure Key Vault-URI (Objektbezeichner) im Menü Transparente Datenverschlüsselung verwenden.

    Die automatische Schlüsselrotation kann auch auf Datenbankebene mithilfe des Kontrollkästchens Schlüssel automatisch rotieren im Menü Transparente Datenverschlüsselung aktiviert werden.

    Screenshot: Menü „Transparente Datenverschlüsselung“ im Azure-Portal, das auf das Hinzufügen zusätzlicher Schlüssel verweist.

  9. Wählen Sie Anwenden aus, um mit der Erstellung der Datenbank fortzufahren.

  10. Klicken Sie auf Weiter: Zusätzliche Einstellungen.

  11. Klicken Sie auf Weiter: Tags.

  12. Erwägen Sie die Verwendung von Azure-Tags. Beispielsweise das Tag "Owner" oder "CreatedBy", um zu identifizieren, wer die Ressource erstellt hat, und das Environment-Tag, um zu identifizieren, ob sich diese Ressource in Produktion, Entwicklung usw. befindet. Weitere Informationen finden Sie unter Entwickeln Ihrer Benennungs- und Kategorisierungsstrategie für Azure-Ressourcen.

  13. Klicken Sie auf Überprüfen + erstellen.

  14. Wählen Sie nach Überprüfung auf der Seite Überprüfen + erstellen die Option Erstellenaus.

Hinweis

Die Datenbankerstellung schlägt fehl, wenn die vom Benutzer zugewiesene verwaltete Identität nicht über die richtigen Berechtigungen für den Schlüsseltresor verfügt. Die benutzerseitig zugewiesene verwaltete Identität benötigt die Berechtigungen Get, wrapKey und unwrapKey für den Schlüsseltresor. Weitere Informationen finden Sie unter Verwaltete Identitäten für transparente Datenverschlüsselung mit kundenseitig verwaltetem Schlüssel.

Aktualisieren einer vorhandenen Azure SQL-Datenbank-Instanz mit kundenseitig verwalteten Schlüsseln auf Datenbankebene

Im Folgenden finden Sie Beispiele zum Aktualisieren einer vorhandenen Datenbank in Azure SQL-Datenbank mit einer benutzerseitig zugewiesenen verwalteten Identität und zum Festlegen eines mandantenübergreifenden kundenseitig verwalteten Schlüssels auf Datenbankebene. Die benutzerseitig zugewiesene verwaltete Identität ist für das Einrichten eines kundenseitig verwalteten Schlüssels für TDE (Transparent Data Encryption) während der Datenbankerstellung erforderlich.

  1. Navigieren Sie im Azure-Portal zu der SQL-Datenbankressource, die Sie mit einem kundenseitig verwalteten Schlüssel auf Datenbankebene aktualisieren möchten.

  2. Wählen Sie unter Sicherheit die Option Identität aus. Fügen Sie eine vom Benutzer zugewiesene verwaltete Identität für diese Datenbank hinzu, und wählen Sie dann Speichern aus.

  3. Wechseln Sie nun zum Menü Datenverschlüsselung unter Sicherheit für Ihre Datenbank. Wählen Sie kundenseitig verwalteter Schlüssel auf Datenbankebene (CMK) aus. Die Datenbankidentität für die Datenbank sollte bereits aktiviert sein, da Sie die Identität im letzten Schritt konfiguriert haben.

  4. Wählen Sie die Schlüssel ändern. Wählen Sie das gewünschte Abonnement, Schlüsseltresor, Schlüssel und Version für den kundenseitig verwalteter Schlüssel aus, der für TDE verwendet werden soll. Wählen Sie die Schaltfläche Auswählen aus. Nachdem Sie einen Schlüssel ausgewählt haben, können Sie bei Bedarf zusätzliche Datenbankschlüssel hinzufügen, indem Sie den Azure Key Vault-URI (Objektbezeichner) im Menü Datenverschlüsselung verwenden.

    Aktivieren Sie das Kontrollkästchen Schlüssel automatisch rotieren, wenn Sie die automatische Schlüsselrotation auf Datenbankebene aktivieren möchten.

    Screenshot: Menü „Transparente Datenverschlüsselung“ im Azure-Portal beim Aktualisieren einer vorhandenen Datenbank.

  5. Wählen Sie Speichern aus.

Anzeigen der kundenseitig verwalteten Schlüsseleinstellungen auf Datenbankebene in einer Azure SQL-Datenbank-Instanz

Im Folgenden werden Beispiele für das Abrufen von kundenseitig verwalteten Schlüssel auf Datenbankebene für eine Datenbank aufgeführt. Die ARM-Ressource Microsoft.Sql/servers/databases zeigt standardmäßig nur den TDE-Schutz und die verwaltete Identität an, die für die Datenbank konfiguriert sind. Um die Liste der Schlüssel vollständig zu erweitern, verwenden Sie den Parameter -ExpandKeyList. Darüber hinaus können Filter wie -KeysFilter "current" und ein Zeitpunktwert (z. B. 2023-01-01) verwendet werden, um die aktuellen und in der Vergangenheit zu einem bestimmten Zeitpunkt verwendeten Schlüssel abzurufen. Diese Filter werden nur für einzelne Datenbankabfragen und nicht für Abfragen auf Serverebene unterstützt.

Um die kundenseitig verwalteten Schlüssel auf Datenbankebene im Azure-Portal anzuzeigen, wechseln Sie zum Menü Datenverschlüsselung der SQL-Datenbankressource.

Auflisten aller Schlüssel auf einem logischen Server

Um die Liste aller Schlüssel (und nicht nur den primären Schutz) abzurufen, die von jeder Datenbank auf dem Server verwendet werden, muss die Abfrage einzeln mit den Schlüsselfiltern erfolgen. Das folgende Beispiel zeigt eine PowerShell-Abfrage zum Auflisten der einzelnen Schlüssel auf dem logischen Server.

Verwenden Sie das Cmdlet Get-AzSqlDatabase.

$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}

Erneutes Überprüfen der kundenseitig verwalteten Schlüsseleinstellungen auf Datenbankebene in einer Azure SQL-Datenbank-Instanz

Falls eine TDE-Schutzkomponente nicht zugänglich ist, wie in Azure SQL transparente Datenverschlüsselung mit kundengesteuertem Schlüssel beschrieben, kann nach Korrektur des Schlüsselzugriffs ein Vorgang zur Schlüsselüberprüfung verwendet werden, um die Datenbank zugänglich zu machen. Beispiele finden Sie in den folgenden Anweisungen oder Befehlen.

Suchen Sie mit dem Azure-Portal nach Ihrer SQL-Datenbankressource. Nachdem Sie Ihre SQL-Datenbankressource ausgewählt haben, wechseln Sie zur Registerkarte Transparente Datenverschlüsselung im Menü Datenverschlüsselung unter den Sicherheitseinstellungen. Wenn die Datenbank keinen Zugriff mehr auf Azure Key Vault hat, wird die Schaltfläche Schlüssel erneut überprüfen angezeigt, und Sie haben die Möglichkeit, den vorhandenen Schlüssel erneut zu überprüfen, indem Sie Mit vorhandenem Schlüssel wiederholen auswählen, oder einen anderen Schlüssel auswählen, indem Sie Sicherungsschlüssel auswählen auswählen.

Zurücksetzen der kundenseitig verwalteten Schlüsseleinstellungen auf Datenbankebene in einer Azure SQL-Datenbank-Instanz

Eine Datenbank, die mit CMK auf Datenbankebene konfiguriert ist, kann mit den folgenden Befehlen auf Verschlüsselung auf Serverebene zurückgesetzt werden, wenn der Server mit einem dienstseitig verwalteten Schlüssel konfiguriert ist.

Um die Einstellung für kundenseitig verwaltete Schlüssel auf Datenbankebene auf Verschlüsselungsschlüssel auf Serverebene im Azure-Portal rückgängig zu machen, wechseln Sie zur Registerkarte Transparente Datenverschlüsselung im Menü Datenverschlüsselung der SQL-Datenbankressource. Wählen Sie Verschlüsselungsschlüssel auf Serverebene und dann Speichern aus, um die Einstellungen zu speichern.

Hinweis

Um die Einstellung Verschlüsselungsschlüssel auf Serverebene für einzelne Datenbanken verwenden zu können, muss der logische Server für die Azure SQL-Datenbank für die Verwendung des vom Dienst verwalteten Schlüssels für TDE konfiguriert werden.