このページでは、適応型保護の構成について説明します。適応型保護を構成する前に、適応型保護の概要また、適応型保護のユースケースの情報をよく理解しておいてください。
準備
以降のセクションでは、Google Cloud Armor セキュリティ ポリシーの構成に必要なすべての Identity and Access Management(IAM)のロールと権限について説明します。このドキュメントのユースケースでは、compute.securityPolicies.update
権限のみが必要です。
Google Cloud Armor セキュリティ ポリシーの IAM 権限を設定する
次の操作を行うには、Identity and Access Management(IAM)の Compute セキュリティ管理者のロール(roles/compute.securityAdmin
)が必要です。
- Google Cloud Armor セキュリティ ポリシーの構成、変更、更新、削除
- 次の API メソッドの使用:
SecurityPolicies insert
SecurityPolicies delete
SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
Compute ネットワーク管理者のロール(roles/compute.networkAdmin
)を付与されたユーザーは、次の操作を実行できます。
- バックエンド サービスの Google Cloud Armor セキュリティ ポリシーの設定
- 次の API メソッドの使用:
BackendServices setSecurityPolicy
BackendServices list
(gcloud
のみ)
セキュリティ管理者ロール(roles/iam.securityAdmin
)とネットワーク管理者ロールを持つユーザーは、SecurityPolicies
API メソッドの get
、list
、および getRule
を使用して、Google Cloud Armor セキュリティ ポリシーを閲覧できます。
カスタムロールの IAM 権限を設定する
次の表に、IAM のロールの基本的な権限と、関連する API メソッドを示します。
IAM 権限 | API メソッド |
---|---|
compute.securityPolicies.create |
SecurityPolicies insert |
compute.securityPolicies.delete |
SecurityPolicies delete |
compute.securityPolicies.get |
SecurityPolicies get SecurityPolicies getRule |
compute.securityPolicies.list |
SecurityPolicies list |
compute.securityPolicies.use |
BackendServices setSecurityPolicy |
compute.securityPolicies.update |
SecurityPolicies patch SecurityPolicies addRule SecurityPolicies patchRule SecurityPolicies removeRule |
compute.backendServices.setSecurityPolicy |
BackendServices setSecurityPolicy |
適応型保護を有効にする
セキュリティ ポリシーの適応型保護を有効にするには、次の手順を行います。適応型保護は、各セキュリティ ポリシーに個別に適用されます。
コンソール
セキュリティ ポリシーの適応型保護を有効にするには:
Google Cloud コンソールで、[ネットワーク セキュリティ] ページに移動します。
[ポリシー] ページで、セキュリティ ポリシーの名前をクリックします。
[編集] をクリックします。
[適応型保護] で [有効] を選択します。
[更新] をクリックします。
セキュリティ ポリシーの適応型保護を無効にするには:
Google Cloud コンソールで、[ネットワーク セキュリティ] ページに移動します。
[ポリシー] ページで、セキュリティ ポリシーの名前をクリックします。
[編集] をクリックします。
[適応型保護] で [有効] をオフにします。
[更新] をクリックします。
gcloud
セキュリティ ポリシーの適応型保護を有効にするには:
gcloud compute security-policies update MY-SECURITY-POLICY \ --enable-layer7-ddos-defense
セキュリティ ポリシーの適応型保護を無効にするには:
gcloud compute security-policies update MY-SECURITY-POLICY \ --no-enable-layer7-ddos-defense
粒度モデルを構成する
きめ細かいモデル機能を使用すると、特定のホストまたはパスを、Adaptive Protection が分析する詳細構成単位として構成できます。次の例では、ホストごとに粒度トラフィック ユニットを作成し、粒度トラフィック ユニットをカスタマイズして、トラフィックがベースライン秒間クエリ数(QPS)を超えた場合にアクションを実行するように適応型保護を構成します。粒度モデルの詳細については、適応型保護の概要をご覧ください。
粒度トラフィック ユニットを構成する
このセクションの例では、次のフラグの一部またはすべてを指定して add-layer7-ddos-defense-threshold-config
コマンドを使用します。
フラグ | 説明 |
---|---|
--threshold-config-name |
しきい値構成の名前。 |
--traffic-granularity-configs |
指定したサービス粒度で適応型保護を有効にするための構成オプション。 |
--auto-deploy-impacted-baseline-threshold |
検出された攻撃に対する推奨の緩和ルールのベースライン トラフィックに対する適応型保護の見込まれる影響のしきい値。自動防御は、しきい値を超えていない場合にのみ適用されます。 |
--auto-deploy-expiration-sec |
自動デプロイによって実行されたアクションの継続期間(存在する場合)。 |
--detection-load-threshold |
バックエンド サービスの負荷に基づく検出しきい値。 |
--detection-absolute-qps |
絶対 QPS に基づく検出しきい値。 |
--detection-relative-to-baseline-qps |
ベースライン トラフィックの平均を基準とする QPS に基づく検出しきい値。 |
最初の例では、デフォルトのしきい値をオーバーライドせずに、バックエンド サービスの背後にあるホストごとに攻撃を検出し、独立した緩和策を提案するように適応型保護を構成します。
gcloud
POLICY_NAME
という名前のセキュリティ ポリシーを作成するか、既存のセキュリティ ポリシーを使用します。- 適応型保護がまだ有効になっていない場合は、次のコマンドを使用して、ポリシーの適応型保護を有効にします。
gcloud compute security-policies update POLICY_NAME
--enable-layer7-ddos-defense - 複数のホストを持つバックエンド サービスにセキュリティ ポリシーを適用します。
- 粒度トラフィック ユニットを構成するには、
--traffic-granularity-configs
フラグを指定して次のadd-layer7-ddos-defense-threshold-config
コマンドを使用します。gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME
--threshold-config-name=per-host-config
--traffic-granularity-configs=type=HTTP_HEADER_HOST;enableEachUniqueValue=true
2 つ目の例では、最初の例で構成した粒度トラフィック ユニットの一部または全部に対して、異なる自動デプロイおよび検出しきい値を構成しています。
gcloud
- 適応型保護の自動デプロイがまだ有効になっていない場合は、プレースホルダ ルールを作成します。
- 次のコマンドは、
HOST
のHTTP_HEADER_HOST
とPATH
のHTTP_PATH
を使用して、粒度トラフィック ユニットの自動デプロイのしきい値をカスタマイズします。カスタマイズする粒度トラフィック ユニットごとにこのコマンドを使用し、必要に応じてホストと URL パスごとに変数を置き換えます。gcloud compute security-policies add-layer7-ddos-defense-threshold-config
POLICY_NAME
--threshold-config-name=my-host-config
--auto-deploy-impacted-baseline-threshold=0.01
--auto-deploy-expiration-sec=3600
--traffic-granularity-configs=type=HTTP_HEADER_HOST;value=HOST
,type=HTTP_PATH;value=PATH
攻撃量がベースラインの平均 QPS を超過した場合に検出する
次の例では、攻撃量がベースラインの平均 QPS を 50% 超え、バックエンド サービスの負荷が容量の 90% を超えた場合にのみ攻撃を検出するように、適応型保護を構成します。
gcloud
POLICY_NAME
という名前のセキュリティ ポリシーを作成するか、既存のセキュリティ ポリシーを使用します。適応型保護がまだ有効になっていない場合は、次のコマンドを使用して、ポリシーの適応型保護を有効にします。
gcloud compute security-policies update POLICY_NAME \ --enable-layer7-ddos-defense
セキュリティ ポリシーをバックエンド サービスに適用します。
次のコマンドを使用して、カスタマイズされた検出しきい値を使用して適応型保護を構成します。
gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME \ --threshold-config-name=my-customized-thresholds \ --detection-load-threshold=0.9 \ --detection-relative-to-baseline-qps=1.5