Share via


Toegangsbeheer voor gevoelige gegevens in pakketten

van toepassing op:SQL Server SSIS Integration Runtime in Azure Data Factory

Als u de gegevens in een Integration Services-pakket wilt beveiligen, kunt u een beveiligingsniveau instellen waarmee alleen gevoelige gegevens of alle gegevens in het pakket worden beschermd. Bovendien kunt u deze gegevens versleutelen met een wachtwoord of een gebruikerssleutel, of afhankelijk zijn van de database om de gegevens te versleutelen. Het beveiligingsniveau dat u voor een pakket gebruikt, is niet noodzakelijkerwijs statisch, maar verandert gedurende de levenscyclus van het pakket. U stelt vaak één beveiligingsniveau in tijdens de ontwikkeling en een ander niveau zodra u het pakket implementeert.

Opmerking

Naast de beveiligingsniveaus die in dit onderwerp worden beschreven, kunt u vaste rollen op databaseniveau gebruiken om pakketten te beveiligen die zijn opgeslagen op de Integration Services-server.

Definitie van gevoelige informatie

In een Integration Services-pakket wordt de volgende informatie gedefinieerd als gevoelig:

  • Het wachtwoordgedeelte van een verbindingsreeks. Als u echter een optie selecteert waarmee alles wordt versleuteld, wordt de hele verbindingsreeks beschouwd als gevoelig.

  • De door de taak gegenereerde XML-knooppunten die als gevoelig zijn gelabeld. Het taggen van XML-knooppunten wordt beheerd door Integration Services en kan niet worden gewijzigd door gebruikers.

  • Elke variabele die als gevoelig is gemarkeerd. De markering van variabelen wordt beheerd door Integration Services.

Of Integration Services een eigenschapsgevoelig beschouwt, is afhankelijk van of de ontwikkelaar van het Integration Services-onderdeel, zoals een verbindingsbeheerder of -taak, de eigenschap als gevoelig heeft aangewezen. Gebruikers kunnen geen eigenschappen toevoegen aan, noch kunnen ze eigenschappen verwijderen uit de lijst met eigenschappen die als gevoelig worden beschouwd.

Encryptie

Versleuteling, zoals wordt gebruikt door pakketbeveiligingsniveaus, wordt uitgevoerd met behulp van de Microsoft Data Protection API (DPAPI), die deel uitmaakt van de Cryptografie-API (CryptoAPI).

Voor de pakketbeveiligingsniveaus waarmee pakketten worden versleuteld met behulp van wachtwoorden, moet u ook een wachtwoord opgeven. Als u het beveiligingsniveau wijzigt van een niveau dat geen wachtwoord gebruikt voor een wachtwoord dat dat wel doet, wordt u gevraagd om een wachtwoord.

Voor de beveiligingsniveaus die een wachtwoord gebruiken, gebruikt Integration Services ook het AES-coderingsalgoritmen met een sleutellengte van 256 bits, beschikbaar in de .NET Framework Class Library (FCL).

Opmerking

Integration Services 2016 maakt gebruik van triple DES-coderingsalgoritmen met een sleutellengte van 192 bits.

Beveiligingsniveaus

In de volgende tabel worden de beveiligingsniveaus beschreven die Integration Services biedt. De waarden tussen haakjes zijn waarden uit de DTSProtectionLevel opsomming. Deze waarden worden weergegeven in het venster Eigenschappen dat u gebruikt om de eigenschappen van het pakket te configureren wanneer u werkt met pakketten in SQL Server Data Tools (SSDT).

Beveiligingsniveau Beschrijving
Niet opslaan van gevoelig (DontSaveSensitive) Onderdrukt de waarden van gevoelige eigenschappen in het pakket wanneer het pakket wordt opgeslagen. Dit beveiligingsniveau versleutelt niet, maar voorkomt in plaats daarvan dat eigenschappen die als gevoelig zijn gemarkeerd, worden opgeslagen met het pakket, waardoor de gevoelige gegevens niet beschikbaar zijn voor andere gebruikers. Als een andere gebruiker het pakket opent, wordt de gevoelige informatie vervangen door lege waarden en moet de gebruiker de gevoelige informatie opgeven.

