Zugriffssteuerung für vertrauliche Daten in Paketen

Gilt für: SQL Server SSIS Integration Runtime in Azure Data Factory

Sie können die Daten in einem Integration Services -Paket schützen, indem Sie eine Schutzebene festlegen, mit der nur vertrauliche Daten oder alle Daten im Paket geschützt werden. Darüber hinaus können Sie diese Daten mit einem Kennwort oder Benutzerschlüssel verschlüsseln oder die Daten von der Datenbank verschlüsseln lassen. Die für ein Paket verwendete Schutzebene ist außerdem nicht unbedingt statisch, sondern ändert sich im Lebenszyklus eines Pakets. Häufig wird eine Schutzebene während der Entwicklung und eine andere Schutzebene beim Bereitstellen des Pakets festgelegt.

Hinweis

Zusätzlich zu den in diesem Thema beschriebenen Schutzebenen können Sie feste Rollen auf Datenbankebene verwenden, um Pakete zu schützen, die auf dem Integration Services -Server gespeichert werden.

Definition vertraulicher Informationen

In einem Integration Services -Paket werden die folgenden Informationen als vertraulichdefiniert:

  • Der Kennwortteil einer Verbindungszeichenfolge. Wenn Sie jedoch eine Option auswählen, mit der alle Daten verschlüsselt werden, wird die gesamte Verbindungszeichenfolge als vertraulich betrachtet.

  • Die vom Task generierten XML-Knoten, die als sensibel markiert sind. Die Markierung der XML-Knoten wird von Integration Services gesteuert und kann von den Benutzern nicht geändert werden.

  • Alle Variablen, die als vertraulich markiert sind. Die Markierung der Variablen wird von Integration Servicesgesteuert.

Ob Integration Services eine Eigenschaft als vertraulich einstuft oder nicht, hängt davon ab, ob der Entwickler der Integration Services -Komponente, etwa ein Verbindungs-Manager oder Task, die Eigenschaft als vertraulich gekennzeichnet hat. Benutzer können Eigenschaften weder der Liste der als vertraulich eingestuften Eigenschaften hinzufügen, noch können sie sie aus dieser Liste entfernen.

Verschlüsselung

Die Verschlüsselung, wie sie von Paketschutzebenen verwendet wird, wird mit der Datenschutz-API (DPAPI) von Microsoft durchgeführt, die Teil der Kryptografie-API (CryptoAPI) ist.

Für die Paketschutzebenen, die Pakete mit Kennwörtern verschlüsseln, müssen Sie ebenfalls ein Kennwort angeben. Wenn Sie die Schutzebene von einer Ebene, die kein Kennwort verwendet, in eine Ebene ändern, die ein Kennwort verwendet, werden Sie zur Angabe eines Kennworts aufgefordert.

Für die Schutzebenen mit Kennwort wird in Integration Services der Dreifach-DES-Verschlüsselungsalgorithmus mit einer Schlüssellänge von 192 Bits verwendet, der in der .NET Framework -Bibliotheksklasse (FCL) verfügbar ist.

Schutzebenen

In der folgenden Tabelle werden die in Integration Services verfügbaren Schutzebenen beschrieben. Die in Klammern stehenden Werte stammen aus der DTSProtectionLevel -Enumeration. Diese Werte werden im Eigenschaftenfenster angezeigt, das Sie zum Konfigurieren der Eigenschaften des Pakets verwenden, wenn Sie in SQL Server Data Tools (SSDT)mit Paketen arbeiten.

Schutzebene BESCHREIBUNG
Vertrauliche Daten nicht speichern (DontSaveSensitive) Unterdrückt die Werte vertraulicher Eigenschaften im Paket, wenn das Paket gespeichert wird. Diese Schutzebene verschlüsselt nicht, sondern verhindert stattdessen, dass als sensibel markierte Eigenschaften mit dem Paket gespeichert werden. Deshalb stehen die sensiblen Daten anderen Benutzern nicht zur Verfügung. Wenn das Paket von einem anderen Benutzer geöffnet wird, werden die sensiblen Daten durch Leerzeichen ersetzt und der Benutzer muss die sensiblen Daten angeben.

Bei der Verwendung mit dem dtutil -Hilfsprogramm (dtutil.exe) entspricht diese Schutzebene dem Wert 0.
Alles mit einem Kennwort verschlüsseln (EncryptAllWithPassword) Verwendet ein Kennwort zum Verschlüsseln des gesamten Pakets. Das Paket wird mit einem Kennwort verschlüsselt, das beim Erstellen oder Exportieren des Pakets vom Benutzer bereitgestellt wird. Um das Paket im SSIS -Designer zu öffnen oder mit dem dtexec -Eingabeaufforderungs-Hilfsprogramm auszuführen, muss der Benutzer das Paketkennwort angeben. Ohne Kennwort kann der Benutzer das Paket weder öffnen noch ausführen.

