Alibaba Cloud met à disposition des blocs de ressources et de sources de données Terraform pour Security Center. Utilisez Terraform pour automatiser l'activation et la gestion de Security Center grâce à un code simple.
L'exemple de code est prêt à l'emploi. Vous pouvez l'exécuter en un clic.
Prérequis
-
L'utilisation d'un compte root présente un risque de sécurité en cas de fuite des identifiants. Nous vous recommandons de créer un utilisateur RAM et de créer une AccessKey pour cet utilisateur RAM.
-
Cette stratégie permet à l'utilisateur RAM de décrire, modifier et créer des ressources Security Center. Ajustez les actions et l'étendue des ressources selon vos besoins.
Attachez la stratégie IAM minimale suivante à l'utilisateur RAM qui exécute les commandes Terraform. Cela accorde les autorisations requises pour cet exemple. Accorder des autorisations à un utilisateur RAM.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "sas:Describe*", // Allows viewing information about Security Center. "sas:CreateInstance", // Allows creating a Security Center instance. "sas:UpdateInstance", // Allows upgrading a Security Center instance. "sas:Modify*" // Add this action if you need to modify other settings. ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecs:DescribeInstances" // May be required to query ECS instances to associate them with Security Center. ], "Resource": "*" } ] }
Préparation
Préparez un environnement d'exécution Terraform en utilisant l'une des méthodes suivantes.
Utilisez Terraform Explorer : un environnement en ligne pour exécuter Terraform sans installation locale. Idéal pour des essais rapides et le débogage, sans frais.
Utiliser Terraform pour créer rapidement des ressources : Cloud Shell est préinstallé avec Terraform et préconfiguré avec vos identifiants. Exécutez les commandes Terraform directement, sans configuration préalable.
Installer et configurer Terraform localement : cette option est recommandée en cas de connexion réseau limitée ou pour des environnements de développement personnalisés.
Ressources utilisées
alicloud_threat_detection_instance : permet de provisionner et de gérer une instance Security Center.
Activer une instance Security Center
Gérez attentivement le cycle de vie de l'instance après l'activation afin d'éviter des frais imprévus.
L'exemple suivant active une instance Security Center Enterprise basée sur un abonnement dans la région Chine (Hangzhou).
-
Créez un répertoire de travail et accédez-y.
mkdir /usr/local/terraform cd /usr/local/terraformRemarqueVous devez créer un répertoire de travail distinct pour chaque projet Terraform.
-
Créez un fichier nommé terraform.tf et ajoutez la configuration.
vim terraform.tfAjoutez le contenu suivant :
# Configure the Alibaba Cloud provider and set the region to China (Hangzhou). provider "alicloud" { region = "cn-hangzhou" } # Define the resource name. Default value: "terraform-example". variable "name" { default = "terraform-example" } # Security Center edition. Default value: "level2" (Enterprise). variable "version_code" { default = "level2" } # Number of servers to protect. Default value: "30". variable "buy_number" { default = "30" } # Billing method. Default value: "Subscription". variable "payment_type" { default = "Subscription" } # Subscription duration. Default value: "1" (in months). variable "period" { default = "1" } # Renewal mode. Default value: "ManualRenewal" (manual renewal). variable "renewal_status" { default = "ManualRenewal" } # Log storage capacity. Default value: "100" (in GB). variable "sas_sls_storage" { default = "100" } # Backup capacity for anti-ransomware. Default value: "100" (in GB). variable "sas_anti_ransomware" { default = "100" } # Web tamper-proofing switch. Default value: "1" (enabled). variable "sas_webguard_boolean" { default = "1" } # Quota for web tamper-proofing. Default value: "100". variable "sas_webguard_order_num" { default = "100" } # Cloud honeypot switch. Default value: "1" (enabled). variable "honeypot_switch" { default = "1" } # Quota for cloud honeypot. Default value: "32". variable "honeypot" { default = "32" } # Malicious file detection switch. Default value: "1" (enabled). variable "sas_sdk_switch" { default = "1" } # Quota for malicious file detection. Unit: 10,000 scans. Default value: "1000". variable "sas_sdk" { default = "1000" } # Number of container image scans. The value must be a multiple of 20. variable "container_image_scan_new" { default = "100" } # Agentic SOC switch. variable "threat_analysis_switch" { default = "1" } # Agentic SOC traffic. The value must be a multiple of 100. Default value: "100" (in GB/day). variable "threat_analysis_flow" { default = "100" } # Log storage capacity for Agentic SOC. Default value: "1000" (in GB). variable "threat_analysis_sls_storage" { default = "1000" } # Define the threat detection instance resource with variables. 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 = var.threat_analysis_switch threat_analysis_flow = var.threat_analysis_flow threat_analysis_sls_storage = var.threat_analysis_sls_storage }Paramètre
Obligatoire
Description
Valeur d'exemple
modify_typeNon
Requis lors de la mise à niveau ou de la rétrogradation d'une instance. Ajoutez ce paramètre au bloc de ressource. Valeurs valides :
Upgrade
Downgrade
Upgrade
version_codeOui
L'édition de Security Center. Valeurs valides :
level7 : Anti-virus
level3 : Advanced
level2 : Enterprise
level8 : Ultimate
level10 : Value-added Plan
level2
buy_numberNon
Le nombre de serveurs à protéger.
RemarqueCe paramètre est requis uniquement lorsque version_code est défini sur level3, level2 ou level8.
30
v_coreNon
Le nombre total de vCPU des serveurs à protéger.
RemarqueCe paramètre est requis uniquement lorsque version_code est défini sur level7 ou level8.
100
payment_typeOui
La méthode de facturation. Valeur valide :
Subscription
Subscription
periodNon
La durée de l'abonnement, en mois.
Valeurs valides : 1, 6, 12, 24, 36 et 60.
1
renewal_statusNon
Le mode de renouvellement. Valeurs valides :
AutoRenewal : l'instance est renouvelée automatiquement.
ManualRenewal (par défaut) : l'instance doit être renouvelée manuellement.
ManualRenewal
renewal_periodNon
La durée du renouvellement automatique, en mois.
RemarqueCe paramètre est requis lorsque renewal_status est défini sur AutoRenewal.
12
sas_sls_storageNon
La capacité de stockage des journaux, en Go.
Plage de valeurs : 0 à 600 000. La valeur doit être un multiple de 10.
RemarquePour se conformer à la loi sur la cybersécurité de la République populaire de Chine, qui exige que les journaux soient conservés pendant au moins 180 jours, nous vous recommandons d'allouer 50 Go de capacité de stockage des journaux par serveur.
100
sas_anti_ransomwareNon
La capacité de sauvegarde pour la fonctionnalité anti-ransomware, en Go.
Plage de valeurs : 10 à 9 999 999 999. La valeur doit être un multiple de 10.
100
container_image_scan_newNon
Le quota pour les analyses d'images de conteneurs. Définissez cette valeur sur le nombre attendu d'analyses mensuelles. Unité : images.
Plage de valeurs : 0 à 200 000. La valeur doit être un multiple de 20.
RemarqueUne analyse n'est comptabilisée dans votre quota que la première fois qu'une image avec un digest unique est analysée. Si le digest de l'image change, l'analyse de l'image mise à jour consomme une autre unité de votre quota. Par exemple, si vous devez analyser 10 images et que vous prévoyez que leurs digests changeront 20 fois au total pendant la période d'abonnement, définissez le quota sur 30 (10 + 20).
100
sas_webguard_booleanNon
Active ou désactive la protection contre la falsification de pages web. Valeurs valides :
1 : active la fonctionnalité.
0 : désactive la fonctionnalité.
1
sas_webguard_order_numNon
Le quota pour la protection contre la falsification de pages web. Unité : autorisations.
Plage de valeurs : 0 à 9 999.
RemarqueCe paramètre est requis uniquement lorsque sas_webguard_boolean est défini sur 1.
100
sas_scNon
Active ou désactive le tableau de bord de sécurité. Valeurs valides :
RemarqueCette fonctionnalité n'est pas disponible à l'achat dans les régions situées en dehors de la Chine continentale. Ce paramètre ne prend pas effet dans ces régions. Cette fonctionnalité est prise en charge uniquement lorsque version_code est défini sur level3, level2 ou level8.
true
false
false
honeypot_switchNon
Active ou désactive le cloud honeypot. Valeurs valides :
1 : active la fonctionnalité.
2 : désactive la fonctionnalité.
1
honeypotNon
Le quota pour le cloud honeypot. Unité : honeypots.
Plage de valeurs : 20 à 500.
RemarqueCe paramètre est requis uniquement lorsque honeypot_switch est défini sur 1.
20
sas_sdk_switchNon
Active ou désactive la détection de fichiers malveillants. Valeurs valides :
1 : active la fonctionnalité.
0 : désactive la fonctionnalité.
1
sas_sdkNon
Le quota pour la détection de fichiers malveillants. Unité : 10 000 analyses.
Plage de valeurs : 10 à 9 999 999 999. La valeur doit être un multiple de 10.
10
threat_analysis_switchNon
Active ou désactive Agentic SOC. Valeurs valides :
0: désactive la fonctionnalité.1: active la fonctionnalité.
1
threat_analysis_flowNon
Le trafic d'ingestion des journaux pour Agentic SOC. Unité : Go/jour.
Plage de valeurs : 100 à 9 999 999 999. La valeur doit être un multiple de 100.
RemarqueCe paramètre est requis uniquement lorsque threat_analysis_switch est défini sur 1.
100
threat_analysis_sls_storageNon
La capacité de stockage des journaux pour Agentic SOC. Unité : Go.
Plage de valeurs : 0 à 9 999 999 999. La valeur doit être un multiple de 1 000.
1000
-
Exécutez la commande
terraform initpour initialiser la configuration.Une initialisation réussie produit la sortie suivante :
Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. -
Exécutez la commande
terraform applypour créer l'instance. Saisissezyeslorsque vous y êtes invité et appuyez sur Entrée.Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:Une création réussie produit la sortie suivante :
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Vérifier le déploiement
Terraform show
Exécutez la commande suivante pour afficher les ressources gérées par Terraform :
terraform show
shell@Alicloud:~/022501$ terraform show
# alicloud_threat_detection_instance.default:
resource "alicloud_threat_detection_instance" "default" {
buy_number = "30"
container_image_scan_new = "100"
create_time = "2025-02-25T01:37:09Z"
honeypot = "32"
honeypot_switch = "1"
id = "sas-pb3rcrrnr0er"
payment_type = "Subscription"
period = 1
renewal_period_unit = "M"
renewal_status = "ManualRenewal"
sas_anti_ransomware = "100"
sas_cspm_switch = "0"
sas_sc = false
sas_sdk = "1000"
sas_sdk_switch = "1"
sas_sls_storage = "100"
sas_webguard_boolean = "1"
sas_webguard_order_num = "100"
status = "Normal"
threat_analysis_switch = "0"
threat_analysis_switch1 = "0"
version_code = "level2"
vul_switch = "0"
}
Console
Dans la console Security Center, vérifiez que l'édition Enterprise et ses fonctionnalités sont activées.
Après vous être connecté, vérifiez que le libellé Enterprise s'affiche dans le coin supérieur droit de la console. Sur la page Overview, confirmez que les services Subscription et Pay-as-you-go sont tous deux affichés comme activés, ce qui indique que l'édition Enterprise et les fonctionnalités associées ont été activées avec succès.