Wanneer dit wordt gebruikt met het hulpprogramma dtutil (dtutil.exe), komt dit beveiligingsniveau overeen met de waarde 0.
Alles versleutelen met een wachtwoord (EncryptAllWithPassword) Gebruikt een wachtwoord om het hele pakket te versleutelen. Het pakket wordt versleuteld met behulp van een wachtwoord dat de gebruiker levert wanneer het pakket wordt gemaakt of geëxporteerd. Als u het pakket wilt openen in SSIS Designer of het pakket wilt uitvoeren met behulp van het opdrachtregelprogramma dtexec , moet de gebruiker het pakketwachtwoord opgeven. Zonder het wachtwoord kan de gebruiker het pakket niet openen of uitvoeren.

Bij gebruik met het hulpprogramma dtutil komt dit beveiligingsniveau overeen met de waarde 3.
Alles versleutelen met gebruikerssleutel (EncryptAllWithUserKey) Gebruikt een sleutel die is gebaseerd op het huidige gebruikersprofiel om het hele pakket te versleutelen. Alleen de gebruiker die het pakket heeft gemaakt of geëxporteerd, kan het pakket openen in SSIS Designer of het pakket uitvoeren met behulp van het dtexec-opdrachtpromptprogramma.

Bij gebruik met het hulpprogramma dtutil komt dit beveiligingsniveau overeen met de waarde 4.

Opmerking: Voor beveiligingsniveaus die gebruikmaken van een gebruikerssleutel, maakt Integration Services gebruik van DPAPI-standaarden. Zie de MSDN-bibliotheek op https://msdn.microsoft.com/libraryvoor meer informatie over DPAPI.
Versleutelen gevoelig met wachtwoord (EncryptSensitiveWithPassword) Gebruikt een wachtwoord om alleen de waarden van gevoelige eigenschappen in het pakket te versleutelen. DPAPI wordt gebruikt voor deze versleuteling. Gevoelige gegevens worden opgeslagen als onderdeel van het pakket, maar die gegevens worden versleuteld met behulp van een wachtwoord dat de huidige gebruiker levert wanneer het pakket wordt gemaakt of geëxporteerd. Als u het pakket in SSIS Designer wilt openen, moet de gebruiker het pakketwachtwoord opgeven. Als het wachtwoord niet is opgegeven, wordt het pakket geopend zonder de gevoelige gegevens en moet de huidige gebruiker nieuwe waarden opgeven voor gevoelige gegevens. Als de gebruiker probeert het pakket uit te voeren zonder het wachtwoord op te geven, mislukt de pakketuitvoering. Zie dtexec Utility voor meer informatie over wachtwoorden en de uitvoering van de opdrachtregel.

Bij gebruik met het hulpprogramma dtutil komt dit beveiligingsniveau overeen met de waarde 2.
Versleutelen gevoelig met gebruikerssleutel (EncryptSensitiveWithUserKey) Gebruikt een sleutel die is gebaseerd op het huidige gebruikersprofiel om alleen de waarden van gevoelige eigenschappen in het pakket te versleutelen. Alleen dezelfde gebruiker die hetzelfde profiel gebruikt, kan het pakket laden. Als een andere gebruiker het pakket opent, wordt de gevoelige informatie vervangen door lege waarden en moet de huidige gebruiker nieuwe waarden voor de gevoelige gegevens opgeven. Als de gebruiker het pakket probeert uit te voeren, mislukt de pakketuitvoering. DPAPI wordt gebruikt voor deze versleuteling.

Bij gebruik met het hulpprogramma dtutil komt dit beveiligingsniveau overeen met de waarde 1.

Opmerking: Voor beveiligingsniveaus die gebruikmaken van een gebruikerssleutel, maakt Integration Services gebruik van DPAPI-standaarden. Zie de MSDN-bibliotheek op https://msdn.microsoft.com/libraryvoor meer informatie over DPAPI.
Afhankelijk van serveropslag voor versleuteling (ServerStorage) Beveiligt het hele pakket met behulp van SQL Server-databaserollen. Deze optie wordt ondersteund wanneer een pakket wordt opgeslagen in de MSDB-database van SQL Server. Daarnaast maakt de SSISDB-catalogus gebruik van het beveiligingsniveau ServerStorage

Deze optie wordt niet ondersteund wanneer een pakket wordt opgeslagen in het bestandssysteem vanuit SQL Server Data Tools (SSDT).