Bei der Verwendung mit dem dtutil -Hilfsprogramm entspricht diese Schutzebene dem Wert 3.
Alles mit einem Benutzerschlüssel verschlüsseln (EncryptAllWithUserKey) Verwendet einen auf dem aktuellen Benutzerprofil basierenden Schlüssel zum Verschlüsseln des gesamten Pakets. Nur der Benutzer, der das Paket erstellte oder exportierte, kann das Paket im SSIS -Designer öffnen oder mit dem Eingabeaufforderungs-Hilfsprogramm dtexec ausführen.

Bei der Verwendung mit dem dtutil -Hilfsprogramm entspricht diese Schutzebene dem Wert 4.

Hinweis: Für Schutzebenen, für die ein Benutzerschlüssel verwendet wird, werden in Integration Services DPAPI-Standards verwendet. Weitere Informationen zu DPAPI finden Sie in der MSDN Library unter https://msdn.microsoft.com/library.
Vertrauliche Daten mit einem Kennwort verschlüsseln (EncryptSensitiveWithPassword) Verwendet ein Kennwort zum ausschließlichen Verschlüsseln der Werte vertraulicher Eigenschaften im Paket. Für diese Verschlüsselung wird DPAPI verwendet. Die sensiblen Daten werden als Teil des Pakets gespeichert, aber diese Daten werden mit einem Kennwort verschlüsselt, das vom aktuellen Benutzer beim Erstellen oder Exportieren des Pakets bereitgestellt wird. Um das Paket im SSIS -Designer zu öffnen, muss der Benutzer das Paketkennwort angeben. Falls kein Kennwort angegeben wird, wird das Paket ohne die sensiblen Daten geöffnet und der Benutzer muss neue Werte für sensible Daten angeben. Falls der Benutzer versucht, das Paket auszuführen, ohne das Kennwort anzugeben, schlägt die Paketausführung fehl. Weitere Informationen zu Kennwörtern und zur Befehlszeilenausführung finden Sie unter dtexec (Hilfsprogramm).

Bei der Verwendung mit dem dtutil -Hilfsprogramm entspricht diese Schutzebene dem Wert 2.
Vertrauliche Daten mit einem Benutzerschlüssel verschlüsseln (EncryptSensitiveWithUserKey) Verwendet einen auf dem aktuellen Benutzerprofil basierenden Schlüssel zum ausschließlichen Verschlüsseln der Werte vertraulicher Eigenschaften im Paket. Das Paket kann nur von demselben Benutzer, der dasselbe Profil verwendet, geladen werden. Wenn das Paket von einem anderen Benutzer geöffnet wird, werden die sensiblen Daten durch Leerzeichen ersetzt und der aktuelle Benutzer muss neue Werte für die sensiblen Daten angeben. Wenn der Benutzer versucht, das Paket auszuführen, schlägt die Paketausführung fehl. Für diese Verschlüsselung wird DPAPI verwendet.

Bei der Verwendung mit dem dtutil -Hilfsprogramm entspricht diese Schutzebene dem Wert 1.

Hinweis: Für Schutzebenen, für die ein Benutzerschlüssel verwendet wird, werden in Integration Services DPAPI-Standards verwendet. Weitere Informationen zu DPAPI finden Sie in der MSDN Library unter https://msdn.microsoft.com/library.
Serverspeicher für die Verschlüsselung verwenden (ServerStorage) Schützt das gesamte Paket mithilfe von SQL Server -Datenbankrollen. Diese Option wird unterstützt, wenn ein Paket in der msdb-Datenbank von SQL Server gespeichert wird. Der SSISDB-Katalog verwendet zudem die Schutzebene ServerStorage .

Diese Option wird nicht unterstützt, wenn ein Paket von SQL Server Data Tools (SSDT)im Dateisystem gespeichert wird.

Einstellung der Schutzebene und SSISDB-Katalog

Der SSISDB-Katalog verwendet die Schutzebene ServerStorage . Wenn Sie ein Integration Services -Projekt auf dem Integration Services -Server bereitstellen, werden die Paketdaten und sensible Werte automatisch vom Katalog verschlüsselt. Die Daten werden vom Katalog auch automatisch entschlüsselt, wenn Sie sie abrufen.

