2017-05-24 10 views
2

SSISを使用して、Azure Key Vaultのキーストレージで常に暗号化されたデータを使用するSQL Serverからデータを取得および復号化できましたか? )?SQL Serverを常にSSISとAzure Key Vaultで暗号化する

アズールキーのVaultへのアクセスを設定するので、プログラムSqlClientにプロバイダを登録することを伴う、私は思っていた:

をSSISスクリプトタスクは、後続のADO.NETデータフロータスクと同じアプリケーションドメイン/コンテクストを共有しています、次のようにそれは、セットアップをSqlClientプロバイダにアクセスする必要がありますよう:

var provs = new Dictionary<string, SqlColumnEncryptionKeyStoreProvider>(); 
provs.Add(SqlColumnEncryptionAzureKeyVaultProvider.ProviderName, azureKeyVaultProvider); 
SqlConnection.RegisterColumnEncryptionKeyStoreProviders(providers); 

はまた、スクリプトでの作業の.NET 4.5にデフォルトはなく、常に暗号化機能は、4.6.1でのみ使用可能です。スクリプトエディタでフレームワークを設定しようとすると、プロジェクトを再オープンすると常に4.5にリセットされます。

これを設定するには、Key Vault &すべての依存関係アセンブリをGACに登録する必要があります。

UPDATE 5月5日2017 @Josh Gのおかげで、私はこの95%をODBCドライバを使用して稼働させることができました。

Error: 0x384 at Broker, ODBC Source [12]: Open Database Connectivity (ODBC) error occurred. state: 'CE202'. Native Error Code: 0. [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]The keystore provider AZURE_KEY_VAULT failed to decrypt the ECEK https://keyvault.vault.azure.net:443/keys/CMKAuto1/mykey with RSA_OAEP.

Error: 0x384 at Broker, ODBC Source [12]: Open Database Connectivity (ODBC) error occurred. state: 'CE269'. Native Error Code: 0. [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Error 12038 sending request to https://mykeyvault.vault.azure.net:443 Error: 0x384 at Broker, ODBC Source [12]: Open Database Connectivity (ODBC) error occurred. state: 'CE263'. Native Error Code: 0. [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Error verifying signature of ECEK.

+0

4.6.1が付着していないが、私にはバグのように思えます。私の推測/希望は、プロジェクトがコンパイル/保存されたときにSSISパッケージにシリアル化されたアセンブリが正しいフレームワークを使用していたことです。そうでなければ、タスクは無効なバイトコードを持ちます。データフローのOOB ADO.NET Sourceコンポーネントはデータの解読方法を知らず、カスタムスクリプトコンポーネントを作成してアクセスする必要があります。私はAEインスタンスやAzureキーストアを持っていません。多くの仮定があります。 – billinkc

+0

OOB ADOはWindows Cert Storeで動作するので、上記のスニペットがkeyvaultで動作することを期待しています。 –

答えて

2

この質問のための短い答えはそれということです。私のODBCソースの

、私は今、私は「プレビュー」を選択すると、しかし、パッケージを実行した後、私は次のエラーを取得し、暗号化されていないデータを見ることができますODBCドライバーを使用して常に暗号化されたデータベースに接続する場合、要求されたシナリオをサポートすることができます。 ODBCドライバを使用すると、ドライバがAKVに接続してSQLに対して暗号化/復号化操作を実行するために使用する接続文字列でAKV認証情報を指定できます。

ベスト、 ジョシュ

+0

はほとんどそこにあります - 私は 'プレビュー'を選択すると暗号化されていないデータが見えますが、上記のエラーが発生してパッケージを実行すると失敗します –

関連する問題