コンテンツにスキップ

最初のプレイブックを作成する🔗

以下は、Secureworks® Taegis™ XDR テンプレートエディタを使用して「Hello World」テンプレートを作成する手順です。

注意

このページで作成するテンプレートは、RequestBin Demoコネクターを使用します。その作成手順は最初のコネクターの定義に記載されています。先にこのカスタムコネクターを作成してください。

  1. ログインしてXDRにアクセスします。

  2. Taegis Menuから自動化→プレイブックに移動し、テンプレートタブを選択します。

  3. 右側のアクションプルダウンメニューからテンプレートを選択し、新しいテンプレートの作成を選びます。

  4. テンプレートの名前を定義します。この例では Hello World とします。

    ヒント

    名前フィールドの外側をクリックすると、その値がテンプレートに保存されます。

  5. 必要なテンプレート入力値を定義します。これらの値は、このテンプレートを使用したプレイブックの設定時や実行時に提供されます。入力値を定義するには、エディタの入力 & 出力タブを選択します。

    テンプレート入力値はYAML形式のJSONスキーマとして定義します。この例では、configuration という入力オブジェクトと、userId という文字列入力変数を定義します。入力値は次のようになります。

    inputs:
      type: object
      properties:
        configuration:
          type: object
          properties:
            userId:
              type: string
              title: User ID
    
  6. このプレイブックで生成される出力値を定義します。

    テンプレート出力値はyaml形式のJSONスキーマとして定義します。この例では、result という単一の文字列出力を定義します。出力値は次のようになります。

    outputs:
      type: object
      properties:
        result:
          type: string
    
  7. 入力値と出力値の両方が入力 & 出力タブに表示されるはずです。全体の値は次のようになります。

    inputs:
      type: object
      properties:
        configuration:
          type: object
          properties:
            userId:
              type: string
              title: User ID
    outputs:
      type: object
      properties:
        result:
          type: string
    
  8. エディタのDSLタブに移動して、テンプレート内のタスクを定義します。タスクは最初から最後まで順番に1つずつ実行されます。最初のタスクでは、このタイプのタスクを示すためにいくつかの変数を設定します。

  9. タスクの名前を定義して新しいタスクを追加します。

    - name: setup

  10. タスクのタイプを定義します。変数を設定するには、タスクタイプに let を使用します。

    - name: setup
      let:
    
  11. let タスクでは、1つまたは複数の変数や、複雑なデータ構造(マップやリスト)を定義できます。この例では、status という単一の変数と、started というハードコードされた値を設定します。

    - name: setup
      let:
        status: 'started'
    

    注意

    値をシングルクォートで囲むことで、処理エンジンにその値が変数ではなくプレーンテキストとして扱うよう指示します。

  12. RequestBin DemoコネクターのPostDataアクティビティ(関数)を実行します。このアクティビティは2つの入力値、userIdstatus を必要とします。

    • userId はテンプレート入力値から取得します。
    • status は前のタスクでハードコードされた started から取得します。
  13. タスクの名前を定義して新しいタスクを追加します。

    - name: post_data
    
  14. タスクのタイプを定義します。コネクター関数を呼び出すには、タスクタイプに action を使用します。

    - name: post_data
      action: RequestBin_Demo.PostData
    
  15. このアクティビティが必要とする入力値を定義します。

    - name: post_data
      action: RequestBin_Demo.PostData
      inputs:
        userId: inputs.configuration.userId
        status: setup.variables.status
    

    このタスクの入力値は、2つの異なる場所から変数を参照しています。inputs.configuration.userId はこのテンプレートで定義した入力フィールドです。setup.variables.status はテンプレートの最初のタスクで設定した変数です。変数へのパスは <タスク名>.variables.<変数名> という形式です。

  16. テンプレートが生成する出力値を定義します。テンプレート出力構造はすでに定義されていますが、ここで値を設定する必要があります。テンプレート出力値を設定するには、タスクと同じ階層でoutputsオブジェクトを定義します。

  17. テンプレート出力構造で、result という単一の出力フィールドに文字列値を設定します。この値には、post_data タスクの出力(boolean型)を使います。文字列値にするために式を使う必要があります。

    outputs:
      result: has(post_data, outputs.result) && post_data.outputs.result ? 'success' : 'failure'
    

    この式は、has() マクロを使って post_data タスクがoutputsでresult値を生成したかどうかを判定します。生成されていれば、result変数に割り当てられた値を確認します。result値が true なら success を、そうでなければ failure を返します。

    DSLタブの全体の値は次のようになります。

    name: Hello_World
    tasks:
      - name: setup
        let:
          status: 'started'
      - name: post_data
        action: RequestBin_Demo.PostData
        inputs:
          userId: inputs.configuration.userId
          status: setup.variables.status
    outputs:
      result: has(post_data, outputs.result) && post_data.outputs.result ? 'success' : 'failure'
    
  18. これはコネクターアクションを呼び出すタスクなので、このテンプレートで必要なコネクターを要件として定義する必要があります。そのために、エディタのコネクタータブに移動します。

  19. コネクタータブで、このテンプレートが必要とするコネクターのIDリストを定義します。この例では、必要なコネクターは RequestBin_Demo のみです。

  20. 新しいタブでTaegisポータルに移動し、自動化 → 接続 → コネクターライブラリにアクセスします。RequestBin コネクターを検索し、RequestBin_Demo コネクターカードを選択して開きます。

  21. コネクターIDのコピーを選択してコネクターのIDをコピーします。

  22. テンプレートエディタに戻り、コネクターIDをコネクターリストに追加します。

    connectors:
      - id: Q29ubmVjdG9yOjQzMWI5OGYyLWVlMjMtNGM0OS05MGRiLTEzYmI4YTk5ODY4Yg==
    
  23. テンプレートを保存します。テンプレートを下書きとして保存するには、名前を付けて保存を選択し、必要な項目を入力します。本番環境での利用を推奨する公開バージョンとして保存するには、公開を選択します。