Instelling voor beveiligingsniveau en de SSISDB-catalogus

De SSISDB-catalogus maakt gebruik van het beveiligingsniveau ServerStorage . Wanneer u een Integration Services-project implementeert op de Integration Services-server, versleutelt de catalogus automatisch de pakketgegevens en gevoelige waarden. De catalogus ontsleutelt de gegevens ook automatisch wanneer u deze ophaalt.

Als u het project (.ispac-bestand) van de Integration Services-server naar het bestandssysteem exporteert, wordt het beveiligingsniveau automatisch gewijzigd in EncryptSensitiveWithUserKey. Als u het project importeert met behulp van de wizard Project voor integratieservices importeren in SQL Server Data Tools (SSDT), toont de eigenschap ProtectionLevel in het venster Eigenschappen een waarde van EncryptSensitiveWithUserKey.

Instelling voor beveiligingsniveau op basis van de levenscyclus van pakketten

U stelt het beveiligingsniveau van een SQL Server Integration Services-pakket in wanneer u het voor het eerst ontwikkelt in SQL Server Data Tools (SSDT). Wanneer het pakket later wordt geïmplementeerd, geïmporteerd of geëxporteerd uit Integration Services in SQL Server Management Studio of gekopieerd van SQL Server Data Tools (SSDT) naar SQL Server, het SSIS-pakketarchief of het bestandssysteem, kunt u het pakketbeveiligingsniveau bijwerken. Als u bijvoorbeeld pakketten op uw computer maakt en opslaat met een van de opties voor beveiligingsniveau voor gebruikerssleutels, wilt u waarschijnlijk het beveiligingsniveau wijzigen wanneer u het pakket aan andere gebruikers geeft; anders kunnen ze het pakket niet openen.

Normaal gesproken wijzigt u het beveiligingsniveau zoals vermeld in de volgende stappen:

  1. Laat tijdens de ontwikkeling het beveiligingsniveau van pakketten ingesteld op de standaardwaarde EncryptSensitiveWithUserKey. Deze instelling zorgt ervoor dat alleen de ontwikkelaar gevoelige waarden in het pakket ziet. U kunt ook overwegen EncryptAllWithUserKey of DontSaveSensitive te gebruiken.

  2. Wanneer het tijd is om de pakketten te implementeren, moet u het beveiligingsniveau wijzigen in een niveau dat niet afhankelijk is van de gebruikerssleutel van de ontwikkelaar. Daarom moet u doorgaans EncryptSensitiveWithPassword of EncryptAllWithPassword selecteren. Versleutel de pakketten door een tijdelijk sterk wachtwoord toe te wijzen dat ook bekend is bij het operationele team in de productieomgeving.

  3. Nadat de pakketten zijn geïmplementeerd in de productieomgeving, kan het operations-team de geïmplementeerde pakketten opnieuw versleutelen door een sterk wachtwoord toe te wijzen dat alleen voor hen bekend is. Of ze kunnen de geïmplementeerde pakketten versleutelen door EncryptSensitiveWithUserKey of EncryptAllWithUserKey te selecteren en de lokale referenties van het account te gebruiken waarmee de pakketten worden uitgevoerd.

Het beveiligingsniveau van pakketten instellen of wijzigen

Als u de toegang tot de inhoud van pakketten en de gevoelige waarden wilt beheren die ze bevatten, zoals wachtwoorden, stelt u de waarde van de eigenschap ProtectionLevel in. De pakketten in een project moeten hetzelfde beveiligingsniveau hebben als het project om het project te bouwen. Als u de eigenschap ProtectionLevel voor het project wijzigt, moet u de eigenschapsinstelling voor de pakketten handmatig bijwerken.

Zie Security Overview (Integration Services) voor een overzicht van beveiligingsfuncties in Integration Services.

In de procedures in dit onderwerp wordt beschreven hoe u SQL Server Data Tools (SSDT) of het opdrachtregelprogramma dtutil gebruikt om de eigenschap ProtectionLevel te wijzigen.

Opmerking

Naast de procedures in dit onderwerp kunt u doorgaans de eigenschap ProtectionLevel van een pakket instellen of wijzigen wanneer u het pakket importeert of exporteert. U kunt ook de eigenschap ProtectionLevel van een pakket wijzigen wanneer u de wizard IMPORTEREN en exporteren van SQL Server gebruikt om een pakket op te slaan.

