キーワード ディクショナリの作成

Office 365 のデータ損失防止 (DLP) ポリシーでは、機密情報の識別、監視、保護を行うことができます。機密情報の識別には、特に汎用コンテンツ (医療関連の通信など) または不適切な言語や露骨な表現を識別するときに、キーワードを検索する必要がある場合があります。機密情報の種類でキーワード リストを作成することができますが、キーワード リストにはサイズの制限があり、リストの作成や編集を行うには、XML を変更する必要があります。キーワード ディクショナリでは、簡単なキーワードの管理を、ディクショナリごとに最大 100,000 語をサポートする大きなスケールで提供します。

キーワード ディクショナリを作成する基本的な手順

ディクショナリのキーワードは、一般的にはファイル (.csv または .txt リストなど)、コマンドレットに直接入力するリスト、または既存のディクショナリなど、さまざまなソースから作成することができます。キーワード ディクショナリを作成する場合、次の同じ基本手順に従います。

  1. セキュリティ/コンプライアンス センターの PowerShell に接続する - このトピックを参照してください。

  2. 意図したソースからキーワードを定義または読み込む - キーワード ディクショナリを作成するコマンドレットは、キーワードのコンマ区切りのリストを受け入れるため、この手順はキーワードの作成元によって少し異なります。

  3. キーワードをエンコードする - 読み込まれると、キーワードはインポートされる前にバイト配列に変換されます。

  4. ディクショナリを作成する- 名前と説明を選択し、ディクショナリを作成します。

コンマ区切りのリストからキーワード ディクショナリを作成する

コマンドレットにインラインでキーワード リストを定義することもできます。この方法を示すために、この例では医療用語のキーワード ディクショナリを作成します。最初に、セキュリティ/コンプライアンス センターの PowerShell に接続する必要があります。次に、このコマンドを実行して、キーワードの一覧を定義します。

$keywords = "Aarskog's syndrome, Abandonment, Abasia, Abderhalden-Kaufmann-Lignac, Abdominalgia, Abduction contracture, Abetalipo proteinemia, Abiotrophy, Ablatio, ablation, Ablepharia, Abocclusion, Abolition, Aborter, Abortion, Abortus, Aboulomania, Abrami's disease, Abramo"

ディクショナリを作成するには、このコマンドを実行して、キーワードをバイト配列としてエンコードする必要があります。

$encodedKeywords = [system.Text.Encoding]::UTF8.GetBytes($keywords)

ここで、このコマンドを実行して、キーワードを作成できます。

New-DlpKeywordDictionary -Name "Diseases" -Description "Names of diseases and injuries from ICD-10-CM lexicon" -FileData $encodedKeywords 

ディクショナリが作成され、ポリシーやカスタムの機密情報の種類で使用する準備ができました。コンテンツを表示するには、このコマンドを実行します。

Get-DlpKeywordDictionary -Name "Diseases"

コマンドの出力は次のようになります。

RunspaceId        : d9a79cc1-66d7-4735-978f-af212b80b2bc
Identity          : 84d97c1a-2d7a-4589-9092-940ac037cb15
Name              : Diseases
Description       : Names of diseases and injuries from ICD-10-CM lexicon
KeywordDictionary : aarskog's syndrome, abandonment, abasia, abderhalden-kaufmann-lignac, abdominalgia, abduction contracture,
                    abetalipoproteinemia, abiotrophy, ablatio, ablation, ablepharia, abocclusion, abolition, aborter, abortion, abortus,
                    aboulomania, abrami's disease
IsValid           : True
ObjectState       : Unchanged

ファイルからキーワード ディクショナリを作成する

大きなディクショナリを作成する場合、それはファイルからのキーワードや他のソースからエクスポートされたリストを使用するためであることが多いです。この場合、外部メールの画面に対する不適切な言語のリストを含めて、キーワード ディクショナリを作成します。最初に、セキュリティ/コンプライアンス センターの PowerShell に接続する必要があります。

Get-Content コマンドレットを使用して、ファイルをインポートします (Import-CSV は最初の行を列見出しとして処理するため、Get-Content を使用します)。

$csv = get-Content "C:\my path\InappropriateTerms.csv"

次のコマンドを実行して、コンマで区切ってキーワードを結合し、キーワード ディクショナリを作成するときに使用するバイト配列に変換します。

$keywords = $csv -Join ","
$encodedKeywords = [system.Text.Encoding]::UTF8.GetBytes($keywords)
New-DlpKeywordDictionary -Name "Inappropriate Language" -Description "Unprofessional and inappropriate terminology" -FileData $encodedKeywords

既存のキーワード ディクショナリを変更する

キーワード ディクショナリのいずれかでキーワードを変更したり、組み込みのディクショナリのいずれかを変更したりする必要がある場合があります。この例では、PowerShell で用語を変更し、ローカルのエディターで用語を変更できる場所に用語を保存し、その場で前の用語を更新します。最初に、ディクショナリ オブジェクトを取得します。

$dict = Get-DlpKeywordDictionary -Name "Diseases"

$dic を印刷すると、さまざまな変数が表示されます。キーワード自体はバックエンドのオブジェクトに保存されますが、$dict.KeywordDictionary にはその文字列表現が含まれ、ディクショナリを変更するために使用します。ディクショナリを変更する前に、.split(‘,’) メソッドを使用して、用語の文字列を配列に戻す必要があります。使用するキーワードだけを残し、.trim() メソッドでキーワード間の不要なスペースを取り除きます。

