すべてのプロダクト
Search
ドキュメントセンター

Web Application Firewall:API 操作呼び出しの例

最終更新日:Mar 27, 2025

このトピックでは、Web Application Firewall (WAF) API を使用した例として、CNAME レコードモードで追加されたドメイン名の詳細をクエリする方法について説明します。

RAM ユーザーを作成し、RAM ユーザーに権限を付与する

ID

この操作は、Alibaba Cloud アカウント、Resource Access Management (RAM) ユーザー、または RAM ロールを使用して呼び出すことができます。 ID 間の違いについては、「概要」をご参照ください。このトピックでは、RAM ユーザーを使用します。

RAM コンソールにログオンし、API 操作の呼び出しのみの権限を持つ RAM ユーザーを作成し、AccessKey ペアを記録します。詳細については、「RAM ユーザーの作成」をご参照ください。

権限の付与

  1. RAM コンソールの ユーザー ページで、管理する RAM ユーザーを見つけ、[権限の追加] 列の [アクション] をクリックします。

  2. [ポリシー] セクションで、検索ボックスに WAF と入力し、[aliyunyundunwafv3fullaccess] ポリシーを選択します。

    説明

    WAF は、次のシステムポリシーを提供します。

    • [aliyunyundunwafv3fullaccess]: すべての WAF 3.0 リソースを管理するための権限を付与します。

    • [aliyunyundunwafv3readonlyaccess]: すべての WAF 3.0 リソースに対する読み取り専用権限を付与します。

  3. [権限の付与] をクリックします。

認証情報

デフォルトでは、RAM ユーザーの作成時に AccessKey ペアが生成されます。また、RAM ユーザーの詳細ページに移動し、[認証] タブの [accesskey の作成] をクリックして、AccessKey ペアを作成することもできます。詳細については、「AccessKey ペアの作成」をご参照ください。

API ドキュメントを表示する

関数別の操作一覧で、対応する API DescribeDomainDetail の詳細をご覧ください。

API 操作を呼び出す

次の例は、Python で API 操作を呼び出す方法を示しています。

Python 環境を準備する

  1. Python をダウンロードしてインストールする

  2. Python のバージョンを確認します。

    • Linux または macOS

      ターミナルを開き、python --version コマンドを実行します。

    • Windows

      • Python のインストールディレクトリで、python.exe をダブルクリックします。

      • [コマンドプロンプト] を開きます。

        [win] + [R] キーを押して [実行] ダイアログボックスを開き、[python] と入力して、[OK] をクリックします。

環境変数を構成する

詳細については、「Linux、macOS、および Windows での環境変数の構成」をご参照ください。

依存関係をインストールする

pip install alibabacloud_waf_openapi20211001==2.0.2

サンプルコードをダウンロードする

  1. OpenAPI エクスプローラーで、

    エンドポイント (DescribeDomainDetail 操作)。

  2. [instanceid] パラメーターを [waf_v3prepaid_public_cn-uqm3bmw****] に、[domain] パラメーターを [srtest.****.top] に設定します。次に、[呼び出しの開始] をクリックします。他のリクエストパラメータを構成する必要はありません。

  3. [SDK サンプルコード] タブをクリックします。次に、[言語] セクションに移動し、[python] をクリックします。

    システムは、Python 用の WAF SDK のサンプルコードを提供します。

  4. [プロジェクトのダウンロード] をクリックして、サンプルコードパッケージをダウンロードします。

  5. コンピューターでサンプルコードパッケージを解凍し、[alibabacloud_sample] ディレクトリに移動します。

サンプルコードを実行する

次のコマンドを実行します。

python sample.py

次の出力が返されます。

{
  "Status": 1,
  "ResourceManagerResourceGroupId": "rg-acfmyqfktarf2ha",
  "RequestId": "7072AAC6-C786-5861-88A6-C18626244BD1",
  "CertDetail": {
    "EndTime": 1971038823000,
    "Sans": [
      "*.wafqax.top"
    ],
    "StartTime": 1655678823000,
    "Id": "9853636-cn-hangzhou",
    "Name": "auto_****_all",
    "CommonName": "srtest.****.top"
  },
  "Listen": {
    "ProtectionResource": "share",
    "HttpsPorts": [
      443
    ],
    "TLSVersion": "tlsv1",
    "Http2Enabled": false,
    "CertId": "*cn-hangzhou",
    "CipherSuite": 1,
    "EnableTLSv3": false,
    "IPv6Enabled": false,
    "XffHeaderMode": 1,
    "HttpPorts": [
      80
    ]
  },
  "Redirect": {
    "ConnectTimeout": 5,
    "Keepalive": true,
    "SniEnabled": false,
    "ReadTimeout": 120,
    "KeepaliveTimeout": 15,
    "Backends": [
      {
        "Backend": "39.98.XX.XX"
      },
      {
        "Backend": "39.98.XX.XX"
      }
    ],
    "FocusHttpBackend": false,
    "WriteTimeout": 120,
    "AllBackends": [
      "39.98.XX.XX"
    ],
    "Retry": true,
    "KeepaliveRequests": 1000,
    "Loadbalance": "iphash"
  },
  "Domain": "srtest.****.top",
  "Cname": "*.yundunwaf3.com"
}