Het beveiligingsniveau van een pakket instellen of wijzigen in SQL Server Data Tools

  1. Controleer de beschikbare waarden voor de eigenschap ProtectionLevel in de sectie, Beveiligingsniveaus en bepaal de juiste waarde voor uw pakket.

  2. Open in SQL Server Data Tools (SSDT) het Integration Services-project dat het pakket bevat.

  3. Open het pakket in de SSIS-ontwerpfunctie.

  4. Als in het venster Eigenschappen de eigenschappen van het pakket niet worden weergegeven, klikt u op het ontwerpoppervlak.

  5. Selecteer in het venster Eigenschappen in de groep Beveiliging de juiste waarde voor de eigenschap ProtectionLevel .

    Als u een beveiligingsniveau selecteert waarvoor een wachtwoord is vereist, voert u het wachtwoord in als de waarde van de eigenschap PackagePassword .

  6. Selecteer Geselecteerde items opslaan in het menu Bestand om het gewijzigde pakket op te slaan.

Het beveiligingsniveau van pakketten instellen of wijzigen bij de opdrachtprompt

  1. Controleer de beschikbare waarden voor de eigenschap ProtectionLevel in de sectie, Beveiligingsniveaus en bepaal de juiste waarde voor uw pakket.

  2. Controleer de toewijzingen voor de optie Versleutelen in het onderwerp, dtutil Utility en bepaal het juiste gehele getal dat moet worden gebruikt als de waarde van de geselecteerde eigenschap ProtectionLevel .

  3. Open een opdrachtpromptvenster.

  4. Navigeer in de opdrachtprompt naar de map met het pakket of de pakketten waarvoor u de eigenschap ProtectionLevel wilt instellen.

    In de syntaxisvoorbeelden die in de volgende stap worden weergegeven, wordt ervan uitgegaan dat deze map de huidige map is.

  5. Stel het beveiligingsniveau van het pakket of de pakketten in of wijzig deze met behulp van een opdracht die vergelijkbaar is met een van de volgende voorbeelden:

    • Met de volgende opdracht stelt u de eigenschap ProtectionLevel van een afzonderlijk pakket in het bestandssysteem in op niveau 2, 'Versleutelen gevoelig met wachtwoord', met het wachtwoord, 'strongpassword':

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

    • Met de volgende opdracht stelt u de eigenschap ProtectionLevel van alle pakketten in een bepaalde map in het bestandssysteem in op niveau 2, 'Versleutelen gevoelig met wachtwoord', met het wachtwoord, 'strongpassword':

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

      Als u een vergelijkbare opdracht in een batchbestand gebruikt, voert u de tijdelijke aanduiding voor het bestand in,%f', als '%%f' in het batchbestand.

Dialoogvenster Pakketprojectbeveiligingsniveau

Gebruik het dialoogvenster Pakketbeveiligingsniveau om het beveiligingsniveau van een pakket bij te werken. Het beveiligingsniveau bepaalt de beveiligingsmethode, het wachtwoord of de gebruikerssleutel en het bereik van pakketbeveiliging. Beveiliging kan alleen alle gegevens of gevoelige gegevens bevatten.

Als u de vereisten en opties voor pakketbeveiliging wilt begrijpen, is het wellicht handig om Beveiligingsoverzicht (Integration Services) te bekijken.

Opties

Pakketbeveiligingsniveau
Selecteer een beveiligingsniveau in de lijst.

Wachtwoord
Als u gevoelige gegevens met een wachtwoord versleutelt of alle gegevens met wachtwoordbeveiligingsniveau versleutelt , typt u een wachtwoord.

Wachtwoord opnieuw typen
Typ het wachtwoord opnieuw.

Dialoogvenster Wachtwoord voor pakket

Gebruik het dialoogvenster Wachtwoord voor pakket om het pakketwachtwoord op te geven voor een pakket dat is versleuteld met een wachtwoord. U moet een wachtwoord opgeven als het pakket het versleutelingsgevoelige wachtwoord gebruikt of alles versleutelen met wachtwoordbeveiligingsniveau .

Opties

Wachtwoord
Voer het wachtwoord in.

Zie ook

SSIS-pakketten (Integration Services)
Overzicht van de Beveiliging (Integration Services)
dtutil Utility