Column Level Encryption

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む14読むのに数分
  • Column Level Encryption (CLE) (以前の暗号化のサポート) は、ユーザーロールに基づいて暗号化データへのアクセスを許可および拒否します。Column Level Encryption は、追加料金なしで暗号化モジュールを使用する基本的なキー管理を含むように拡張されています。

    Column Level Encryption について

    注:
    以前に設定された暗号化コンテキストは、自動的に暗号化モジュールに変換されます。Column Level Encryption (CLE) は、暗号化のサポートに対する無料のセキュリティ拡張機能です。暗号化オプションの詳細については、「暗号化とキー管理のサブスクリプションバンドル」を参照してください。

    列レベルの暗号化の実装は、Now Platformのインスタンスで 1 つ以上の暗号化モジュールを定義することから始まります。このプロセスには、暗号化アルゴリズムの選択と適切な秘密キーの提供が含まれます。機能を使用して後で暗号化されたデータへのアクセスはロールベースで行われ、モジュールはロールに関連付けられています。適切なロールを持たないユーザーには、このフィールドは表示されません。図 1 は、ロールベースの暗号化がどのように機能するかを示しています。

    図 : 1. 図 1 – ロールベースの暗号化の例
    ロールベースの暗号化
    図 1 の関係の結果は次のとおりです。
    • ユーザー 1 は、暗号化モジュール 1 へのアクセスを提供するロール 1 のメンバーです。ユーザー 1 は、フィールド A とフィールド B の内容を表示できます。
    • ユーザー 2 とユーザー 3 はグループ 1 のメンバーです。グループ 1 はロール 1 のメンバーであるため、グループ 1 の全員が暗号化モジュール 1 にアクセスでき、ユーザー 2 とユーザー 3 がフィールド A とフィールド B の内容を表示できます。
    • ユーザー 4 はグループまたはロールのメンバーではないため、暗号化モジュール 1 にアクセスできません。ユーザー 4 はフィールド A またはフィールド B にアクセスできないだけでなく、フォーム上でこれらのフィールドを表示することもできません。リストビューでは、値は空です。

    かなり複雑なロールベースの暗号化も実装できます。

    ロールベースのアクセスは、ロールを介して暗号化モジュールを割り当てられたユーザーがそのフィールドにアクセスできるように適切に実装する必要があります。

    列レベルの暗号化で使用するすべての顧客暗号化キーは、顧客によって暗号化されたデータが格納されるのと同じ一意のインスタンスデータベースに格納されます。追加のセキュリティ対策として、顧客暗号化キーはそのインスタンスに対して一意のセカンダリキーで再暗号化されます。これにより、インスタンス管理者または ServiceNow による暗号化モジュールの暗号化キーへの直接アクセスが緩和されます。

    列レベルの暗号化データはフィルタリングできません。

    Column Level Encryption:
    • 暗号化されたデータへのアクセスは、ユーザーロールによって決まります。
    • 暗号化アルゴリズムの強度は、AES-128 または AES-256 から選択できます。
    • 文字列テキスト、日付フィールドと日付/時刻フィールド、添付ファイル、および URL を暗号化できます。
    • 暗号化モジュールは等価性保存暗号化を提供します。
    列レベル暗号化エンタープライズ は次の追加機能をサポートしています。
    • 顧客指定のキー
    • キーアクセスにより、モジュールやキーへのアクセス権を持つユーザーセッションが、他のバックエンドプロセスやシステムユーザープロセスにアクセスできるようになります。
    • スクリプト、Resource Exchange、およびアプリのアクセス
    • 高度な添付ファイルのサポート。
    • アプリケーションプログラミングインターフェイス (API) によるアクセスを利用できます。
    • 順序保存の暗号化または標準の非決定的暗号化はサポートされていません。

    Standard および Enterprise エディション

    列レベルの暗号化は、Standard バージョンおよび Enterprise バージョンで使用できます。Column Level Encryption Enterprise は、多数のモジュールとモジュールアクセスポリシーに加えて、追加機能を提供する有料プラグインです。

    表 : 1. バージョン別の Column Level Encryption の機能
    Column Level Encryption Column Level Encryption Enterprise
    • 暗号化されたデータへのアクセスは、ユーザーロールによって決まります
    • 最大 5 つのモジュールとモジュールアクセスポリシー (MAP) のサポート
    • AES-128 および AES-256 暗号化アルゴリズム
    • 文字列テキスト、日付フィールドと日付/時刻フィールド、添付ファイル、および URL の暗号化。
    • 暗号化モジュールは等価性保存暗号化を提供します。
    • クリアテキスト値を返し、暗号化フィールドに暗号化されたデータを挿入できる、更新された getDisplayValue() および setDisplayValue() API

    左にリストされている機能に加えて、Column Level Encryption Enterprise は次の追加機能をサポートしています。

    • 5 つ以上のモジュールとモジュールアクセスポリシー (MAP) のサポート
    • ジャーナル、HTML、翻訳済みフィールドなどの追加のフィールドタイプの暗号化
    • 構成可能な自動キーローテーション
    • 顧客指定のキーデータ暗号化キーのキーライフサイクル全体を管理します。必要に応じて、環境内で生成されたデータ暗号化キーを安全に交換できます。
    • 短期暗号化キー
    • getValue() および setValue() API を更新しました。
    この製品の Enterprise バージョンの詳細については、「Column Level Encryption Enterprise」を参照してください。

    暗号化方法

    Column Level Encryption を使用するフィールドは次のとおりです。

    • 新規または既存の [暗号化テキスト] フィールド。
    • 暗号化されたフィールド設定レコードに含まれる文字列、日付、日付/時刻、または URL フィールド。

    [暗号化フィールドの構成] テーブル [sys_platform_encryption_configuration] には、Column Level Encryption で暗号化された各フィールドのレコードが含まれています。このテーブルにより、セキュリティ管理者は Column Level Encryption を使用するインスタンス内のすべてのフィールドを監視できます。

    注:
    アップグレード時に、既存のすべての暗号化テキストフィールドに対して暗号化フィールドの構成レコードが作成されます。新しい暗号化テキストフィールドが追加されると、暗号化フィールドの設定レコードがデフォルトで作成されます。

    暗号化フィールドの構成では、次のいずれかの方法を使用してフィールドを暗号化できます。

    メソッド 説明
    単一暗号化モジュール フィールドは [暗号化モジュール] フィールドで定義された暗号化方法で暗号化されます。暗号化モジュールへのアクセス権がないユーザーは、フィールド値を表示または更新できません。
    複数暗号化モジュール フィールドは、そのフィールドにデータを入力する最初のユーザーの暗号化モジュールで暗号化されます。ユーザーが 2 つ以上の暗号化モジュールを持っている場合、暗号化モジュールセレクターで定義されたモジュールが使用されます。暗号化モジュールはレコードごとに設定されるため、リストのフィールドにはさまざまな暗号化モジュールが含まれる可能性があります。ただし、1 つのレコード内では、フィールドは 1 つのモジュールでのみ暗号化できます。
    [暗号化テキスト] フィールドが作成されると、複数暗号化モジュール方式で暗号化フィールドの構成が作成されます。[暗号化テキスト] フィールドと複数暗号化モジュールメソッドで暗号化されたフィールドは、同じように動作します。
    注:
    複数の暗号化モジュールメソッドを使用する場合は、一括暗号化は利用できません。

    暗号化されたデータへのアクセス

    暗号化モジュールは、暗号化されたデータへのアクセスを決定します。Security_admin ユーザーは、関連するロールをユーザーに付与することで、ユーザーに暗号化モジュールのアクセスポリシーを付与できます。

    ロールの割り当てを監視するために、顧客またはプロフェッショナルサービスはセキュリティ対策を設定できます。たとえば、暗号化モジュールに関連付けられたロールがユーザーに付与されるたびに、指定された暗号化マネージャーにメールを送信できます。

    注:
    代理操作によって、ユーザーが使用できる暗号化モジュールが変更されることはありません。代理操作中であっても、最初に使用可能になっているのは暗号化モジュールのみです。この機能は、「」で Vancouver紹介されています。
    アクセスレベル 単一暗号化モジュールメソッドを使用したフィールドへのデータアクセス 複数暗号化モジュールメソッドを使用したフィールドへのデータアクセス
    暗号化モジュールを持たないユーザー フォームでは暗号化フィールドが非表示にされます。リストビューでは、フィールドのデータが復号化されていても、フィールドは空白で表示され、編集できません。 フォームでは暗号化フィールドが非表示にされます。リストビューでは、フィールドのデータが復号化されていても、フィールドは空白で表示され、編集できません。
    1 つの暗号化モジュールを持つユーザー フィールドを使用するには、暗号化フィールドの構成で定義された暗号化モジュールにアクセスする必要があります。ユーザーが暗号化モジュールにアクセスできない場合、フォームではフィールドが非表示にされます。リストビューでは、フィールドは空白で表示され、編集できません。
    • フィールドにデータがない場合:
      • ユーザーが暗号化モジュールにアクセスできる場合は、フォームにフィールドが表示されます (UI ポリシーで防止されていないと仮定)。
      • 暗号化モジュールへのアクセス権を持つユーザーは、空のフィールドを表示して更新できます。
      • フィールドに入力したデータは暗号化フィールドの構成で定義された暗号化モジュールで暗号化されます。
    • フィールドにデータがある場合:ユーザーが暗号化モジュールにアクセスできる場合、ユーザーはフィールドのデータを表示して編集できます。
    ユーザーは、暗号化フィールドで暗号化モジュールを自動的に使用します。
    • フィールドにデータがない場合:
      • フォームにフィールドが表示されます (UI ポリシーによって禁止されていないことが前提)。
      • 暗号化モジュールを持つユーザーは、空のフィールドを表示して更新できます。
      • フィールドにデータを入力すると、現在選択されている暗号化モジュールを使用してデータが暗号化されます。
    • フィールドにデータがある場合:ユーザーがフィールドの暗号化に使用される暗号化モジュールにアクセスできる場合、ユーザーはフィールドを表示して編集できます。
    2 つ以上の暗号化モジュールを持つユーザー フィールドを使用するには、暗号化フィールドの構成で定義された暗号化モジュールにアクセスする必要があります。ユーザーが暗号化モジュールにアクセスできない場合、フォームではフィールドが非表示にされます。リストビューでは、フィールドは空白で表示され、編集できません。
    • フィールドにデータがない場合:
      • ユーザーが暗号化モジュールにアクセスできる場合は、フォームにフィールドが表示されます (UI ポリシーで防止されていないと仮定)。
      • 暗号化モジュールへのアクセス権を持つユーザーは、空のフィールドを表示して更新できます。
      • フィールドに入力したデータは暗号化フィールドの構成で定義された暗号化モジュールで暗号化されます。
    • フィールドにデータある場合:
      • ユーザーが暗号化モジュールにアクセスできる場合、ユーザーはフィールドを表示して編集できます。
      • フィールドは、常に元の暗号化モジュールを使用してフィールドへの変更を暗号化します。この動作は、2 つ以上の暗号化モジュールを持つユーザーがフィールドの暗号化モジュールを変更できないようにするのに役立ちます。
    ユーザーは、ようこそバーの暗号化モジュールセレクターから暗号化モジュールを選択できます。
    • フィールドにデータがない場合:
      • フォームにフィールドが表示されます (UI ポリシーで防止されていないと仮定)。暗号化モジュールを持つユーザーは、空のフィールドを表示して更新できます。
      • フィールドにデータを入力すると、現在選択されている暗号化モジュールを使用してデータが暗号化されます。
      • フィールドは、常に元の暗号化モジュールを使用してフィールドへの変更を暗号化します。この動作は、2 つ以上の暗号化モジュールを持つユーザーがフィールドの暗号化モジュールを変更できないようにするのに役立ちます。
    • フィールドにデータある場合:
      • ユーザーがフィールドの暗号化に使用される暗号化モジュールにアクセスできる場合、ユーザーはフィールドを表示して編集できます。
      • フィールドは元の暗号化モジュールを使用して、フィールドへの変更を暗号化します。この動作は、複数の暗号化モジュールを持つユーザーがフィールドの暗号化モジュールを変更できないようにするのに役立ちます。

    サポートされている構成情報

    • 次のフィールド タイプを暗号化できます。
      • 添付ファイル
      • 日付
      • 日付/時刻
      • 文字列テキスト
      • URL
      注:
      エンタープライズでは、さらに多くのフィールドタイプを使用できます。詳細については、「」を参照してください。
    • モジュールはロールに関連付けられ、ロールはユーザーに関連付けられているため、ユーザー以外のセッションからキーにアクセスすることはできません。システムユーザーとして実行されているもの、またはユーザーセッションを持たないスケジュール設定済みジョブは、キーにアクセスしてデータを暗号化または復号化することはできません。
    • 「値」または「表示値」にアクセスすることができます。
      • [値] を選択すると、暗号テキストが返されます。
      • 適切なロールを持っている場合は、[表示値] を選択するとクリアテキストが返されます。

      アプリケーションレイヤーの多くのスクリプトは、この区別を無視して値を使用するようにスクリプト化されています。表示値を使用するようにスクリプトを変更しないと、データは暗号化も復号化もされません。

    添付ファイルの暗号化

    デフォルトでの添付ファイルの暗号化

    Column Level Encryption を使用しているお客様の場合、アクティブな暗号化フィールドの構成 (EFC) タイプ Attachment のテーブルの添付ファイルはデフォルトで暗号化されています。

    EFC 構成で定義されているこのデフォルトの暗号化は、管理者がこれらのテーブルのアップロード時に添付ファイルを暗号化する必要があることを手動で宣言する必要がないことを意味します。

    デフォルトの暗号化のオプトアウト

    EFC構成に基づいてデフォルトで添付ファイルを暗号化したくない場合は、サポートに連絡してこのオプションをオプトアウトできます。

    この機能をオプトアウトするには、サポートを含むサポートケースを作成し、ケースレコードのコメントに次のステートメントを含めます。

    「私[顧客名]は、添付ファイルの推奨されるセキュリティのベストプラクティスをオフにするように求めていること、および[顧客の会社]がアプリケーションでの暗号化されていない添付ファイルの構成と使用に関連する追加のリスクを負うことを理解しています。」

    暗号化フィールドのフィルタリングと検索

    暗号化テキストフィールドまたは暗号化フィールドの構成が適用されたフィールドをフィルターの左オペランドとして選択した場合、次の演算子を利用できます。
    • 次の値に等しい
    • ではない
    • は、空
    • は空でない

    日付フィールドの場合、日付ピッカーを使用して日付を指定します。

    日付ピッカー

    日付/時刻フィールドの場合、日時ピッカーを使用して日時を指定します。

    日付/時刻ピッカー

    暗号化モジュールを持つユーザーが等価性をフィルタリングするか、リスト内の値を検索した場合:

    • ユーザーが使用できる暗号化モジュールで暗号化された値のみが返されます。
    • 演算子 [は空] および [は空でない] では、一致するすべてのレコードが返されます。現在のユーザーが使用できない暗号化モジュールで暗号化されたフィールドは空で表示されます。

    ユーザーが暗号化モジュールを持っていない場合、レコードは返されません。

    リストでは [この値で絞り込み] および [この値を除外] オプションがサポートされています。完全一致のみが返されるか、フィルタリングで除外されます。

    注:
    条件フィルターでの暗号化フィールドの追加は、UI ポリシーやビジネスルールなどのスクリプトでサポートされます。

    暗号化フィールドからのデータのエクスポート

    リストまたはフォーム内の暗号化フィールドをファイル形式でエクスポートすると、暗号化モジュールによって暗号化されたフィールドのみが、エクスポートされたドキュメントに表示されます。使用する暗号化モジュールは、現在のユーザーが使用できる必要があります。

    リストビューからの暗号化データのエクスポートを無効にするには、glide.encryption.export_encrypted_data.allowed システムプロパティを追加して、値を false に設定します。

    システムテーブルの暗号化

    Column Level Encryption は現在、システムテーブル (sys_ で始まるテーブル) のフィールドと添付ファイルの暗号化をサポートしていません。