コンテンツ ポリシーは、検査構成と一連のルールを含む再利用可能なリソースです。各ルールは、検査結果に基づく条件を指定します。条件が満たされると、ポリシーは ALLOW または BLOCK の判定を返します。
content.inspect 呼び出しや検査ジョブなどの他の Sensitive Data Protection 検査オペレーションとは異なり、コンテンツ ポリシーは検出結果のリストを返しません。
利点と使用例
コンテンツ ポリシーを使用すると、検出結果のリストではなく判定結果が生成されるため、検査結果にすぐに対応できます。ユースケースの例は次のとおりです。
- クレジット カード番号や個人情報(PII)などの機密情報を含むチャットボットの回答やアップロードを自動的にブロックします。
- Sensitive Data Protection コンテンツ ポリシーを Gemini Enterprise と統合して、センシティブ データを含むコンテンツが使用されないようにします。
- コンテンツに関する即時の同期判定を取得して、組織のデータポリシーを適用します。
- AI モデルのトレーニング データセットで特定の種類のデータを許可するかどうかについての判定を取得します。
始める前に
-
Google Cloud CLI をインストールします。
-
フェデレーション ID(連携 ID)を使用するように gcloud CLI を構成します。
詳細については、連携 ID を使用して gcloud CLI にログインするをご覧ください。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init Data Loss Prevention API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。gcloud services enable dlp.googleapis.com
-
ユーザー アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/dlp.usergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
次のように置き換えます。
PROJECT_ID: プロジェクト ID。USER_IDENTIFIER: ユーザー アカウント。例については、 IAM ポリシーで Workforce プール ユーザーを表すをご覧ください。ROLE: ユーザー アカウントに付与する IAM ロール。
コンテンツ ポリシーを作成する
コンソール
Google Cloud コンソールで、Sensitive Data Protection の [コンテンツ ポリシー] ページに移動します。
プロジェクトを選択します。
[作成] をクリックします。
[Basic Information](基本情報)で、次の操作を行います。
- コンテンツ ポリシーの名前を入力します。
- 省略可。一意のコンテンツ ポリシー ID を入力します。コンテンツ ポリシー ID を入力しない場合、Sensitive Data Protection によって自動的に設定されます。
- コンテンツ ポリシーを保存するリージョンまたはマルチリージョンを選択します。
- [続行] をクリックします。
[検査の構成] で、次の操作を行います。
検出する組み込みまたはカスタムの infoType を選択します。詳細については、Google Cloud コンソールを使用して infoType を管理するをご覧ください。
既存の検査テンプレートを使用して検出を構成するには、[テンプレートからインポート] をクリックし、テンプレートの完全なリソース名を入力します。
省略可。検査ルールセットを追加します。
クリックして手順を表示
検査ルールセットを使用すると、コンテキスト ルールを使用して、組み込みの infoType 検出器とカスタム infoType 検出器の両方をカスタマイズできます。検査ルールの種類は次のとおりです。
- 除外 ルール。誤った検索結果や望ましくない検索結果を除外するのに役立ちます。
- ホットワード ルール。 追加の検索結果を検出するのに役立ちます。
- 調整ルール。検出結果が表示されるコンテキストに基づいて、検出結果の可能性を調整します。
新しいルールセットを追加するには、まず [InfoTypes] セクションで 1 つ以上の組み込みまたはカスタムの infoType 検出器を指定します。ルールセットで変更する(ターゲット infoType)または評価に使用する(コンテキスト infoType)すべての infoType 検出器を選択します。次の手順を行います。
- [ルールセットを追加] をクリックします。
- [対象の infoType を選択] フィールドで、ルールが満たされた場合にルールセットが変更する infoType を選択します。
- [ルールを追加] をクリックすると、[起動ワードルール]、[除外ルール]、[調整ルール] などのオプションを含むメニューが開きます。
起動ワード ルールを作成するには、[起動ワード ルール] を選択します。次の操作を行います。
- [起動ワード] フィールドに、Sensitive Data Protection が検索する正規表現を入力します。
- [キーワードの近接性] メニューで、入力したキーワードが選択した infoType の前後に検出されるかどうかを選択します。
- [infoType からの起動ワードの距離] に、起動ワードと選択した infoType との間のおおよその文字数を入力します。
- [信頼水準の調整] で、一致に固定の可能性レベルを割り当てるか、デフォルトの可能性レベルを一定量増減させるかを選択します。
除外ルールを作成するには、[除外ルール] と、作成する除外ルールのタイプ(正規表現 など)を選択します。次の操作を行います。
- 選択した除外ルールのタイプに応じて、ルールを適用するために検出する必要がある正規表現、フレーズ、起動ワード、コンテキスト infoType を入力します。
- 選択した除外ルールのタイプに応じて、一致タイプまたは画像包含タイプを設定します。
- テキストベースの除外ルールを選択した場合は、次のいずれかの一致タイプを選択します。
- 完全一致: 検出結果は、指定したテキストまたはコンテキスト infoType と完全に一致する必要があります。
- 部分一致: 検出結果の部分文字列が、指定したテキストまたはコンテキスト infoType と一致する必要があります。
- 逆一致: 検出結果が、指定したテキストまたはコンテキスト infoType と一致しないようにします。
- 画像ベースの除外ルールを選択した場合は、ターゲットとコンテキストの infoType 間の必要な空間関係を選択します。たとえば、[Encloses] を選択した場合、ルールを適用するには、コンテキスト検出結果でターゲット検出結果を囲む必要があります。
調整ルールを作成するには、[調整ルール] と調整ルールのタイプ([画像検出結果で調整] など)を選択します。次の操作を行います。
- [コンテキストの infoType] フィールドで、ターゲット検出結果のコンテキストを提供する infoType 検出器を選択します。Sensitive Data Protection では、コンテキスト infoType を使用して、ターゲット infoType を調整する必要があるかどうかを評価します。
- [最小尤度] フィールドで、コンテキスト infoType が調整ルールをトリガーできる最小尤度レベルを選択します。検出されたコンテキスト検出結果の可能性の値がこの値より低い場合、Sensitive Data Protection はターゲット検出結果の可能性を調整しません。
- 画像検出結果の場合は、[画像包含タイプ] フィールドで、ターゲットとコンテキストの infoType 間の必要な空間関係を選択します。たとえば、[Encloses] を選択した場合、ルールを適用するには、コンテキスト検出結果でターゲット検出結果を囲む必要があります。
- [可能性] フィールドで、ターゲット検出結果に割り当てる新しい可能性レベルを選択します。
ルールセットを追加して、スキャン結果をさらに絞り込むことができます。
省略可。検出する検出結果の信頼度のしきい値を設定します。詳細については、一致の可能性をご覧ください。
[続行] をクリックします。
[ポリシー ルール] で、ポリシー ルールを追加して、検査構成で指定した infoType が検出されたときに Sensitive Data Protection が返す判定(許可またはブロック)を指定します。単一のポリシー ルールを追加して、任意の infoType に対して同じ判定を返すことも、複数のポリシー ルールを追加して、異なる infoType に対して異なる判定を返すこともできます。追加するポリシー ルールごとに条件を設定する必要があります。
ポリシー ルールを追加する手順は次のとおりです。
- [ポリシー ルールを追加] をクリックします。
- infoType の検出結果に割り当てる判定([許可] または [ブロック])を選択します。
- [条件を追加] をクリックします。infoType ごとに異なる判定を設定するかどうかに応じて、[条件タイプ] を [すべての infoType] または [特定の infoType] に設定します。
- [特定の infoType] を選択した場合は、Sensitive Data Protection で選択した判定を返すために検出する必要がある infoType を入力します。
- 必要に応じて、ポリシー ルールと対応する条件を追加します。
- [続行] をクリックします。
省略可。[デフォルトのアクション] で、次の状況で適用する判定を指定します。
- サポートされていないファイルに割り当てる判定。詳細については、サポートされているファイル形式とスキャンモードをご覧ください。
- スキャンできないほど大きいサポート対象ファイルに割り当てる判定。
- スキャンできないファイル(破損したファイルや暗号化されたファイルなど)に割り当てる判定。
- スキャンされたコンテンツに一致するルールがない場合に割り当てる判定。
[続行] をクリックします。
省略可。[ロギング構成] で、スキャンするデータに対してコンテンツ ポリシーによって発行された判定を記録するロギングを有効にします。手順は次のとおりです。
- [Log policy execution to BigQuery] を選択します。
- Sensitive Data Protection で結果をロギングする必要がある既存の BigQuery テーブルの詳細を入力します。
[作成] をクリックします。
REST
コンテンツ ポリシーを作成するには、projects.locations.contentPolicies.create メソッドに POST リクエストを送信します。リクエストは、検査構成と、結果に基づいて判定を決定するルールを含む content_policy オブジェクトを定義します。
content_policy オブジェクトには次のプロパティがあります。
{
"contentPolicy": {
"displayName": "DISPLAY_NAME",
"inspectConfig": {
"infoTypes": [
{
"name": "INFOTYPE_DETECTOR"
}
],
"ruleSet": "LIST_OF_RULES"
},
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "INFOTYPE_CONDITION_VERDICT"
}
}
],
"unsupportedFileType": {
"returnVerdict": "UNSUPPORTED_FILE_TYPE_VERDICT"
},
"inputTooLarge": {
"returnVerdict": "INPUT_TOO_LARGE_VERDICT"
},
"failedToScanSupportedFileType": {
"returnVerdict": "FAILED_TO_SCAN_VERDICT"
},
"defaultAction": {
"returnVerdict": "DEFAULT_ACTION_VERDICT"
}
},
"contentPolicyId": "CONTENT_POLICY_ID"
}
次のように置き換えます。
DISPLAY_NAME: 省略可。コンテンツ ポリシーの人が読める形式の名前。INFOTYPE_DETECTOR: 組み込みまたはカスタムの infoType。LIST_OF_RULES: 省略可。スキャン結果を絞り込むための infoType 検出器の変更で定義されている検査ルールのリスト。このコードは、簡潔にするために一部省略されています。コンテンツ ポリシー内のルールセット定義の例については、拡張された例をご覧ください。INFOTYPE_CONDITION_VERDICT: infoType の検出結果に割り当てる判定(ALLOWまたはBLOCK)。UNSUPPORTED_FILE_TYPE_VERDICT: 省略可。サポートされていないファイルに割り当てる判定:ALLOWまたはBLOCK。詳細については、サポートされているファイル形式とスキャンモードをご覧ください。INPUT_TOO_LARGE_VERDICT: 省略可。スキャンするには大きすぎるサポート対象ファイルに割り当てる判定:ALLOWまたはBLOCK。FAILED_TO_SCAN_VERDICT: 省略可。スキャンできないファイル(破損したファイルや暗号化されたファイルなど)に割り当てる判定:ALLOWまたはBLOCK。DEFAULT_ACTION_VERDICT: 省略可。スキャンされたコンテンツに一致するルールがない場合に割り当てる判定:ALLOWまたはBLOCK。CONTENT_POLICY_ID: コンテンツ ポリシーの一意の ID。
コンテンツ ポリシーの詳細を取得する
コンソール
Google Cloud コンソールで、Sensitive Data Protection の [コンテンツ ポリシー] ページに移動します。
プロジェクトを選択します。
表示するコンテンツ ポリシーのリソース名をクリックします。
[詳細] タブで、コンテンツ ポリシーの詳細を表示します。
REST
コンテンツ ポリシーを取得するには、projects.locations.contentPolicies.get メソッドに GET リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
-
REGION: Sensitive Data Protection のリージョン エンドポイントが使用可能なリージョン(us-west2など)。リージョンの完全なリストについては、Sensitive Data Protection のロケーションをご覧ください。 -
PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:example-project)。 -
CONTENT_POLICY_ID: 詳細を取得するコンテンツ ポリシーの ID。
HTTP メソッドと URL:
GET https://dlp.REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/contentPolicies/CONTENT_POLICY_ID
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/example-project/locations/us-west1/contentPolicies/block-credit-cards-policy",
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "LIKELY",
"limits": {}
}
}コンテンツ ポリシーを更新する
コンソール
Google Cloud コンソールで、Sensitive Data Protection の [コンテンツ ポリシー] ページに移動します。
プロジェクトを選択します。
編集するコンテンツ ポリシーのリソース名をクリックします。
[編集] をクリックします。
コンテンツ ポリシーの詳細を編集します。
REST
コンテンツ ポリシーを更新するには、projects.locations.contentPolicies.update メソッドに PATCH リクエストを送信します。リクエストは、更新された content_policy オブジェクトを定義します。
リクエストのデータを使用する前に、次のように置き換えます。
-
REGION: Sensitive Data Protection のリージョン エンドポイントが使用可能なリージョン(us-west2など)。リージョンの完全なリストについては、Sensitive Data Protection のロケーションをご覧ください。 -
PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:example-project)。 -
CONTENT_POLICY_ID: 更新するコンテンツ ポリシーの ID。
HTTP メソッドと URL:
PATCH https://dlp.REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/contentPolicies/CONTENT_POLICY_ID
リクエストの本文(JSON):
{
"contentPolicy": {
"displayName": "displayName",
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "LIKELY"
},
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
]
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/example-project/locations/us-west1/contentPolicies/block-credit-cards-policy",
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "LIKELY",
"limits": {}
}
}REST の例
次の REST の例は、REST API を使用してコンテンツ ポリシーを作成する方法を示しています。
簡単な例
次の例では、可能性が POSSIBLE 以上の CREDIT_CARD_NUMBER の結果を特定するポリシーを作成します。クレジット カード番号が見つかった場合、Sensitive Data Protection は BLOCK の判定を返します。
リクエストのデータを使用する前に、次のように置き換えます。
-
REGION: Sensitive Data Protection のリージョン エンドポイントが使用可能なリージョン(us-west2など)。リージョンの完全なリストについては、Sensitive Data Protection のロケーションをご覧ください。 -
PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:example-project)。
HTTP メソッドと URL:
POST https://dlp.REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/contentPolicies
リクエストの本文(JSON):
{
"contentPolicy": {
"displayName": "displayName",
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "POSSIBLE"
},
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
]
},
"contentPolicyId": "block-credit-cards-policy"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/example-project/locations/us-west1/contentPolicies/block-credit-cards-policy",
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "POSSIBLE",
"limits": {}
}
}展開された例
次の例では、可能性が POSSIBLE 以上の CREDIT_CARD_NUMBER の結果を特定するポリシーを作成します。このルールには、検出結果の近くで単語 credit card が検出された場合に、検出結果の可能性の値を VERY_LIKELY に引き上げる起動ワードルールが含まれています。
- Sensitive Data Protection がクレジット カード番号の可能性があるものを検出すると、
BLOCK判定が返されます。 - スキャンするファイルがサポートされていない、大きすぎる、破損している、暗号化されている、またはスキャンできない場合、Sensitive Data Protection は
BLOCKの判定を返します。 - スキャンされたコンテンツに一致するルールがない場合、Sensitive Data Protection は
ALLOW判定を返します。
リクエストのデータを使用する前に、次のように置き換えます。
-
REGION: Sensitive Data Protection のリージョン エンドポイントが使用可能なリージョン(us-west2など)。リージョンの完全なリストについては、Sensitive Data Protection のロケーションをご覧ください。 -
PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:example-project)。
HTTP メソッドと URL:
POST https://dlp.REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/contentPolicies
リクエストの本文(JSON):
{
"contentPolicy": {
"displayName": "displayName",
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"rules": [
{
"hotwordRule": {
"hotwordRegex": {
"pattern": "credit\\scard"
},
"proximity": {
"windowBefore": 10,
"windowAfter": 10
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}
]
}
]
},
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"unsupportedFileType": {
"returnVerdict": "BLOCK"
},
"inputTooLarge": {
"returnVerdict": "BLOCK"
},
"failedToScanSupportedFileType": {
"returnVerdict": "BLOCK"
},
"defaultAction": {
"returnVerdict": "ALLOW"
}
},
"contentPolicyId": "block-credit-cards-policy"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/example-project/locations/us-west2/contentPolicies/block-credit-cards-policy",
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"limits": {},
"ruleSet": [
{
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"rules": [
{
"hotwordRule": {
"hotwordRegex": {
"pattern": "credit\\scard"
},
"proximity": {
"windowBefore": 10,
"windowAfter": 10
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}
]
}
]
},
"unsupportedFileType": {
"returnVerdict": "BLOCK"
},
"inputTooLarge": {
"returnVerdict": "BLOCK"
},
"failedToScanSupportedFileType": {
"returnVerdict": "BLOCK"
},
"defaultAction": {
"returnVerdict": "ALLOW"
}
}メタデータ ラベルのスキャンを含む例
次の例では、Sensitive Data Protection に、クレジット カード番号とキー MSIP_Label_12345-12345-1234-12345_Enabled を持つメタデータ ラベルをスキャンするよう指示しています。Sensitive Data Protection は、検出された場合、BLOCK 判定を返します。
メタデータ ラベルのスキャンの詳細については、カスタム メタデータ ラベル検出器を作成するをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
-
REGION: Sensitive Data Protection のリージョン エンドポイントが使用可能なリージョン(us-west2など)。リージョンの完全なリストについては、Sensitive Data Protection のロケーションをご覧ください。 -
PROJECT_ID: 実際の Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:example-project)。
HTTP メソッドと URL:
POST https://dlp.REGION.rep.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/contentPolicies
リクエストの本文(JSON):
{
"contentPolicy": {
"displayName": "displayName",
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"customInfoTypes": [
{
"infoType": {
"name": "CUSTOM_MSIP1"
},
"likelihood": "VERY_LIKELY",
"fileLabelInfoType": {
"sensitivityLabel": {
"guid": "12345678-1234-1234-1234-123456789012"
}
}
}
],
"minLikelihood": "POSSIBLE"
},
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
]
},
"contentPolicyId": "block-credit-cards-policy-metadata-scanning"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/example-project/locations/us-west1/contentPolicies/block-credit-cards-policy-metadata-scanning",
"rules": [
{
"conditions": [
{
"infoTypeCondition": {
"anyInfoType": {}
}
}
],
"action": {
"returnVerdict": "BLOCK"
}
}
],
"inspectConfig": {
"infoTypes": [
{
"name": "CREDIT_CARD_NUMBER"
}
],
"minLikelihood": "POSSIBLE",
"limits": {},
"customInfoTypes": [
{
"infoType": {
"name": "CUSTOM_MSIP1"
},
"likelihood": "VERY_LIKELY",
"fileLabelInfoType": {
"sensitivityLabel": {
"guid": "12345678-1234-1234-1234-123456789012"
}
}
}
]
}
}