コンテンツにスキップ

Terraform

以下の例を使用して、Terraformを使ったAPI Shieldの開始方法を説明します。CloudflareでTerraformを使用する方法についての詳細は、Terraformのドキュメントを参照してください。

Terraformを通じて構成可能なリソースは以下の通りです:

セッション識別子

  • api_shieldは、API Shieldにおけるセッション識別子を構成するためのものです。

エンドポイント管理

  • api_shield_operationは、エンドポイント管理におけるエンドポイントを構成するためのものです。

スキーマ検証 2.0

API Shieldセッション識別子の管理

以下の例の構成を参照して、ゾーンにセッション識別子を設定してください。

例の構成
resource "cloudflare_api_shield" "my_api_shield" {
zone_id = var.zone_id
auth_id_characteristics {
name = "authorization"
type = "header"
}
}

API Shieldエンドポイント管理の管理

以下の例の構成を参照して、ゾーンでエンドポイントを管理してください。

例の構成
resource "cloudflare_api_shield_operation" "get_image" {
zone_id = var.zone_id
method = "GET"
host = "example.com"
endpoint = "/api/images/{var1}"
}
resource "cloudflare_api_shield_operation" "post_image" {
zone_id = var.zone_id
method = "POST"
host = "example.com"
endpoint = "/api/images/{var1}"
}

スキーマ検証 2.0の管理

以下の例の構成を参照して、ゾーンでスキーマ検証 2.0を管理してください。

例の構成
# スキーマ検証 2.0に使用するスキーマ
resource "cloudflare_api_shield_schema" "example_schema" {
zone_id = var.zone_id
name = "example-schema"
kind = "openapi_v3"
validation_enabled = true
source = file("./schemas/example-schema.json")
}
# スキーマに違反するリクエストをデフォルトでブロック
resource "cloudflare_api_shield_schema_validation_settings" "zone_level_settings" {
zone_id = var.zone_id
validation_default_mitigation_action = "block"
}
# エンドポイントpost_image - スキーマに違反するリクエストのみをログに記録
resource "cloudflare_api_shield_operation_schema_validation_settings" "post_image_log_only" {
zone_id = var.zone_id
operation_id = cloudflare_api_shield_operation.post_image.id
mitigation_action = "log"
}