Webhook の構成

Webhooks を使用すると、 IBM Cloud® Internet Services は、 アカウント内で特定のイベントが発生した際に、外部システムへリアルタイムで通知を送信することができます。 Webhookをアラートポリシーに統合することで、サードパーティ・サービスの応答を自動化したり、ワークフローをトリガーしたりすることができます。

IBM Cloud コンソール、CLI、または API を使用して Webhook を設定できます。

アラートとウェブフックはエンタープライズプランでのみご利用いただけます。

コンソールでのWebhookの設定

コンソールでWebhookを設定するには、 アカウント ページに移動し、「 アラート 」タブを選択してください。 「アラート」セクションで、Webhook タブを選択します。

コンソールでのWebhookの作成

  1. 「作成」 をクリックします。
  2. Webhook の名前を入力します。
  3. Webhook URL を入力します。 この URL は更新できません。変更したい場合は、Webhookを削除してから再作成する必要があります。
  4. Webhook 秘密を入力します。 シークレットは更新できません。変更したい場合は、Webhookを削除してから再作成する必要があります。

コンソールでのウェブフックの編集

コンソールでWebhookを編集するには、更新したいWebhookの名前の横にある「編集」アイコンをクリックします。 編集できるのは、ウェブフックの名前のみです。 Webhookを変更する必要がある場合は、編集するのではなく、そのWebhookを削除してから再作成してください。

コンソールでのウェブフックの削除

コンソールでウェブフックを削除するには、削除したいウェブフックのアクションメニューのアクションアイコンを クリックし、 削除を選択します。 確認ウィンドウで削除を選択します。

CLI からの Webhook の設定

CLI から Webhook を作成する

CLI から Webhook を作成するには、次のコマンドを実行します

ibmcloud cis alert-webhook-create --name NAME --url URL [--secret SECRET] [-i, --instance INSTANCE] [--output FORMAT]

ここで、

  • --name value は Webhook の名前です。
  • --url の値は、アラートが送信された際に呼び出す POST エンドポイントです。
  • --secret value は、Webhook アラートが送信される際に Webhook 認証ヘッダーを通じて渡されるシークレットです。
  • -i, --instance value は、インスタンス名または ID です。 設定されていない場合は、「cis instance-set INSTANCE」で指定されたコンテキストインスタンスが使用されます。
  • --出力値は出力形式を指定します。JSON のみがサポートされます。

CLI からすべての Webhook を一覧表示する

CLI から Webhook を一覧表示するには、次のコマンドを実行してください。

ibmcloud cis alert-webhooks [-i, --instance INSTANCE] [--output FORMAT]

ここで、

  • -i, --instance value は、インスタンス名または ID です。 設定されていない場合は、「cis instance-set INSTANCE」で指定されたコンテキストインスタンスが使用されます。
  • --出力値は出力形式を指定します。JSON のみがサポートされます。

CLI から Webhook の詳細情報を取得する

CLI から Webhook の詳細を取得するには、次のコマンドを実行してください:

ibmcloud cis alert-webhook WEBHOOK_ID [-i, --instance INSTANCE] [--output FORMAT]

ここで、

  • WEBHOOK_ID は、Webhook の ID です。
  • -i, --instance value は、インスタンス名または ID です。 設定されていない場合は、「cis instance-set INSTANCE」で指定されたコンテキストインスタンスが使用されます。
  • --出力値は出力形式を指定します。JSON のみがサポートされます。

CLI から Webhook を更新する

CLI から Webhook を更新するには、次のコマンドを実行してください:

ibmcloud cis alert-webhook-update WEBHOOK_ID [--name NAME] [--url URL] [--secret SECRET] [-i, --instance INSTANCE] [--output FORMAT]

ここで、

  • WEBHOOK_ID は、Webhook の ID です。
  • --name value は Webhook の名前です。
  • --url の値は、アラートが送信された際に呼び出す POST エンドポイントです。
  • --secret value は、Webhook アラートが送信される際に Webhook 認証ヘッダーを通じて渡されるシークレットです。
  • -i, --instance value は、インスタンス名または ID です。 設定されていない場合は、「cis instance-set INSTANCE」で指定されたコンテキストインスタンスが使用されます。
  • --出力値は出力形式を指定します。JSON のみがサポートされます。

CLI から Webhook を削除する

CLI から Webhook を削除するには、次のコマンドを実行します

ibmcloud cis alert-webhook-delete WEBHOOK_ID [-i, --instance INSTANCE] [-f, --force]

ここで、

  • WEBHOOK_ID は、Webhook の ID です。
  • i, --instance value は、インスタンス名または ID です。 設定されていない場合は、「cis instance-set INSTANCE」で指定されたコンテキストインスタンスが使用されます。
  • -f, --force は、確認のプロンプトを出さずに Webhook の削除を試行します。

