Access Control untuk Data Sensitif dalam Paket

Berlaku untuk: Integration Runtime SSIS SQL Server di Azure Data Factory

Untuk melindungi data dalam paket Layanan Integrasi, Anda dapat mengatur tingkat perlindungan yang membantu melindungi data sensitif saja atau semua data dalam paket. Selain itu, Anda dapat mengenkripsi data ini dengan kata sandi atau kunci pengguna, atau mengandalkan database untuk mengenkripsi data. Selain itu, tingkat perlindungan yang Anda gunakan untuk paket belum tentu statis, tetapi berubah sepanjang siklus hidup paket. Anda sering mengatur satu tingkat perlindungan selama pengembangan dan yang lain segera setelah Anda menyebarkan paket.

Catatan

Selain tingkat perlindungan yang dijelaskan dalam topik ini, Anda dapat menggunakan peran tingkat database tetap untuk melindungi paket yang disimpan ke server Layanan Integrasi.

Definisi Informasi Sensitif

Dalam paket Layanan Integrasi, informasi berikut didefinisikan sebagai sensitif:

  • Bagian kata sandi dari string koneksi. Namun, jika Anda memilih opsi yang mengenkripsi semuanya, seluruh string koneksi akan dianggap sensitif.

  • Simpul XML yang dihasilkan tugas yang ditandai sebagai sensitif. Penandaan simpul XML dikendalikan oleh Layanan Integrasi dan tidak dapat diubah oleh pengguna.

  • Variabel apa pun yang ditandai sebagai sensitif. Penandaan variabel dikendalikan oleh Layanan Integrasi.

Apakah Layanan Integrasi menganggap properti sensitif tergantung pada apakah pengembang komponen Layanan Integrasi, seperti manajer koneksi atau tugas, telah menetapkan properti sebagai sensitif. Pengguna tidak dapat menambahkan properti ke, juga tidak dapat menghapus properti dari, daftar properti yang dianggap sensitif.

Enkripsi

Enkripsi, seperti yang digunakan oleh tingkat perlindungan paket, dilakukan dengan menggunakan Microsoft Data Protection API (DPAPI), yang merupakan bagian dari API Kriptografi (CryptoAPI).

Tingkat perlindungan paket yang mengenkripsi paket dengan menggunakan kata sandi mengharuskan Anda menyediakan kata sandi juga. Jika Anda mengubah tingkat perlindungan dari tingkat yang tidak menggunakan kata sandi ke tingkat yang melakukannya, Anda akan dimintai kata sandi.

Selain itu, untuk tingkat perlindungan yang menggunakan kata sandi, Integration Services menggunakan algoritma sandi Triple DES dengan panjang kunci 192 bit, tersedia di .NET Framework Class Library (FCL).

Tingkat Perlindungan

Tabel berikut ini menjelaskan tingkat perlindungan yang disediakan Layanan Integrasi. Nilai dalam tanda kurung adalah nilai dari DTSProtectionLevel enumerasi. Nilai-nilai ini muncul di jendela Properti yang Anda gunakan untuk mengonfigurasi properti paket saat Anda bekerja dengan paket di SQL Server Data Tools (SSDT).

Tingkat perlindungan Deskripsi
Jangan menyimpan sensitif (DontSaveSensitive) Menekan nilai properti sensitif dalam paket saat paket disimpan. Tingkat perlindungan ini tidak mengenkripsi, tetapi sebaliknya mencegah properti yang ditandai sensitif disimpan dengan paket dan oleh karena itu membuat data sensitif tidak tersedia untuk pengguna lain. Jika pengguna lain membuka paket, informasi sensitif diganti dengan kosong dan pengguna harus memberikan informasi sensitif.

