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. Sie ist nicht für Azure SQL Managed Instance, lokale SQL Server-Instanzen, Azure-VMs und Azure Synapse Analytics (dedizierte SQL-Pools, früher 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 Microsoft Entra-Anwendung mit mehreren Mandanten.

  2. Erstellen einer benutzerseitig zugewiesenen verwalteten Identität.

  3. Konfigurieren Sie die benutzerseitig zugewiesene verwaltete Identität als Anmeldeinformationen für eine Verbundidentität für die mehrinstanzenfähige Anwendung.

  4. Notieren Sie sich den Namen und die ID der Anwendung. Sie finden beides, indem Sie unter Azure-Portal>Microsoft Entra ID>Enterprise-Anwendungen 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 Unterstützungseinstellung. 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. Im Folgenden finden Sie einige Beispiele für die Registrierung der mehrinstanzenfähigen Anwendung. Ersetzen Sie <TenantID> und <ApplicationID> durch die Kundenmandanten-ID aus Microsoft Entra ID bzw. der Anwendungs-ID der mehrinstanzenfähigen Anwendung:

    • PowerShell:

      Connect-AzureAD -TenantID <TenantID>
      New-AzADServicePrincipal  -ApplicationId <ApplicationID>
      
    • Die Azure CLI:

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

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

  4. Erstellen Sie eine 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 beim Erstellen der Zugriffsrichtlinie unter Prinzipal die mehrinstanzenfähige Anwendung aus, die im ersten Schritt erstellt wurde.

    Screenshot des Menüs „Zugriffsrichtlinien“ eines Schlüsseltresors im Azure-Portal

  5. Nachdem die Zugriffsrichtlinie und der Schlüssel erstellt wurden, rufen Sie den Schlüssel aus Key Vault ab und notieren 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. Navigieren Sie in dem Azure-Portal zur Optionsseite SQL Bereitstellung auswählen.

  2. Wenn Sie nicht schon im Azure-Portal angemeldet sind, melden Sie sich auf Aufforderung an.

  3. Behalten Sie unter SQL-Datenbanken für Einzeldatenbank den festgelegten Wert Ressourcentyp bei, und wählen Sie Erstellen aus.

  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 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 dann Anwenden aus.

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

    Hinweis

    Sie können die Verbundclientidentität hier konfigurieren, wenn Sie einen mandantenübergreifenden 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. Wählen Sie unten auf der Seite die Option Überprüfen + erstellen aus

  11. 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

Im Falle eines nicht zugänglichen TDE-Schutzes, wie in Transparente Datenverschlüsselung (TDE) mit CMK beschrieben, kann nach Korrektur des Schlüsselzugriffs eine erneute Überprüfung verwendet werden, um auf die Datenbank zugreifen zu können. 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.

Nächste Schritte

Lesen Sie die folgende Dokumentation zu verschiedenen CMK-Vorgängen auf Datenbankebene: