Bagikan melalui


Access Control untuk Data Sensitif dalam Paket

Untuk melindungi data dalam paket Layanan Integrasi, Anda dapat mengatur tingkat perlindungan yang membantu melindungi hanya data sensitif 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 menetapkan 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 Integration Services.

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 dikontrol oleh Layanan Integrasi dan tidak dapat diubah oleh pengguna.

  • Variabel apa pun yang ditandai sebagai sensitif. Penandaan variabel dikendalikan oleh Integration Services.

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 Cryptography API (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 tidak, 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 Integration Services. 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 simpan 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 karenanya membuat data sensitif tidak tersedia untuk pengguna lain. Jika pengguna yang berbeda 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.
Enkripsi 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 ServerStorage tingkat perlindungan

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 ServerStorage tingkat perlindungan. Saat Anda menyebarkan proyek Integration Services ke server Integration Services, 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 Proyek Impor 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 SQL Server Integration Services 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 saat 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 sudah waktunya 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.

Lihat juga

Paket Impor dan Ekspor (Layanan SSIS)
Paket Integration Services (SSIS)
Gambaran Umum Keamanan (Layanan Integrasi)