Webhook の構成
Webhooks を使用すると、 IBM Cloud® Internet Services は、 アカウント内で特定のイベントが発生した際に、外部システムへリアルタイムで通知を送信することができます。 Webhookをアラートポリシーに統合することで、サードパーティ・サービスの応答を自動化したり、ワークフローをトリガーしたりすることができます。
IBM Cloud コンソール、CLI、または API を使用して Webhook を設定できます。
アラートとウェブフックはエンタープライズプランでのみご利用いただけます。
コンソールでのWebhookの設定
コンソールでWebhookを設定するには、 アカウント ページに移動し、「 アラート 」タブを選択してください。 「アラート」セクションで、Webhook タブを選択します。
コンソールでのWebhookの作成
- 「作成」 をクリックします。
- Webhook の名前を入力します。
- Webhook URL を入力します。 この URL は更新できません。変更したい場合は、Webhookを削除してから再作成する必要があります。
- 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.readinternet-svcs.zones.update
アクセス権限を確認するには、**「ユーザー」 > 「名前」 > 「アクセス・ポリシー」**にアクセスします。
API を使用した Webhook の作成
Webhookアラートの作成は、2つのステップで行います。 まず、Webhook を作成してから、受信した応答内の ID を使用してアラートを作成します。
API を使用して Webhook を作成するには、以下の手順に従ってください:
-
正しい変数を使用して API 環境をセットアップします。
-
API コマンドで使用する以下の変数を保存してください:
crn: サービス・インスタンスの URL エンコードされた完全な CRN。name: Webhook の名前です。url: Webhook の URL です。secret: Webhook を使用するために必要な、オプションのシークレットまたは API キー。
-
すべての変数が開始されたら、以下のコマンドを実行してウェブフックを作成します:
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 を一覧表示するには、以下の手順に従ってください:
-
正しい変数を使用して API 環境をセットアップします。
-
API コマンドで使用する以下の変数を保存してください:
crn: サービス・インスタンスの URL エンコードされた完全な CRN。
-
すべての変数が開始されたら、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 の詳細を取得するには、以下の手順に従ってください:
-
正しい変数を使用して API 環境をセットアップします。
-
API コマンドで使用する以下の変数を保存してください:
crn: サービス・インスタンスの URL エンコードされた完全な CRN。webhook_id: アラート Webhook ID。
-
すべての変数が開始されたら、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 を更新するには、以下の手順に従ってください:
-
正しい変数を使用して API 環境をセットアップします。
-
API コマンドで使用する以下の変数を保存してください:
crn: サービス・インスタンスの URL エンコードされた完全な CRN。webhook_id: アラート Webhook ID。name: Webhook の名前です。url: Webhook の URL です。secret: Webhook を使用するために必要な、オプションのシークレットまたは API キー。
-
すべての変数が開始されたら、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 を削除するには、以下の手順に従ってください:
-
正しい変数を使用して API 環境をセットアップします。
-
API コマンドで使用する以下の変数を保存してください:
crn: サービス・インスタンスの URL エンコードされた完全な CRN。webhook_id: アラート Webhook ID。
-
すべての変数が開始されたら、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'