このトピックでは、Web Application Firewall を OpenAPI で使用する方法について説明します。
OpenAPI ドキュメントの表示
API の概要には、CNAME レコードの詳細を照会するための OpenAPI 操作が DescribeDomainDetail であることが記載されています。このドキュメントを読んで、この操作を呼び出すために必要なパラメーターと権限を理解してください。
RAM ユーザーの作成と権限付与
ID
この操作は、Alibaba Cloud アカウント、Resource Access Management (RAM) ユーザー、または RAM ロールを使用して呼び出すことができます。これらの ID の違いの詳細については、「ID、認証情報、および権限付与」をご参照ください。この例では、RAM ユーザー を使用して操作を呼び出します。
RAM コンソールにログインし、API アクセス用の RAM ユーザーを作成して、AccessKey 情報を保存します。詳細については、「RAM ユーザーの作成」をご参照ください。
権限の付与
RAM ユーザーリストに移動します。対象の RAM ユーザーの 操作 列で、[権限の追加] をクリックします。
[アクセスポリシー] セクションで、検索ボックスにキーワード
WAFを入力し、AliyunYundunWAFv3FullAccess ポリシーを選択します。説明WAF のシステムポリシーは次のとおりです。
AliyunYundunWAFv3FullAccess:WAF 3.0 の完全な管理権限を付与します。
AliyunYundunWAFv3ReadOnlyAccess:WAF 3.0 の読み取り専用権限を付与します。
[OK] をクリックして権限付与を完了します。
認証情報
RAM ユーザーを作成すると、デフォルトで AccessKey が生成されます。この AccessKey を使用できます。または、RAM ユーザー の詳細ページで 認証管理 タブに移動し、[AccessKey の作成] をクリックして新しい AccessKey を作成することもできます。詳細については、「AccessKey の作成」をご参照ください。
OpenAPI 操作の呼び出し
このトピックでは、Python を例として、OpenAPI 操作を呼び出す方法について説明します。
Python 環境の準備
Python をダウンロードしてインストールできます。
Python 3 のダウンロードについては、Python 3 をご参照ください。
Python のバージョンを確認します。
Linux および macOS システム
ターミナルを開き、
python --versionコマンドを実行します。Windows システム
Python のインストールパスで、python.exe をダブルクリックします。
コマンドプロンプトを開きます。
Win+R を押して [ファイル名を指定して実行] ダイアログボックスを開きます。python と入力し、[OK] をクリックします。
環境変数の設定
環境変数の設定方法の詳細については、「Linux、macOS、および Windows システムでの環境変数の設定」をご参照ください。
依存関係をインストールする
pip install alibabacloud_waf_openapi20211001==2.0.2サンプルコードをダウンロードする
OpenAPI Portal では、DescribeDomainDetail API に、その呼び出し URL を使用してアクセスできます。
InstanceId リクエストパラメーターを waf_v3prepaid_public_cn-uqm3bmw**** に、Domain リクエストパラメーターを srtest.****.top に設定します。次に、[呼び出し開始] をクリックします。
[SDK サンプル] タブをクリックし、次に [Python] タブをクリックします。
以下は Python の SDK サンプルコードです。
[プロジェクト全体のダウンロード] をクリックして、サンプルコードパッケージをダウンロードします。
お使いのコンピューターでサンプルコードパッケージを展開し、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"
}