Ketika digunakan dengan utilitas dtutil (dtutil.exe), tingkat perlindungan ini sesuai dengan nilai 0.
Mengenkripsi semua dengan kata sandi (EncryptAllWithPassword) Menggunakan kata sandi untuk mengenkripsi seluruh paket. Paket dienkripsi dengan menggunakan kata sandi yang disediakan pengguna saat paket dibuat atau diekspor. Untuk membuka paket di SSIS Designer atau menjalankan paket dengan menggunakan utilitas prompt perintah dtexec , pengguna harus memberikan kata sandi paket. Tanpa kata sandi, pengguna tidak dapat mengakses atau menjalankan paket.

Ketika digunakan dengan utilitas dtutil , tingkat perlindungan ini sesuai dengan nilai 3.
Mengenkripsi semua dengan kunci pengguna (EncryptAllWithUserKey) Menggunakan kunci yang didasarkan pada profil pengguna saat ini untuk mengenkripsi seluruh paket. Hanya pengguna yang membuat atau mengekspor paket yang dapat membuka paket di SSIS Designer atau menjalankan paket dengan menggunakan utilitas prompt perintah dtexec .

Ketika digunakan dengan utilitas dtutil , tingkat perlindungan ini sesuai dengan nilai 4.

Catatan: Untuk tingkat perlindungan yang menggunakan kunci pengguna, Integration Services menggunakan standar DPAPI. Untuk informasi selengkapnya tentang DPAPI, lihat Pustaka MSDN di https://msdn.microsoft.com/library.
Mengenkripsi sensitif dengan kata sandi (EncryptSensitiveWithPassword) Menggunakan kata sandi untuk mengenkripsi hanya nilai properti sensitif dalam paket. DPAPI digunakan untuk enkripsi ini. Data sensitif disimpan sebagai bagian dari paket, tetapi data tersebut dienkripsi dengan menggunakan kata sandi yang disediakan pengguna saat ini saat paket dibuat atau diekspor. Untuk membuka paket di SSIS Designer, pengguna harus memberikan kata sandi paket. Jika kata sandi tidak disediakan, paket terbuka tanpa data sensitif dan pengguna saat ini harus memberikan nilai baru untuk data sensitif. Jika pengguna mencoba menjalankan paket tanpa memberikan kata sandi, eksekusi paket gagal. Untuk informasi selengkapnya tentang kata sandi dan eksekusi baris perintah, lihat Utilitas dtexec.

Ketika digunakan dengan utilitas dtutil , tingkat perlindungan ini sesuai dengan nilai 2.
Mengenkripsi sensitif dengan kunci pengguna (EncryptSensitiveWithUserKey) Menggunakan kunci yang didasarkan pada profil pengguna saat ini untuk mengenkripsi hanya nilai properti sensitif dalam paket. Hanya pengguna yang sama yang menggunakan profil yang sama yang dapat memuat paket. Jika pengguna lain membuka paket, informasi sensitif diganti dengan kosong dan pengguna saat ini harus memberikan nilai baru untuk data sensitif. Jika pengguna mencoba menjalankan paket, eksekusi paket gagal. DPAPI digunakan untuk enkripsi ini.

Ketika digunakan dengan utilitas dtutil , tingkat perlindungan ini sesuai dengan nilai 1.

Catatan: Untuk tingkat perlindungan yang menggunakan kunci pengguna, Integration Services menggunakan standar DPAPI. Untuk informasi selengkapnya tentang DPAPI, lihat Pustaka MSDN di https://msdn.microsoft.com/library.
Mengandalkan penyimpanan server untuk enkripsi (ServerStorage) Melindungi seluruh paket menggunakan peran database SQL Server. Opsi ini didukung saat paket disimpan ke database msdb SQL Server. Selain itu, katalog SSISDB menggunakan tingkat perlindungan ServerStorage

Opsi ini tidak didukung ketika paket disimpan ke sistem file dari SQL Server Data Tools (SSDT).

Pengaturan Tingkat Perlindungan dan Katalog SSISDB

Katalog SSISDB menggunakan tingkat perlindungan ServerStorage . Saat Anda menyebarkan proyek Layanan Integrasi ke server Layanan Integrasi, katalog secara otomatis mengenkripsi data paket dan nilai sensitif. Katalog juga secara otomatis mendekripsi data saat Anda mengambilnya.

