Cloudflare
このドキュメントでは、Cloudflare と Google Security Operations を統合する方法について説明します。
プロダクトのユースケース
エンティティの拡充を実行する
Google Security Operations で Cloudflare インテグレーションを構成する
Google SecOps で統合を構成する方法について詳しくは、統合を構成するをご覧ください。
統合のパラメータ
次のパラメータを使用して統合を構成します。
| パラメータの表示名 | 種類 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| API ルート | 文字列 | https://api.cloudflare.com |
○ | Cloudflare インスタンスの API ルート。 |
| API トークン | パスワード | なし | ○ | Cloudflare インスタンスの API トークン。 |
| Account Name | 文字列 | なし | ○ | 統合で使用する必要があるアカウントの名前。 |
| SSL を確認する | チェックボックス | オン | × | 有効にすると、Cloudflare サーバーへの接続用の SSL 証明書が有効であることを確認します。 |
トークンを構成する方法
- [Profile Settings] に移動し、[API Tokens] をクリックします。
- [Create Token > Create Custom Token] に移動し、次の権限を選択します。
| アカウント | アカウント WAF | 読み取り |
| アカウント | ルール ポリシー | 読み取り |
| アカウント | アカウント フィルタリスト | 編集 |
| アカウント | アカウントのファイアウォール アクセス | 編集 |
| アカウント | DNS ファイアウォール | 読み取り |
| アカウント | アカウント設定 | 読み取り |
| ゾーン | ゾーン WAF | 編集 |
| ゾーン | ゾーンの設定 | 読み取り |
| ゾーン | ゾーン | 読み取り |
| ゾーン | ログ | 読み取り |
| ゾーン | ファイアウォール サービス | 編集 |
| ゾーン | ファイアウォール サービス | 読み取り |
| ゾーン | アナリティクス | 読み取り |