Wenn Sie das Projekt (ISPAC-Datei) vom Integration Services -Server in das Dateisystem exportieren, ändert das System die Schutzebene automatisch in EncryptSensitiveWithUserKey. Wenn Sie das Projekt mit dem Integration Services-Assistenten zum Importieren von Projekten in SQL Server Data Tools (SSDT)importieren, wird für die ProtectionLevel -Eigenschaft im Fenster Eigenschaften der Wert EncryptSensitiveWithUserKeyangezeigt.

Festlegen der Schutzebene auf Grundlage des Paketlebenszyklus

Die Schutzebene eines SQL Server Integration Services-Pakets wird bei dessen Entwicklung in SQL Server Data Tools (SSDT) festgelegt. Wenn das Paket dann zu einem späteren Zeitpunkt bereitgestellt, von Integration Services in SQL Server Management Studioimportiert oder daraus exportiert wird oder von SQL Server Data Tools (SSDT) nach SQL Server, in den SSIS -Paketspeicher oder in das Dateisystem kopiert wird, können Sie die Paketschutzebene aktualisieren. Wenn Sie z. B. Pakete auf Ihrem Computer mit einer Benutzerschlüssel-Schutzebenenoption erstellen und speichern, möchten Sie eventuell die Schutzebene ändern, wenn Sie das Paket anderen Benutzern übergeben; anderenfalls können diese Benutzer das Paket nicht öffnen.

Normalerweise wird die Schutzebene wie in den folgenden Schritten beschrieben geändert:

  1. Behalten Sie während der Entwicklung den Standardwert für die Schutzebene der Pakete bei ( EncryptSensitiveWithUserKey). Mit dieser Einstellung wird sichergestellt, dass nur der Entwickler vertrauliche Werte im Paket sehen kann. Oder Sie können die Nutzung von EncryptAllWithUserKeyoder DontSaveSensitiveerwägen.

  2. Wenn Sie die Pakete bereitstellen möchten, müssen Sie die Schutzebene so ändern, dass sie nicht von dem Benutzerschlüssel des Entwicklers abhängig ist. Deshalb müssen Sie normalerweise EncryptSensitiveWithPasswordoder EncryptAllWithPasswordauswählen. Verschlüsseln Sie die Pakete, indem Sie ein temporäres sicheres Kennwort zuweisen, das auch dem Betriebsteam in der Produktionsumgebung bekannt ist.

  3. Nach dem Bereitstellen der Pakete in der Produktionsumgebung kann das Betriebsteam die bereitgestellten Pakete erneut verschlüsseln, indem ein neues, nur dem Betriebsteam bekanntes sicheres Kennwort zugewiesen wird. Die bereitgestellten Pakete können auch verschlüsselt werden, indem EncryptSensitiveWithUserKey oder EncryptAllWithUserKeyausgewählt wird und die lokalen Anmeldeinformationen des Kontos verwendet werden, mit dem die Pakete ausgeführt werden.

Festlegen oder Ändern der Schutzebene von Paketen

Wenn der Zugriff auf den Inhalt von Paketen und die darin enthaltenen vertraulichen Werte, z. B. Kennwörter, gesteuert werden soll, legen Sie den Wert der ProtectionLevel -Eigenschaft fest. Zum Erstellen des Projekts müssen die in einem Projekt enthaltenen Pakete die gleiche Schutzebene wie das Projekt aufweisen. Wenn Sie die ProtectionLevel -Eigenschafteneinstellung für das Projekt ändern, müssen Sie die Eigenschafteneinstellung für die Pakete manuell aktualisieren.

Eine Übersicht über die Sicherheitsfeatures in Integration Services finden Sie unter Sicherheitsübersicht (Integration Services).

In den Verfahren in diesem Thema wird die Verwendung des SQL Server Data Tools (SSDT) -Befehlszeilen-Hilfsprogramms oder dtutil-Befehlszeilen-Hilfsprogramms zum Ändern der ProtectionLevel -Eigenschaft fest.

Hinweis

Neben dem Verfahren in diesem Thema gibt es normalerweise die Möglichkeit, die ProtectionLevel -Eigenschaft eines Pakets festzulegen oder zu ändern, wenn Sie das Paket importieren oder exportieren. Sie können die ProtectionLevel -Eigenschaft eines Pakets auch ändern, wenn Sie ein Paket mit dem SQL Server -Import/Export-Assistenten speichern.

