Web Application Firewall (WAF) のアプリ保護は、プロキシ、エミュレーター、および無効な署名を持つリクエストを検出することで、ネイティブアプリを保護します。Anti-Bot SDK をアプリに統合した後、WAF コンソールで以下の手順を完了して保護を設定し、有効化します。
前提条件
開始する前に、以下を完了していることを確認してください。
WAF インスタンスをアクティブ化しており、アプリ 保護 モジュールが有効になっていること。
アプリ保護が有効になっている WAF インスタンス
従量課金: 請求とコスト管理で Bot 管理モジュールを有効にします。
サブスクリプション: アプリ保護モジュールを有効にします。
Anti-Bot SDK がアプリに統合されていること。詳細については、「アプリ保護の概要」をご参照ください。
ステップ 1: アプリ保護設定を開く
WAF コンソールにログインします。上部のナビゲーションバーで、WAF インスタンスがデプロイされているリソースグループとリージョン (中国本土または中国本土以外) を選択します。
左側のナビゲーションウィンドウで、[保護設定] > [Web サイト保護] を選択します。
[Web サイト保護] ページで、[ドメイン名の切り替え] ドロップダウンリストからドメイン名を選択します。

[ボット管理] タブをクリックし、[アプリ保護] セクションを探して、[設定]をクリックします。
アプリ保護が有効になると、すべてのサービスリクエストがチェックされます。特定のチェック対象リクエストを除外するには、Bot 管理でホワイトリストルールを設定します。詳細については、「Bot 管理のホワイトリストを設定する」をご参照ください。

ステップ 2: インターフェイス保護ルールを作成する
インターフェイス保護ルールは、保護する API パスと、違反が検出された場合に実行する操作を定義します。
「アプリ保護」ページで、「インターフェイス保護」セクションを見つけ、「ルールの追加」をクリックします。
「[ルールの追加]」ダイアログボックスで、次のパラメーターを設定します。
重要本番用ドメイン名に対して、SDK の統合およびデバッグが完了するまで、[アクション] を [ブロック] に設定しないでください。SDK が適切に統合されていない場合、有効なリクエストがブロックされる可能性があります。テスト中は、[モニター] を使用してログデータを確認し、統合のデバッグを行ってください。
POST リクエストの本文が 8 KB を超える場合、署名検証が失敗する可能性があります。大規模なペイロード (画像アップロードなど) を処理する API オペレーションの場合、それらのエンドポイントの SDK 保護を無効にするか、[ユーザー定義フィールド] を使用して署名検証の代替フィールドを指定します。
パラメーター 説明 ルール名 ルールの名前を指定します。 パス保護設定 保護対象の API パスを指定します。以下のフィールドを設定します。 — パス 保護対象のパスを指定します。 /(フォワードスラッシュ)を指定すると、すべてのパスが該当します。— マッチング方式 パスのマッチング方法を指定します。プレフィックスマッチでは、指定したパス以下のすべてのエンドポイントが該当します。正確なマッチでは、指定したパスのみが該当します。正規表現マッチでは、正規表現で定義されたパスが該当します。 — パラメーター パスに固定パラメーターが含まれる場合のフィルター対象となるクエリパラメーターを指定します。これは、リクエスト URL の ?以降に記述されるキーと値のペアです。たとえば、domain/?action=login&name=testの場合、action=loginやname=testを指定できます。保護ポリシー マッチしたリクエストに対して実行するチェックを指定します。無効な署名は常に有効化されており、無効化できません — このチェックでは、リクエストの署名が有効であるかを検証します。オプションで、エミュレーターを有効化してエミュレーター由来のリクエストを検出し、プロキシを有効化してプロキシ経由のリクエストを検出できます(推奨)。 操作 ルールがマッチした際の処理を指定します。監視では、リクエストをブロックせずにログに記録します。ブロックでは、リクエストをブロックし、HTTP 405 ステータスコードを返します。 ユーザー定義フィールド 署名検証の代替フィールドを指定します。これは、リクエストボディが 8 KB を超える場合に使用します。ヘッダー、パラメーター、または Cookie のいずれかを選択し、その後にフィールド名を指定します。たとえば、Cookie を選択して DG_ZUIDを入力すると、リクエストボディの代わりにDG_ZUIDCookie フィールドが署名検証に使用されます。
[確認]をクリックします。
テストの推奨事項
テストフェーズでは、これらの設定を使用して、ライブトラフィックに影響を与えることなく SDK 統合を検証します。
[パス] を
/に設定し、[マッチング] を [プレフィックスマッチ] に設定して、すべてのパスをキャプチャできるようにします。本番用ドメイン名の場合、[アクション] を [監視] に設定します。
テスト用ドメイン名の場合のみ、[アクション] を [ブロック] に設定して、拒否動作のエンドツーエンド テストを実行できます。
ログが期待される動作を示したら、本番環境での使用のためにルールを更新します。
ステップ 3: バージョン保護を設定する (オプション)
バージョン保護は、アプリのパッケージ名と署名を検証することで、非公式アプリビルドからのリクエストをブロックします。これは、ユーザーが承認されたアプリバージョンを実行することを強制する必要がある場合にのみ設定します。
[アプリ保護] ページで、[バージョン保護] セクションを見つけ、[指定バージョンのリクエストを許可] を有効にします。
[ルールの追加] ダイアログボックスで、以下のパラメーターを設定します。
重要パッケージ署名は、アプリ証明書署名とは異なります。正しい値を取得するには、Alibaba Cloud テクニカルサポートにお問い合わせください。
パラメーター 説明 ルール名 ルールの名前。 有効なバージョン 承認済みのアプリバージョンとして、バージョンごとにパッケージ名 (例: com.aliyundemo.example) と、オプションでパッケージ署名を入力します。[パッケージ署名] を空白のままにした場合、WAF はパッケージ名のみを検証します。パッケージ署名を取得するには、Alibaba Cloud テクニカルサポートにお問い合わせください。iOS と Android の両方のアプリがサポートされています。[有効なバージョンを追加] をクリックするとエントリを追加できます。一意のパッケージ名を持つ有効なバージョンは、最大 5 つまで追加可能です。不正なバージョンの処理方法 [モニター] はリクエストをログに記録します。[ブロック] はリクエストをブロックし、HTTP 405 を返します。 
[確定] をクリックします。
ステップ 4: アプリ保護を有効にする
保護ルールの設定後、[ステータス] トグルを [App Protection] セクション内でオンに切り替えます。
アプリ保護を有効にする前に、SDK 統合を完了し、アプリをデバッグし、更新されたバージョンをリリースしてください。SDK 統合が安定する前に保護を有効にすると、本番環境で予期しない動作を引き起こす可能性があります。
次のステップ
信頼できるリクエストをチェックから除外するには、ホワイトリストルールを設定します。詳細については、「Bot 管理のホワイトリストを設定する」をご参照ください。
アプリ保護の仕組みを学ぶには、「アプリ保護の概要」をご参照ください。