Dynamics CRM 2013 フィールドレベルデータ暗号化機能が、組織の作成やインポートに与える影響とその対処方法

みなさん、こんにちは。

Microsoft Dynamics CRM 2013 より、フィールドレベルデータの暗号化
機能が提供されました。今回はそちらの機能が組織のインポートに及ぼす
影響と、その対処方法を紹介します。

フィールドレベルデータの暗号化機能については以下記事をご参照ください。
Dynamics CRM 2013/Fall '13 フィールドレベルデータの暗号化

組織の新規作成およびアップグレードに対する影響

Microsoft Dynamics CRM 2013 の展開マネージャーより組織を新規に作成
するか、以前のバージョンよりアップグレードインポートする際、以下の
メッセージが表示されます。

[組織作成時のメッセージ]
image

image

これは、新規に作成された、またはアップグレードが完了した組織で
フィールドレベルデータの暗号化が自動で有効になるという意味です。

既定では、ランダムに生成された強固な暗号化キーが利用されますが、
暗号化キーは管理者が知っている必要があるため、作業の完了後迅速に
変更することをお勧めします。

※ 暗号化キーの変更方法は後述します。

組織のインポートに対する影響

Microsoft Dynamics CRM 2013 組織データベースを、他の環境から移行
する場合、組織のインポート完了後に、手動で暗号化キーを入力し、
機能をアクティブ化する必要があります。

※ 暗号化キーの入力方法は後述します

組織のインポート後に発生しえる問題

組織のインポート後に機能を有効化しない場合、暗号化済みのデータを
読み取れない為、メールボックスを開くなど、該当フィールドの値を
読み取る可能性のある操作において、以下のエラーが表示されます。

エラー: 組織のデータベースには暗号化されたフィールドがありますが、
データ暗号化機能がアクティブ化されていません。

[エラーの画像]
image

Microsoft Dynamics CRM サーバーは仕組み上、実際に値があるかどうか
には関係なく複合化を試みるため、上記エラーは必ず発生します。

対処方法

上記エラーが出る場合、フィールドレベルデータ暗号化の暗号化キーを
再入力し、機能をアクティブにしてください。

暗号化キーを紛失した、または値がわからない場合、新規に暗号化キー
を入力することで機能をアクティブにできますが、暗号化対象フィールド
に値がある場合はデータを失います。

暗号化キーの入力/変更方法

暗号化キーの入力/変更はブラウザ上の画面から行うため、既定では
HTTPS が必須となります。ただし設置型環境で安全性が保障できる
場合、以下手順にて HTTP 環境での作業が可能となります。

1. SQL Server Management Studio を起動します。

2. 新しいクエリを選択し、MSCRM_CONFIG データベースを選択します。

image

3. 以下のコマンドを実行します。
UPDATE DeploymentProperties SET BitColumn = 1 WHERE ColumnName = 'DisableSSLCheckForEncryption'

4. IISRESET を実行します。

5. 操作を行うユーザーを、一時的に PrivUserGroup セキュリティグループ
に追加します。尚、作業後グループから削除してください。
image

また以下の手順で暗号化キーを入力します。

1. ブラウザで Microsoft Dynamics CRM 2013 に接続します。

2. 設定より、データ管理 | データ暗号化をクリックします。

image

3. 以前のパスワードがわかる場合は以前のものを、不明な
場合は新しいパスワードを入力し、アクティブ化ボタンを
クリックします。パスワードは安全な場所に保管してください。

image

4. 以下の画面が出れば作業完了です。

image

5. すでに機能がアクティブの場合は、暗号化キー入力の画面で
新しいキーを入力して適用してください。

まとめ

フィールドレベルデータ暗号化機能は、ユーザーのパスワードなどの
繊細なデータを安全にデータベースに格納するためには欠かせない機能
ですが、ユーザーがパスワードを入力しない運用にしている環境などでは
あまり意識せず運用する事が多いと思います。

しかし組織のインポートに影響がありますし、今後運用が変わる可能性
もありますので、暗号化キーを必ず設定し、安全に管理してください。

- 中村 憲一郎