Jika Anda mengekspor proyek (file.ispac) dari server Layanan Integrasi ke sistem file, sistem secara otomatis mengubah tingkat perlindungan menjadi EncryptSensitiveWithUserKey. Jika Anda mengimpor proyek dengan menggunakan Wizard Impor Proyek Layanan Integrasi di SQL Server Data Tools (SSDT), properti ProtectionLevel di jendela Properti memperlihatkan nilai EncryptSensitiveWithUserKey.

Pengaturan Tingkat Perlindungan Berdasarkan Siklus Hidup Paket

Anda menetapkan tingkat perlindungan paket layanan integrasi SQL Server saat pertama kali mengembangkannya di SQL Server Data Tools (SSDT). Kemudian, ketika paket disebarkan, diimpor, atau diekspor dari Layanan Integrasi di SQL Server Management Studio, atau disalin dari SQL Server Data Tools (SSDT) ke SQL Server, Penyimpanan Paket SSIS, atau sistem file, Anda dapat memperbarui tingkat perlindungan paket. Misalnya, jika Anda membuat dan menyimpan paket di komputer Anda dengan salah satu opsi tingkat perlindungan kunci pengguna, Anda mungkin ingin mengubah tingkat perlindungan ketika Anda memberikan paket kepada pengguna lain; jika tidak, mereka tidak dapat membuka paket.

Biasanya, Anda mengubah tingkat perlindungan seperti yang tercantum dalam langkah-langkah berikut:

  1. Selama pengembangan, biarkan tingkat perlindungan paket diatur ke nilai default, EncryptSensitiveWithUserKey. Pengaturan ini membantu memastikan bahwa hanya pengembang yang melihat nilai sensitif dalam paket. Atau, Anda dapat mempertimbangkan untuk menggunakan EncryptAllWithUserKey, atau DontSaveSensitive.

  2. Ketika saatnya untuk menyebarkan paket, Anda harus mengubah tingkat perlindungan menjadi paket yang tidak bergantung pada kunci pengguna pengembang. Oleh karena itu, Anda biasanya harus memilih EncryptSensitiveWithPassword, atau EncryptAllWithPassword. Enkripsi paket dengan menetapkan kata sandi kuat sementara yang juga diketahui oleh tim operasi di lingkungan produksi.

  3. Setelah paket disebarkan ke lingkungan produksi, tim operasi dapat mengenkripsi ulang paket yang disebarkan dengan menetapkan kata sandi kuat yang hanya diketahui oleh mereka. Atau, mereka dapat mengenkripsi paket yang disebarkan dengan memilih EncryptSensitiveWithUserKey atau EncryptAllWithUserKey, dan menggunakan kredensial lokal akun yang akan menjalankan paket.

Mengatur atau Mengubah Tingkat Perlindungan Paket

Untuk mengontrol akses ke konten paket dan ke nilai sensitif yang dikandungnya, seperti kata sandi, atur nilai properti ProtectionLevel . Paket yang terkandung dalam proyek harus memiliki tingkat perlindungan yang sama dengan proyek, untuk membangun proyek. Jika Anda mengubah pengaturan properti ProtectionLevel pada proyek, Anda perlu memperbarui pengaturan properti secara manual untuk paket.

Untuk gambaran umum fitur keamanan di Layanan Integrasi, lihat Gambaran Umum Keamanan (Layanan Integrasi).

Prosedur dalam topik ini menjelaskan cara menggunakan SQL Server Data Tools (SSDT) atau utilitas prompt perintah dtutil untuk mengubah properti ProtectionLevel.

Catatan

Selain prosedur dalam topik ini, Anda biasanya dapat mengatur atau mengubah properti ProtectionLevel dari paket saat Anda mengimpor atau mengekspor paket. Anda juga bisa mengubah properti ProtectionLevel paket saat menggunakan Wizard Impor dan Ekspor SQL Server untuk menyimpan paket.