$terms = $dict.KeywordDictionary.split(',').trim()

ディクショナリから一部の用語を削除します。例のディクショナリには少ししかキーワードがないため、ディクショナリのエクスポートとメモ帳での編集に簡単にスキップできますが、一般にディクショナリには大量のテキストが含まれるため、PowerShell で簡単に編集できる方法を最初に説明します。

最後の手順で、キーワードを配列に保存しました。配列から項目を削除する方法はいくつかありますが、簡単な方法として、ディクショナリから削除する用語の配列を作成して、ディクショナリの用語のみを、削除する用語のリストに含まれていない配列にコピーします。

コマンド $terms を実行して、現在の用語のリストを表示します。コマンドの出力は次のようになります。

aarskog's syndrome
abandonment
abasia
abderhalden-kaufmann-lignac
abdominalgia
abduction contracture
abetalipoproteinemia
abiotrophy
ablatio
ablation
ablepharia
abocclusion
abolition
aborter
abortion
abortus
aboulomania
abrami's disease

このコマンドを実行して、削除する用語を指定します。

$termsToRemove = @('abandonment', 'ablatio')

このコマンドを実行して、実際にリストから用語を削除します。

$updatedTerms = $terms | Where-Object{ $_ -notin $termsToRemove }

コマンド $updatedTerms を実行して、更新された用語のリストを表示します。コマンドの出力は次のようになります (指定された用語が削除されています)。

aarskog's syndrome
abasia
abderhalden-kaufmann-lignac
abdominalgia
abduction contracture
abetalipo proteinemia
abiotrophy
ablation
ablepharia
abocclusion
abolition
aborter
abortion
abortus
aboulomania
abrami's disease

ローカルにディクショナリを保存し、さらにいくつかの用語を追加します。PowerShell でここから用語を追加できますが、Unicode エンコードで保存され、BOM を含んでいることを確認するには、引き続きファイルをローカルにエクスポートする必要があります。

次を実行して、ローカルにディクショナリを保存します。

Set-Content $updatedTerms -Path "C:\myPath\terms.txt"

単純にファイルを開き、追加の用語を追加して、Unicode エンコード (UTF-16) で保存します。更新された用語をアップロードして、ディクショナリをその場で更新します。

PS> Set-DlpKeywordDictionary -Identity "Diseases" -FileData (Get-Content -Path "C:myPath\terms.txt" -Encoding Byte -ReadCount 0)

ディクショナリはその場で更新されます。Identity フィールドは、ディクショナリの名前を受け取ることに注意してください。また、set- コマンドレットを使用してディクショナリの名前も変更するには、上述の内容に新しいディクショナリ名と共に -Name パラメーターを追加する必要があるだけです。

カスタムの機密情報の種類と DLP ポリシーでキーワード ディクショナリを使用する

キーワード ディクショナリは、カスタムの機密情報の種類に一致する要件の一部として、または機密情報の種類自体として使用できます。どちらも、カスタムの機密情報の種類を作成する必要があります。リンク先の記事の手順に従って、機密情報の種類を作成します。XML がある場合は、それを使用するディクショナリの GUID 識別子が必要になります。

<Entity id="9e5382d0-1b6a-42fd-820e-44e0d3b15b6e" patternsProximity="300" recommendedConfidence="75">
	<Pattern confidenceLevel="75">
		<IdMatch idRef=". . ."/>
	</Pattern>
</Entity>

ディクショナリの ID を取得するには、このコマンドを実行して、Identity プロパティの値をコピーします。

Get-DlpKeywordDictionary -Name "Diseases"

コマンドの出力は次のようになります。

RunspaceId        : 138e55e7-ea1e-4f7a-b824-79f2c4252255
Identity          : 8d2d44b0-91f4-41f2-94e0-21c1c5b5fc9f
Name              : Diseases
Description       : Names of diseases and injuries from ICD-10-CM lexicon
KeywordDictionary : aarskog's syndrome, abandonment, abasia, abderhalden-kaufmann-lignac, abdominalgia, abduction contracture, abetalipo
                    proteinemia, abiotrophy, ablatio, ablation, ablepharia, abocclusion, abolition, aborter, abortion, abortus, aboulomania,
                    abrami's disease, abramo
IsValid           : True
ObjectState       : Unchanged

カスタムの機密情報の種類の XML に ID を貼り付けて、アップロードします。ディクショナリが機密情報の種類のリストに表示され、一致する必要があるキーワード数を指定して、ポリシーで直接ディクショナリを使用できます。

<Entity id="d333c6c2-5f4c-4131-9433-db3ef72a89e8" patternsProximity="300" recommendedConfidence="85">
      <Pattern confidenceLevel="85">
        <IdMatch idRef="8d2d44b0-91f4-41f2-94e0-21c1c5b5fc9f" />
      </Pattern>
    </Entity>
    <LocalizedStrings>
      <Resource idRef="d333c6c2-5f4c-4131-9433-db3ef72a89e8">
        <Name default="true" langcode="en-us">Diseases</Name>
        <Description default="true" langcode="en-us">Detects various diseases</Description>
      </Resource>
    </LocalizedStrings>
スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×