API を使用した Webhook の設定

これらのメソッドを呼び出すには、1 つ以上の IAM アクセス役割が割り当てられている必要があります。

  • internet-svcs.zones.read
  • internet-svcs.zones.update

アクセス権限を確認するには、**「ユーザー」 > 「名前」 > 「アクセス・ポリシー」**にアクセスします。

API を使用した Webhook の作成

Webhookアラートの作成は、2つのステップで行います。 まず、Webhook を作成してから、受信した応答内の ID を使用してアラートを作成します。

API を使用して Webhook を作成するには、以下の手順に従ってください:

  1. 正しい変数を使用して API 環境をセットアップします。

  2. API コマンドで使用する以下の変数を保存してください:

    • crn: サービス・インスタンスの URL エンコードされた完全な CRN。
    • name: Webhook の名前です。
    • url: Webhook の URL です。
    • secret: Webhook を使用するために必要な、オプションのシークレットまたは API キー。
  3. すべての変数が開始されたら、以下のコマンドを実行してウェブフックを作成します:

    curl -X POST
    https://api.cis.cloud.ibm.com/v1/:crn/alerting/destinations/webhooks
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{"name":"Example
    Webhook","url":"https://hooks.slack.com/services/Ds3fdBFbV/456464Gdd"}'
    

以下の応答が返されます。

{
  "result": {
    "id": "6d16fcab-3e80-44b3-b59b-a3716237832e"
  },
  "success": true,
  "errors": [],
  "messages": []
}

受け取った応答に含まれるIDを使用して、アラートを作成してください:

curl -X POST \
https://api.cis.cloud.ibm.com/v1/:crn/alerting/policies \
  -H 'content-type: application/json' \
  -H 'x-auth-user-token: Bearer xxxxxx' \
  -d '{"name":"Example Policy","enabled":true,"alert_type":"dos_attack_l7","mechanisms":{"email":[{"id":"cistestemail@ibm.com"}],"webhooks": [{"id": "6d16fcab3e8044b3b59ba3716237832e"}]}}'

API を使用してすべての Webhook を一覧表示する

API を使用してすべての Webhook を一覧表示するには、以下の手順に従ってください:

  1. 正しい変数を使用して API 環境をセットアップします。

  2. API コマンドで使用する以下の変数を保存してください:

    • crn: サービス・インスタンスの URL エンコードされた完全な CRN。
  3. すべての変数が開始されたら、Webhook のリストを取得します。

    curl -X GET
    https://api.cis.cloud.ibm.com/v1/:crn/alerting/destinations/webhooks
      -H 'content-type: application/json'
      -H 'accept: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
    

API を使用して Webhook の詳細を取得する

API を使用して Webhook の詳細を取得するには、以下の手順に従ってください:

  1. 正しい変数を使用して API 環境をセットアップします。

  2. API コマンドで使用する以下の変数を保存してください:

    • crn: サービス・インスタンスの URL エンコードされた完全な CRN。
    • webhook_id: アラート Webhook ID。
  3. すべての変数が開始されたら、Webhook の詳細を取得します。

    curl -X GET
    https://api.cis.cloud.ibm.com/v1/:crn/alerting/destinations/webhooks/:webhook_id
      -H 'content-type: application/json'
      -H 'accept: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
    

API を使用して Webhook を更新する

API を使用して Webhook を更新するには、以下の手順に従ってください:

  1. 正しい変数を使用して API 環境をセットアップします。

  2. API コマンドで使用する以下の変数を保存してください:

    • crn: サービス・インスタンスの URL エンコードされた完全な CRN。
    • webhook_id: アラート Webhook ID。
    • name: Webhook の名前です。
    • url: Webhook の URL です。
    • secret: Webhook を使用するために必要な、オプションのシークレットまたは API キー。
  3. すべての変数が開始されたら、Webhook を更新します。

    curl -X PUT
    https://api.cis.cloud.ibm.com/v1/:crn/alerting/destinations/webhooks/:webhook_id
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{"name":"Example Webhook","url":"https://hooks.slack.com/services/Ds3fdBFbV/456464Gdd"}'
    

API を使用して Webhook を削除する

API を使用して Webhook を削除するには、以下の手順に従ってください:

  1. 正しい変数を使用して API 環境をセットアップします。

  2. API コマンドで使用する以下の変数を保存してください:

    • crn: サービス・インスタンスの URL エンコードされた完全な CRN。
    • webhook_id: アラート Webhook ID。
  3. すべての変数が開始されたら、Webhook を削除します。

    curl -X DELETE
    https://api.cis.cloud.ibm.com/v1/:crn/alerting/destinations/webhooks/:webhook_id
      -H 'content-type: application/json'
      -H 'accept: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'