Untuk mengatur atau mengubah tingkat perlindungan paket di SQL Server Data Tools

  1. Tinjau nilai yang tersedia untuk properti ProtectionLevel di bagian, Tingkat Perlindungan, dan tentukan nilai yang sesuai untuk paket Anda.

  2. Di SQL Server Data Tools (SSDT), buka proyek Integration Services yang berisi paket.

  3. Buka paket di perancang SSIS.

  4. Jika jendela Properti tidak menampilkan properti paket, klik permukaan desain.

  5. Di jendela Properti, di grup Keamanan , pilih nilai yang sesuai untuk properti ProtectionLevel .

    Jika Anda memilih tingkat perlindungan yang memerlukan kata sandi, masukkan kata sandi sebagai nilai properti PackagePassword .

  6. Pada menu File , pilih Simpan Item Terpilih untuk menyimpan paket yang dimodifikasi.

Untuk mengatur atau mengubah tingkat perlindungan paket pada prompt perintah

  1. Tinjau nilai yang tersedia untuk properti ProtectionLevel di bagian, Tingkat Perlindungan, dan tentukan nilai yang sesuai untuk paket Anda.

  2. Tinjau pemetaan untuk opsi Enkripsi dalam topik, utilitas dtutil, dan tentukan bilangan bulat yang sesuai untuk digunakan sebagai nilai properti ProtectionLevel yang dipilih.

  3. Buka jendela Prompt Perintah.

  4. Pada prompt perintah, navigasikan ke folder yang berisi paket atau paket yang ingin Anda atur properti ProtectionLevel .

    Contoh sintaks yang diperlihatkan dalam langkah berikut mengasumsikan bahwa folder ini adalah folder saat ini.

  5. Atur atau ubah tingkat perlindungan paket atau paket dengan menggunakan perintah yang mirip dengan salah satu contoh berikut:

    • Perintah berikut mengatur properti ProtectionLevel dari paket individual dalam sistem file ke tingkat 2, "Enkripsi sensitif dengan kata sandi", dengan kata sandi, "strongpassword":

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

    • Perintah berikut mengatur properti ProtectionLevel dari semua paket dalam folder tertentu dalam sistem file ke tingkat 2, "Enkripsi sensitif dengan kata sandi", dengan kata sandi, "strongpassword":

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

      Jika Anda menggunakan perintah serupa dalam file batch, masukkan tempat penampung file, "%f", sebagai "%%f" dalam file batch.

Kotak Dialog Tingkat Perlindungan Proyek Paket

Gunakan kotak dialog Tingkat Perlindungan Paket untuk memperbarui tingkat perlindungan paket. Tingkat perlindungan menentukan metode perlindungan, kata sandi atau kunci pengguna, dan cakupan perlindungan paket. Perlindungan hanya dapat mencakup semua data atau data sensitif.

Untuk memahami persyaratan dan opsi untuk keamanan paket, Anda mungkin merasa berguna untuk melihat Gambaran Umum Keamanan (Layanan Integrasi).

Opsi

Tingkat perlindungan paket
Pilih tingkat perlindungan dari daftar.

Kata sandi
Jika menggunakan Enkripsi data sensitif dengan kata sandi atau Enkripsi semua data dengan tingkat perlindungan kata sandi , ketik kata sandi.

Ketik ulang kata sandi
Ketik kata sandi lagi.

Kotak Dialog Kata Sandi Paket

Gunakan kotak dialog Kata Sandi Paket untuk menyediakan kata sandi paket untuk paket yang dienkripsi dengan kata sandi. Anda harus memberikan kata sandi jika paket menggunakan Enkripsi sensitif dengan password atau Enkripsi semua dengan tingkat perlindungan kata sandi .

Opsi

Kata sandi
Masukkan kata sandi.

Lihat juga

Paket Integration Services (SSIS)
Gambaran Umum Keamanan (Layanan Integrasi)
Utilitas dtutil