操作
ルールリストに IP を追加
説明
Cloudflare のルールリストに IP アドレスを追加します。サポートされているエンティティ: IP アドレス。
パラメータ
| パラメータの表示名 | 種類 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| ルール名 | 文字列 | なし | ○ | ルールリスト アイテムを追加するルールリストの名前を指定します。 |
| 説明 | 文字列 | なし | × | 新しく追加されたルールリスト アイテムの説明を指定します。 |
実行
このアクションは IP アドレス エンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
"result": {
"operation_id": "f16b978552ca49f88b36fe628de31142"
},
"success": true,
"errors": [],
"messages": []
}
Case Wall
| 結果のタイプ | 値 / 説明 | 種類 |
|---|---|---|
| 出力メッセージ * | アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。 1 つのエンティティについて 200 ステータス コードが報告された場合(is_success=true): 「次のエンティティが Cloudflare の {name} ルールリストに正常に追加されました: {entity.identifier}。」 1 つのエンティティで成功しなかった場合(is_success=true): 「Cloudflare の {name} ルールリストに次のエンティティを追加できませんでした: {entity.identifier}。」 すべてで成功しなかった場合(is_success=false): 「指定されたエンティティは {name} ルールリストに追加されませんでした。」 アクションが失敗し、ハンドブックの実行が停止します。 認証情報の誤り、サーバーへの接続がないなどの致命的なエラーが報告された場合: 「アクション「ルールリストに IP を追加」の実行中にエラーが発生しました」。理由: {0}」.format(error.Stacktrace) リストが見つからない場合: 「"ルールリストに IP を追加"という操作の実行中にエラーが発生しました。理由: ルールリスト {name} が Cloudflare で見つかりませんでした。 リストが有効な種類でない場合: 「アクション「ルールリストに IP を追加」の実行エラー。理由: ルールリスト {name} のタイプが「IP」ではありません。」 |
全般 |
ルールリストに URL を追加
説明
Cloudflare のルールリストに URL を追加します。サポートされているエンティティ: URL。
パラメータ
| パラメータの表示名 | 種類 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| ルール名 | 文字列 | なし | ○ | ルールリスト アイテムを追加するルールリストの名前を指定します。 |
| 移行元の URL | 文字列 | なし | ○ | ルールリスト アイテムの送信元 URL を指定します。 |
| 説明 | 文字列 | なし | × | 新しく追加されたルールリスト アイテムの説明を指定します。 |
| ステータス コード | DDL | 301 有効な値:
|
× | ルールリスト アイテムのステータスを指定します。 |
| クエリ文字列を保持 | チェックボックス | オフ | × | 有効にすると、ルールリスト アイテムでクエリ文字列が保持されます。 |
| サブドメインを含める | チェックボックス | オフ | × | 有効にすると、ルールリスト アイテムにサブドメインが含まれます。 |
| サブパス マッチング | チェックボックス | オフ | × | 有効にすると、ルールリスト アイテムがサブパスと一致します。 |
| パス接尾辞を保持 | チェックボックス | オフ | × | 有効にすると、ルールリスト アイテムはパス接尾辞を保持します。 |
実行
このアクションは IP アドレス エンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
"result": {
"operation_id": "f16b978552ca49f88b36fe628de31142"
},
"success": true,
"errors": [],
"messages": []
}
Case Wall
| 結果のタイプ | 値 / 説明 | 種類 |
|---|---|---|
| 出力メッセージ * | アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。 1 つのエンティティについて 200 ステータス コードが報告された場合(is_success=true): 「次のエンティティが Cloudflare の {name} ルールリストに正常に追加されました: {entity.identifier}。」 1 つのエンティティで成功しなかった場合(is_success=true): 「Cloudflare の {name} ルールリストに次のエンティティを追加できませんでした: {entity.identifier}。」 すべてのエンティティで成功しなかった場合(is_success=false): 「指定されたエンティティは {name} ルールリストに追加されませんでした。」 アクションが失敗し、ハンドブックの実行が停止します。 認証情報の誤り、サーバーへの接続がないなどの致命的なエラーが報告された場合: 「アクション「ルールリストに URL を追加」の実行エラー。理由: {0}」.format(error.Stacktrace) リストが見つからない場合: 「"ルールリストに URL を追加" という操作の実行中にエラーが発生しました。理由: ルールリスト {name} が Cloudflare で見つかりませんでした。 リストが有効な種類でない場合: 「アクション「ルールリストに URL を追加」の実行エラー。理由: ルールリスト {name} のタイプが「Redirect」ではありません。 |
全般 |
ファイアウォール ルールの作成
説明
Cloudflare でファイアウォール ルールを作成します。
パラメータ
| パラメータの表示名 | 種類 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| ゾーン名 | 文字列 | なし | ○ | ファイアウォール ルールを含むゾーンの名前を指定します。 |
| 名前 | 文字列 | なし | × | ファイアウォール ルールの名前を指定します。 |
| アクション | DDL | ブロック 有効な値:
|
× | ファイアウォール ルールのアクションを指定します。 [ブロック] を選択した場合は、[プロダクト] パラメータに値を指定する必要があります。 |
| 式 | 文字列 | なし | ○ | ファイアウォール ルールの式を指定します。 |
| プロダクト | CSV | なし | × | ファイアウォール ルールのプロダクトのカンマ区切りのリストを指定します。 注: このパラメータは、[アクション] パラメータに [バイパス] が選択されている場合にのみ必須です。 有効な値: zoneLockdown、uaBlock、bic、hot、securityLevel、rateLimit、waf |
| 優先度 | Integer | なし | × | ファイアウォール ルールの優先度を指定します。 |
| 参照タグ | 文字列 | なし | × | ファイアウォール ルールの参照タグを指定します。 注: 最大 50 文字まで入力できます。 |
実行
このアクションはエンティティに対しては実行されません。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
{
"id": "b520c154bdeb4fe2a1f647b2c6b35829",
"paused": false,
"description": "Blocks traffic identified during investigation for MIR-31",
"action": "block",
"priority": 50,
"filter": {
"id": "fc6dfad848c24a42ae5be0114db09fb9",
"expression": "(ip.geoip.continent eq \"ASIA\")",
"paused": false
},
"created_on": "2022-07-25T11:19:22Z",
"modified_on": "2022-07-25T11:19:22Z",
"index": 0
}
}
Case Wall
| 結果のタイプ | 値 / 説明 | 種類 |
|---|---|---|
| 出力メッセージ * | アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。 200 ステータス コードが報告された場合(is_success=true): 「Cloudflare のゾーン「{zone_name}」に新しいファイアウォール ルールが正常に作成されました。」 アクションが失敗し、ハンドブックの実行が停止します。 間違った認証情報、サーバーへの接続なし、その他など、致命的なエラーが報告された場合:「アクション「ファイアウォール ルールの作成」の実行エラー。理由: {0}」.format(error.Stacktrace) エラーリストが空でない場合: 「アクション「ファイアウォール ルールの作成」の実行中にエラーが発生しました。理由: {0}」.format(errors/message) ゾーンが見つからない場合: 「"ファイアウォール ルールの作成"という操作の実行中にエラーが発生しました。理由: ゾーン {zone_name} が Cloudflare で見つかりませんでした。 |
全般 |
ルールリストを作成する
説明
Cloudflare でルールリストを作成します。
パラメータ
| パラメータの表示名 | 種類 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| 名前 | 文字列 | なし | ○ | ルールリストの名前を指定します。 |
| タイプ | DDL | IP アドレス 有効な値:
|
× | ルールリストのタイプを指定します。 |
| 説明 | 文字列 | なし | × | ルールリストの説明を指定します。 |
実行
このアクションはエンティティに対しては実行されません。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
"id": "d19589d629f140c0b961c467feadf99d",
"name": "123",
"kind": "ip",
"num_items": 0,
"description": "description",
"num_referencing_filters": 0,
"created_on": "2022-07-25T12:13:46Z",
"modified_on": "2022-07-25T12:13:46Z"
}
Case Wall
| 結果のタイプ | 値 / 説明 | 種類 |
|---|---|---|
| 出力メッセージ * | アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。 200 ステータス コードが報告された場合(is_success = true): 「Cloudflare でルールリストが正常に作成されました。」 アクションが失敗し、ハンドブックの実行が停止します。 認証情報の誤り、サーバーへの接続がないなどの致命的なエラーが報告された場合: 「操作「ルールリストの作成」の実行中にエラーが発生しました」。理由: {0}」.format(error.Stacktrace) エラーリストが空でない場合: 「アクション「ルールリストの作成」の実行中にエラーが発生しました。理由: {0}」.format(errors/message) |
全般 |
ファイアウォール ルールの一覧を取得する
説明
Cloudflare で使用可能なファイアウォール ルールを一覧表示します。
パラメータ
| パラメータの表示名 | 種類 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| ゾーン名 | 文字列 | なし | ○ | ファイアウォール ルールを含むゾーンの名前を指定します。 |
| フィルタ キー | DDL | 1 つ選択 有効な値:
|
× | {商品アイテム タイプ} のフィルタリングに使用する必要があるキーを指定します。 |
| フィルタ ロジック | DDL | 1 つ選択 有効な値:
|
× | 適用するフィルタ ロジックを指定します。 フィルタリング ロジックは、「フィルタ キー」パラメータで指定される値に基づいています。 |
| フィルタ値 | 文字列 | なし | いいえ | フィルタで使用する値を指定します。 「Equal」が選択されている場合、アクションは結果から完全一致を探します。 「Contains」が選択されている場合、アクションはその部分文字列を含む結果を検索します。 このパラメータに何も指定しない場合、フィルタは適用されません。 フィルタリング ロジックは、「フィルタ キー」パラメータで指定される値に基づいています。 |
| 返されるレコードの最大数 | 整数 | 50 | × | 返すレコードの数を指定します。 何も指定しないと、アクションで 50 件のレコードが返されます。 |
実行
このアクションはエンティティに対しては実行されません。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
"id": "55ec8db30f9e4640b5d0d13cff6b5429",
"paused": false,
"description": "rulle2",
"action": "allow",
"filter": {
"id": "2bb05df8c4f547bd9792d8dc38a86b81",
"expression": "(ip.geoip.country eq \"BG\")",
"paused": false
},
"created_on": "2022-07-05T13:53:39Z",
"modified_on": "2022-07-05T13:53:39Z"
}
Case Wall
| 結果のタイプ | 値 / 説明 | 種類 |
|---|---|---|
| 出力メッセージ * | アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。 データが利用可能な場合(is_success=true):「{product name} で指定された条件に該当する {item name} が正常に見つかりました。」 データが利用できない場合(is_success=false):「{product name} で指定された条件に該当する {item name} が見つかりませんでした。」 「フィルタ値」パラメータが空の場合(is_success=true): 「パラメータ「フィルタ値」の値が空であるため、フィルタは適用されませんでした。」 アクションが失敗し、ハンドブックの実行が停止します。 「フィルタ キー」パラメータが「1 つ選択」に設定され、「フィルタ ロジック」パラメータが「Equal」または「Contains」に設定されている場合: 「アクション「{アクション名}」の実行中にエラーが発生しました。理由: 「フィルタキー」パラメータからフィールドを選択する必要があります。」 「返される最大レコード数」パラメータに無効な値が指定されている場合:「アクション「{action name}」の実行エラー。理由: 「返さえる最大レコード数」に無効な値が指定されました。正の数を指定してください。」 間違った認証情報、サーバーへの接続なし、その他など、致命的なエラーが報告された場合:「アクション「{action name}」の実行エラー。理由: {0}」.format(error.Stacktrace) |
一般 |
| Case Wall テーブル | テーブル名: Available {アイテム グループ} テーブル列: {fields} |
全般 |
Ping
説明
[Google Security Operations Marketplace] タブの統合構成ページで提供されているパラメータを使用して、Cloudflare への接続をテストします。
パラメータ
なし
実行
このアクションは Google SecOps スコープ エンティティを使用せず、必須入力パラメータもありません。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
N/A
Case Wall
| 結果のタイプ | 値 / 説明 | 種類 |
|---|---|---|
| 出力メッセージ * | アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。 成功した場合:「指定された接続パラメータを使用して SpyCloud サーバーに正常に接続されました。」 アクションが失敗し、ハンドブックの実行が停止します。 成功しなかった場合:「SpyCloud サーバーへの接続に失敗しました。エラーは {0}」.format(exception.stacktrace) アカウントが見つからない場合: 「Cloudflare サーバーへの接続に失敗しました。無効なアカウント名が指定されました。スペルを確認してください。」 |
全般 |
ファイアウォール ルールを更新する
説明
Cloudflare でファイアウォール ルールを更新します。
実行
このアクションはエンティティに対しては実行されません。
パラメータ
| パラメータの表示名 | 種類 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| ルール名 | 文字列 | なし | ○ | 更新が必要なルールの名前を指定します。 |
| ゾーン名 | 文字列 | なし | ○ | ファイアウォール ルールを含むゾーンの名前を指定します。 |
| アクション | DDL | ブロック 有効な値:
|
× | ファイアウォール ルールのアクションを指定します。 [ブロック] を選択した場合は、[プロダクト] パラメータに値を指定する必要があります。 |
| 式 | 文字列 | なし | ○ | ファイアウォール ルールの式を指定します。 |
| プロダクト | CSV | なし | × | ファイアウォール ルールのプロダクトのカンマ区切りのリストを指定します。 注: このパラメータは、[アクション] パラメータに [バイパス] が選択されている場合にのみ必須です。 有効な値: zoneLockdown、uaBlock、bic、hot、securityLevel、rateLimit、waf |
| 優先度 | Integer | なし | × | ファイアウォール ルールの優先度を指定します。 |
| 参照タグ | 文字列 | なし | × | ファイアウォール ルールの参照タグを指定します。 注: 最大 50 文字まで入力できます。 |
実行
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
{
"id": "b520c154bdeb4fe2a1f647b2c6b35829",
"paused": false,
"description": "Blocks traffic identified during investigation for MIR-31",
"action": "block",
"priority": 50,
"filter": {
"id": "fc6dfad848c24a42ae5be0114db09fb9",
"expression": "(ip.geoip.continent eq \"ASIA\")",
"paused": false
},
"created_on": "2022-07-25T11:19:22Z",
"modified_on": "2022-07-25T11:19:22Z",
"index": 0
}
}
Case Wall
| 結果のタイプ | 値 / 説明 | 種類 |
|---|---|---|
| 出力メッセージ * | アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。 200 ステータス コードが報告された場合(is_success=true): 「Cloudflare の「{zone_name}」ゾーンでファイアウォール ルールが正常に更新されました。」 アクションが失敗し、ハンドブックの実行が停止します。 間違った認証情報、サーバーへの接続なし、その他など、致命的なエラーが報告された場合:「アクション「ファイアウォール ルールの更新」の実行エラー。理由: {0}」.format(error.Stacktrace) エラーリストが空でない場合: 「アクション「ファイアウォール ルールを更新」の実行エラー。理由: {0}」.format(errors/message) ゾーンが見つからない場合: 「"ファイアウォール ルールの更新"という操作の実行中にエラーが発生しました。理由: ゾーン {zone_name} が Cloudflare で見つかりませんでした。 |
全般 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。