Terraform は、HashiCorp によって作成されたオープンソースの開発者ツールです。 Terraform を使用すると、コードでクラウドインフラストラクチャを管理できます。主要な Terraform プロバイダーの 1 つとして、Alibaba Cloud は Terraform でセキュリティセンターに関連する複数のリソースとデータソースをリリースしています。 Terraform を使用してリソースを管理し、クラウドインフラストラクチャの自動デプロイや継続的な強化などのビジネス要件を満たすことができます。このトピックでは、Terraform を使用してセキュリティセンターをアクティブ化する方法について説明します。
サンプルコードをワンクリックで実行できます。
セットアップ
Alibaba Cloud アカウントの侵害に関連するリスクを軽減するために、RAM ユーザーを使用し、AccessKey ペアを作成することをお勧めします。
この例のリソースを管理するための最小限の権限を付与するために、RAM ユーザーに次のポリシーを割り当てます。
このポリシーにより、RAM ユーザーはセキュリティセンターに関連するリソースの記述、変更、および作成を行うことができます。必要に応じて、ポリシーのアクションとリソース範囲を調整してください。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "sas:Describe*", // セキュリティセンターに関連する情報の表示を許可します "sas:CreateInstance", // セキュリティセンターインスタンスの作成を許可します "sas:UpdateInstance", // セキュリティセンターインスタンスのアップグレードを許可します "sas:Modify*" // 他の設定を変更する必要がある場合は、このパラメーターを追加します ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecs:DescribeInstances" // セキュリティセンターとの関連付けのために ECS インスタンスを照会するための権限が必要になる場合があります ], "Resource": "*" } ] }次のいずれかの方法を使用して Terraform 環境を準備します。
Terraform Explorer で Terraform を使用する: Alibaba Cloud が提供する Terraform Explorer を使用すると、開発者はインストールせずに Terraform をオンラインで実行できます。この方法は、Terraform を効率的かつ便利に無料で使用およびデバッグするのに最適です。
Cloud Shell で Terraform を使用する: Alibaba Cloud Cloud Shell には Terraform がプリインストールされ、ID 資格情報が構成されているため、Terraform コマンドを直接実行できます。この方法は、Terraform を効率的、便利、かつ低コストで使用およびデバッグするのに最適です。
Terraform をインストールして構成する: この方法は、ネットワーク接続が不十分なシナリオや、カスタム開発環境が必要な場合に最適です。
必要なリソース
alicloud_threat_detection_instance: このリソースは、Alibaba Cloud の脅威検出サービスを構成および管理するために使用されます。
セキュリティセンターのアクティブ化
セキュリティセンターインスタンスをアクティブ化した後、不要なコストを避けるために、そのライフサイクルを慎重に管理してください。
次のコード例は、杭州 ( cn-hangzhou ) リージョンでサブスクリプションを使用してセキュリティセンターの Enterprise エディションをアクティブ化する方法を示しています。
実行ディレクトリを作成して移動します。
mkdir /usr/local/terraform cd /usr/local/terraform説明Terraform プロジェクトごとに実行ディレクトリを作成する必要があります。
terraform.tf ファイルを作成し、ファイルの内容を設定します。
vim terraform.tfterraform.tf ファイルの内容は次のとおりです。
# プロバイダーを Alibaba Cloud として構成し、リージョンを杭州 ( cn-hangzhou ) に設定します provider "alicloud" { region = "cn-hangzhou" } # リソース名を定義します。デフォルト値は "terraform-example" です variable "name" { default = "terraform-example" } # バージョンコード。デフォルト値は "level2" ( Enterprise エディション) です variable "version_code" { default = "level2" } # 購入するサーバーの数。デフォルト値は "30" です variable "buy_number" { default = "30" } # 課金方法。デフォルト値は "Subscription" です variable "payment_type" { default = "Subscription" } # サブスクリプション期間。デフォルト値は "1" (単位: 月) です variable "period" { default = "1" } # 更新ステータス。デフォルト値は "ManualRenewal" です variable "renewal_status" { default = "ManualRenewal" } # ログ分析ストレージ容量。デフォルト値は "100" (単位: GB) です variable "sas_sls_storage" { default = "100" } # ランサムウェア対策データ容量。デフォルト値は "100" (単位: GB) です variable "sas_anti_ransomware" { default = "100" } # Web改ざん防止スイッチ。デフォルト値は "1" (はい) です variable "sas_webguard_boolean" { default = "1" } # Web改ざん防止クォータ。デフォルト値は "100" です variable "sas_webguard_order_num" { default = "100" } # クラウドハニーポットスイッチ。デフォルト値は "1" (はい) です variable "honeypot_switch" { default = "1" } # クラウドハニーポットクォータ。デフォルト値は "32" です variable "honeypot" { default = "32" } # 悪意のあるファイル検出 SDK スイッチ。デフォルト値は "1" (はい) です variable "sas_sdk_switch" { default = "1" } # 悪意のあるファイル検出 SDK クォータ。デフォルト値は "1000" (単位: 10,000 回) です variable "sas_sdk" { default = "1000" } # コンテナイメージスキャン回数。ステップサイズは 20 で、20 の倍数のみを入力できます variable "container_image_scan_new" { default = "100" } # CTDR スイッチ variable "Threat_analysis_switch_1" { default = "1" } # CTDR ログデータ。増分は 100 で、100 の倍数のみを入力できます variable "threat_analysis_flow" { default = "100" } # CTDR ログストレージ容量。デフォルト値は "1000" (単位: GB) です variable "threat_analysis_sls_storage" { default = "1000" } # 変数で定義された脅威検出リソース resource "alicloud_threat_detection_instance" "default" { version_code = var.version_code buy_number = var.buy_number payment_type = var.payment_type period = var.period renewal_status = var.renewal_status sas_sls_storage = var.sas_sls_storage sas_anti_ransomware = var.sas_anti_ransomware container_image_scan_new = var.container_image_scan_new sas_webguard_boolean = var.sas_webguard_boolean sas_webguard_order_num = var.sas_webguard_order_num honeypot_switch = var.honeypot_switch honeypot = var.honeypot sas_sdk_switch = var.sas_sdk_switch sas_sdk = var.sas_sdk threat_analysis_switch_1 = var.Threat_analysis_switch_1 threat_analysis_flow = var.threat_analysis_flow threat_analysis_sls_storage = var.threat_analysis_sls_storage }パラメーター
必須
説明
値の例
modify_type
いいえ
インスタンスをアップグレードまたはダウングレードする必要がある場合は、このパラメーターが必要です。上記のコードに追加してください。有効な値:
Upgrade: セキュリティセンターをアップグレードします。
Downgrade: セキュリティセンターをダウングレードします。
Upgrade
version_code
はい
セキュリティセンターのエディション。有効な値:
level7: アンチウイルス
level3: Advanced
level2: Enterprise
level8: Ultimate
level10: バリューアドプラン
level2
buy_number
いいえ
保護するサーバーの数。
説明このパラメーターは、version_code が level3、level2、または level8 に設定されている場合にのみ必須です。
30
v_core
いいえ
保護するサーバーの仮想 CPU ( vCPU ) の数。
説明このパラメーターは、version_code が level7 または level8 に設定されている場合にのみ必須です。
100
payment_type
はい
課金方法。有効な値:
Subscription
Subscription
period
いいえ
サブスクリプション期間。単位: 月。
有効な値: 1、6、12、24、36、60。
1
renewal_status
いいえ
更新モード。有効な値:
AutoRenewal: 自動更新。
ManualRenewal (デフォルト): 手動更新。
ManualRenewal
renewal_period
いいえ
自動更新期間。単位: 月。
説明このパラメーターは、更新状態自動更新 が に設定されている場合に必須です。
12
sas_sls_storage
いいえ
ログストレージ容量。単位: GB。
有効な値: 0 ~ 600,000。値は 10 の倍数である必要があります。
説明サイバーセキュリティ法のログを少なくとも 180 日間保存するという要件に準拠するために、サーバーごとに 50 GB のログストレージ容量を構成することをお勧めします。
100
sas_anti_ransomware
いいえ
ランサムウェア対策のデータバックアップ容量。単位: GB。
有効な値: 10 ~ 9,999,999,999。10 の倍数である必要があります。
100
container_image_scan_new
いいえ
コンテナイメージスキャン。このパラメーターは、毎月検出する必要があるイメージの数に設定することをお勧めします。単位: 個数。
有効な値: 0 ~ 200,000。20 の倍数である必要があります。
説明セキュリティセンターは、一意のダイジェスト値によってイメージを識別します。ダイジェスト値が変更されない場合、イメージの最初のスキャンのみが 1 つのコンテナイメージスキャンクォータを消費します。変更された場合、新しいスキャンは追加のクォータを消費します。
たとえば、10 個のイメージをスキャンし、サブスクリプション中にダイジェスト値が 20 回変更されると予想される場合は、クォータを 30 に設定します。この合計クォータは、イメージの数とダイジェスト値の予想される変更で構成されます。
100
sas_webguard_boolean
いいえ
Web 改ざん防止機能を有効にするかどうかを指定します。有効な値:
1: はい
0: いいえ
1
sas_webguard_order_num
いいえ
Web 改ざん防止のクォータ。単位: 回。
有効な値: 0 ~ 9,999。
説明このパラメーターは、sas_webguard_boolean1 が に設定されている場合にのみ必須です。
100
sas_sc
いいえ
セキュリティダッシュボードを有効にするかどうかを指定します。有効な値:
説明このパラメーターは、中国国外のリージョンではサポートされていません。また、version_code が level3、level2、または level8 に設定されている場合にのみサポートされます。
true: はい
false: いいえ
false
honeypot_switch
いいえ
クラウドハニーポット機能を有効にするかどうかを指定します。有効な値:
1: はい
2: いいえ
1
honeypot
いいえ
クラウドハニーポット機能のクォータ。単位: 個数。
有効な値: 20 ~ 500。
説明このパラメーターは、honeypot_switch1 が に設定されている場合にのみ必須です。
20
sas_sdk_switch
いいえ
悪意のあるファイル検出用の SDK を有効にするかどうかを指定します。有効な値:
1: はい
0: いいえ
1
sas_sdk
いいえ
悪意のあるファイル検出が実行される回数。単位: 10,000 回。
有効な値: 10 ~ 9,999,999,999。値は 10 の倍数である必要があります。
10
Threat_analysis_switch_1
いいえ
Cloud Threat Detection and Response ( CTDR ) を有効にするかどうかを指定します。有効な値:
0: いいえ
1: はい
1
Threat_analysis_flow
いいえ
CTDR に追加するログデータ。単位: GB/日。
有効な値: 100 ~ 9,999,999,999。値は 100 の倍数である必要があります。
説明このパラメーターは、脅威分析スイッチ 1 が 1 に設定されている場合にのみ必須です。
100
Threat_analysis_sls_storage
いいえ
CTDR のログストレージ容量。単位: GB。
有効な値: 0 ~ 9,999,999,999。値は 1,000 の倍数である必要があります。
1000
terraform initコマンドを実行して構成を初期化します。次のメッセージが返された場合、Terraform は初期化されます。

terraform applyコマンドを実行してセキュリティセンターインスタンスを作成します。実行中に、プロンプトが表示されたらyesと入力し、[enter] キーを押します。コマンドが完了するまで待ちます。次のメッセージが表示されたら、承認は完了です。Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:次のメッセージが返された場合、セキュリティセンターはアクティブ化されます。
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
結果の確認
Terraform show コマンドの実行
次のコマンドを実行して、Terraform で作成されたリソースの詳細を照会します。
terraform show
コンソールの使用
セキュリティセンターコンソール にログインし、Enterprise エディションと関連機能がアクティブになっているかどうかを確認します。

関連情報
Terraform の詳細については、「Terraform とは」をご参照ください。