So legen Sie die Schutzebene eines Pakets in SQL Server-Datentools fest oder ändern sie

  1. Überprüfen Sie die verfügbaren Werte für die ProtectionLevel-Eigenschaft im Abschnitt Schutzebenen, und bestimmen Sie den richtigen Wert für das Paket.

  2. Öffnen Sie in SQL Server Data Tools (SSDT)das Integration Services -Projekt mit dem Paket.

  3. Öffnen Sie das Paket im SSIS -Designer.

  4. Wenn die Eigenschaften des Pakets nicht im Eigenschaftenfenster angezeigt werden, klicken Sie auf die Entwurfsoberfläche.

  5. Wählen Sie im Eigenschaftenfenster in der Gruppe Sicherheit den richtigen Wert für die ProtectionLevel -Eigenschaft aus.

    Wenn Sie eine Schutzebene auswählen, für die ein Kennwort erforderlich ist, geben Sie das Kennwort als Wert der PackagePassword -Eigenschaft an.

  6. Wählen Sie im Menü Datei die Option Ausgewählte Elemente speichern aus, um das geänderte Paket zu speichern.

So legen Sie die Schutzebene von Paketen an der Eingabeaufforderung fest oder ändern sie

  1. Überprüfen Sie die verfügbaren Werte für die ProtectionLevel-Eigenschaft im Abschnitt Schutzebenen, und bestimmen Sie den richtigen Wert für das Paket.

  2. Überprüfen Sie die Zuordnungen für die Encrypt -Option im Thema dtutil Utility, und bestimmen Sie die richtige ganze Zahl, die als Wert für die ausgewählte ProtectionLevel -Eigenschaft verwendet werden soll.

  3. Öffnen Sie ein Eingabeaufforderungsfenster.

  4. Navigieren Sie an der Eingabeaufforderung zu dem Ordner mit den Paketen, für die Sie die ProtectionLevel -Eigenschaft festlegen möchten.

    In den Syntaxbeispielen im folgenden Schritt wird davon ausgegangen, dass dieser Ordner der aktuelle Ordner ist.

  5. Verwenden Sie zum Festlegen oder Ändern der Schutzebene für die Pakete einen Befehl wie in einem der folgenden Beispiele:

    • Mit dem folgenden Befehl wird die ProtectionLevel -Eigenschaft eines einzelnen Pakets im Dateisystem auf Ebene 2 ("Sensible Daten mit einem Kennwort verschlüsseln") mit dem Kennwort "strongpassword" festgelegt:

      dtutil.exe /file "C:\Package.dtsx" /encrypt file;"C:\Package.dtsx";2;strongpassword

    • Mit dem folgenden Befehl wird die ProtectionLevel -Eigenschaft aller Pakete in einem bestimmten Ordner auf Ebene 2 ("Sensible Daten mit einem Kennwort verschlüsseln") mit dem Kennwort "strongpassword" festgelegt:

      for %f in (*.dtsx) do dtutil.exe /file %f /encrypt file;%f;2;strongpassword

      Wenn Sie einen ähnlichen Befehl in einer Batchdatei verwenden, geben Sie den Dateiplatzhalter "%f" in der Batchdatei als "%%f" ein.

Dialogfeld „Paket- und Projektschutzebene“

Verwenden Sie das Dialogfeld Paketschutzebene , um die Schutzebene eines Pakets zu aktualisieren. Die Schutzebene bestimmt die Methode, das Kennwort oder den Benutzerschlüssel und den Bereich des Paketschutzes. Der Schutz kann alle Daten oder nur vertrauliche Daten einschließen.

Nähere Informationen zu den Anforderungen und Optionen für die Paketsicherheit finden Sie unter Sicherheitsübersicht (Integration Services).

Optionen

Paketschutzebene
Wählen Sie eine Schutzebene aus der Liste aus.

Kennwort
Falls die Schutzebene Sensible Daten mit einem Kennwort verschlüsseln oder Alle Daten mit einem Kennwort verschlüsseln verwendet wird, geben Sie ein Kennwort ein.

Kennwort erneut eingeben
Geben Sie das Kennwort erneut ein.

Dialogfeld „Paketkennwort“

Verwenden Sie das Dialogfeld Paketkennwort , um ein Kennwort für ein verschlüsseltes Paket bereitzustellen. Sie müssen ein Kennwort bereitstellen, wenn das Paket die Schutzebene Sensible Daten mit einem Kennwort verschlüsselnoder Alle Daten mit einem Kennwort verschlüsseln verwendet.

Optionen

Kennwort
Geben Sie das Kennwort ein.

Siehe auch

Integration Services-Pakete (SSIS)
Sicherheitsübersicht (Integration Services)
dtutil (Hilfsprogramm)