Cloud Config le permite escribir plantillas de paquetes de cumplimiento en archivos de configuración. Puede definir, importar y exportar una plantilla de paquete de cumplimiento que contenga las reglas administradas compatibles con Cloud Config o reglas de condición creadas según sus necesidades de negocio. Esto le proporciona una herramienta potente para gestionar el cumplimiento de su empresa. Este tema describe la estructura y los parámetros de una plantilla de paquete de cumplimiento para ayudarle a definir conjuntos de reglas de cumplimiento de manera eficiente según sus necesidades de negocio.
Estructura de la plantilla
Una plantilla de paquete de cumplimiento se exporta en un archivo JSON. El nombre del archivo corresponde al nombre del paquete de cumplimiento y la extensión es .json. Puede importar una plantilla de paquete de cumplimiento desde un archivo .txt o .json. El tamaño del archivo no puede superar 1 MB. El contenido del archivo consta de dos partes: compliancePackTemplate (opcional) y configRuleTemplates (obligatoria).
compliancePackTemplate
compliancePackTemplate contiene el nombre, la descripción y el nivel de riesgo del paquete de cumplimiento. Sintaxis en formato JSON:
{
"riskLevel": 1,
"compliancePackName": "The name of the compliance package",
"description": "The description of the compliance package",
"scope": {
"complianceResourceTypes": [
"The resource types to which the rule is applicable"
],
"complianceResourceIds": [
"The ID of the evaluated resource"
],
"complianceExcludeResourceIds": [
"The ID of the excluded resource"
],
"complianceRegionIds": [
"The ID of the evaluated region"
],
"complianceExcludeRegionIds": [
"The ID of the excluded region"
],
"complianceResourceGroupIds": [
"The ID of the evaluated resource group"
],
"complianceExcludeResourceGroupIds": [
"The ID of the excluded resource group"
],
"complianceTagsScope": [
{
"tagKey": "The effective tag key",
"tagValue": "The effective tag value"
}
],
"complianceExcludeTagsScope": [
{
"tagKey": "The excluded tag key",
"tagValue": "The excluded tag value"
}
]
}
}
Parámetro | Obligatorio | Descripción |
compliancePackName | No | Nombre del paquete de cumplimiento. Se recomienda especificar un nombre basado en el escenario de cumplimiento. El nombre de un paquete de cumplimiento se determina según a continuación reglas:
|
riskLevel | No | Nivel de riesgo del paquete de cumplimiento. Este parámetro sirve para distinguir la importancia de los distintos paquetes de cumplimiento. Valores válidos:
|
description | No | Descripción del paquete de cumplimiento. Este parámetro indica los escenarios de aplicación del paquete de cumplimiento. |
scope | No | Ámbito de aplicación de la regla. |
Ejemplo:
{
"configRuleTemplates": [],
"compliancePackTemplate": {
"riskLevel": 2,
"compliancePackName": "Write a compliance package template in a configuration file",
"scope": {
"complianceResourceIds": [
"i-t4n3u1pz97547xg****.i-t4n3u1pz97547xg0****.",
"i-t4n1bxf3xr70wjh5****",
"i-t4n133q6k9czgun****",
"i-t4n3s3qqti2zaxu****"
],
"complianceResourceGroupIds": [
"rg-aek2yl36l*****"
],
"complianceTagsScope": [
{
"tagKey": "config",
"tagValue": "configTest"
}
],
"complianceRegionIds": [
"ap-southeast-1"
]
},
"description": "Performs the import and export testing for writing a compliance package template in a configuration file."
}
}
configRuleTemplates
configRuleTemplates contiene las reglas del paquete de cumplimiento. Las reglas son del tipo JSON ARRAY. Sintaxis:
[
{
"configRuleName": "The name of the rule",
"riskLevel": 3,
"scope": {
"complianceResourceTypes": [
"The resource types to which the rule is applicable"
],
"complianceResourceIds": [
"The ID of the evaluated resource"
],
"complianceExcludeResourceIds": [
"The ID of the excluded resource"
],
"complianceRegionIds": [
"The ID of the evaluated region"
],
"complianceExcludeRegionIds": [
"The ID of the excluded region"
],
"complianceResourceGroupIds": [
"The ID of the evaluated resource group"
],
"complianceExcludeResourceGroupIds": [
"The ID of the excluded resource group"
],
"complianceTagsScope": [
{
"tagKey": "The effective tag key",
"tagValue": "The effective tag value"
}
],
"complianceExcludeTagsScope": [
{
"tagKey": "The excluded tag key",
"tagValue": "The excluded tag value"
}
]
},
"description": "The description of the rule",
"source": {
"owner": "The source of the rule",
"identifier": "The identifier of the rule",
"sourceDetails": [
{
"messageType": "The trigger type of the rule",
"maximumExecutionFrequency": "The interval at which the rule is triggered"
},
{
"messageType": "The trigger type of the rule"
}
],
"conditions": "The content of the condition rule"
},
"inputParameters": {
"paramName1": "The value of the paramName1 parameter",
"paramName2": "The value of the paramName2 parameter"
}
}
]
Parámetro | Obligatorio | Descripción |
configRuleName | Sí | Nombre de la regla. |
scope.complianceResourceTypes | Sí | Tipos de recursos a los que aplica la regla. El valor puede ser una matriz JSON. |
description | No | Descripción de la regla. |
source.owner | Sí | Origen de la regla. Valores válidos:
|
source.identifier | Sí | Identificador de la regla. El valor varía según el origen de la regla:
|
source.sourceDetails.messageType | Sí | Tipo de activación de la regla. Valores válidos:
|
source.sourceDetails.maximumExecutionFrequency | No | Intervalo en el que se activa la regla. Valores válidos:
Nota Este parámetro es obligatorio si establece el parámetro |
source.conditions | No | Contenido de la regla de condición. Nota Este parámetro es obligatorio si establece el parámetro |
inputParameters | No | Parámetros de entrada de la regla. Para consultar los parámetros de entrada de una regla administrada, haga clic en el enlace correspondiente en Managed rule templates y revise la descripción del elemento Input parameter en la sección Rule details. Todos los parámetros de entrada son del tipo STRING. |
scope | No | Ámbito de aplicación de la regla. |
riskLevel | No | Nivel de riesgo de la regla. Valores válidos:
|
Ejemplo:
{
"configRuleTemplates": [
{
"configRuleName": "ecs-instance-deletion-protection-enabled",
"riskLevel": 3,
"scope": {
"complianceResourceIds": [
"i-t4n3u1pz97547xg0****.i-t4n3u1pz97547xg0****",
"i-t4n1bxf3xr70wjh5****",
"i-t4n133q6k9czgun****",
"i-t4n3s3qqti2zaxu****"
],
"complianceResourceGroupIds": [
"rg-aek2yl36lg****"
],
"complianceTagsScope": [
{
"tagKey": "config",
"tagValue": "configTest"
}
],
"complianceRegionIds": [
"ap-southea****"
],
"complianceResourceTypes": [
"ACS::ECS::Instance"
]
},
"description": "Checks whether the release protection feature is enabled for each Elastic Compute Service (ECS) instance. If so, the evaluation result is Compliant.",
"source": {
"owner": "ALIYUN",
"identifier": "ecs-instance-deletion-protection-enabled",
"sourceDetails": [
{
"messageType": "ConfigurationItemChangeNotification"
}
]
},
"inputParameters": {}
}
],
"compliancePackTemplate": {
"riskLevel": 2,
"compliancePackName": "Write a compliance package template in a configuration file",
"scope": {
"complianceResourceIds": [
"i-t4n3u1pz97547xg****.i-t4n3u1pz97547xg****",
"i-t4n1bxf3xr70wjh5****",
"i-t4n133q6k9czgunx****",
"i-t4n3s3qqti2zaxux****"
],
"complianceResourceGroupIds": [
"rg-aek2yl36lgo****"
],
"complianceTagsScope": [
{
"tagKey": "config",
"tagValue": "configTest"
}
],
"complianceRegionIds": [
"ap-southeast-1"
]
},
"description": "Performs the import and export testing for writing a compliance package template in a configuration file."
}
}
Ejemplo
{
"configRuleTemplates": [
{
"configRuleName": "ecs-instance-chargetype-check",
"riskLevel": 3,
"scope": {
"complianceResourceIds": [
"i-t4n3u1pz97547xg0****.i-t4n3u1pz97547xg*****",
"i-t4n1bxf3xr70wjh5*****",
"i-t4n133q6k9czgun*****",
"i-t4n3s3qqti2zaxu*****"
],
"complianceResourceGroupIds": [
"rg-aek2yl36l*****"
],
"complianceTagsScope": [
{
"tagKey": "config",
"tagValue": "configTest"
}
],
"complianceRegionIds": [
"ap-southeast-1"
],
"complianceResourceTypes": [
"ACS::ECS::Instance"
]
},
"description": "Checks whether the billing method of each ECS instance is subscription. If so, the evaluation result is Compliant.",
"source": {
"owner": "ALIYUN",
"identifier": "ecs-instance-chargetype-check",
"sourceDetails": [
{
"messageType": "ConfigurationItemChangeNotification"
}
]
},
"inputParameters": {}
},
{
"configRuleName": "ecs-public-access-check",
"riskLevel": 3,
"scope": {
"complianceResourceIds": [
"i-t4n3u1pz97547x*****.i-t4n3u1pz97547*****",
"i-t4n1bxf3xr70w*****",
"i-t4n133q6k9czg*****",
"i-t4n3s3qqti2zax******"
],
"complianceResourceGroupIds": [
"rg-aek2yl36l*****"
],
"complianceTagsScope": [
{
"tagKey": "config",
"tagValue": "configTest"
}
],
"complianceRegionIds": [
"ap-southeast-1"
],
"complianceResourceTypes": [
"ACS::ECS::Instance"
]
},
"description": "Checks whether a public IPv4 address or an EIP is specified for each ECS instance. If not, the evaluation result is Compliant.",
"source": {
"owner": "ALIYUN",
"identifier": "ecs-instance-no-public-ip",
"sourceDetails": [
{
"messageType": "ConfigurationItemChangeNotification"
}
]
},
"inputParameters": {}
},
{
"configRuleName": "ecs-instance-deletion-protection-enabled",
"riskLevel": 3,
"scope": {
"complianceResourceIds": [
"i-t4n3u1pz9754*****.i-t4n3u1pz97547x*****",
"i-t4n1bxf3xr70wj*****",
"i-t4n133q6k9czgu*****",
"i-t4n3s3qqti2zaxu*****"
],
"complianceResourceGroupIds": [
"rg-aek2yl36l****"
],
"complianceTagsScope": [
{
"tagKey": "config",
"tagValue": "configTest"
}
],
"complianceRegionIds": [
"ap-southeast-1"
],
"complianceResourceTypes": [
"ACS::ECS::Instance"
]
},
"description": "Checks whether the release protection feature is enabled for each ECS instance. If so, the evaluation result is Compliant.",
"source": {
"owner": "ALIYUN",
"identifier": "ecs-instance-deletion-protection-enabled",
"sourceDetails": [
{
"messageType": "ConfigurationItemChangeNotification"
}
]
},
"inputParameters": {}
}
],
"compliancePackTemplate": {
"riskLevel": 2,
"compliancePackName": "Write a compliance package template in a configuration file",
"scope": {
"complianceResourceIds": [
"i-t4n3u1pz97547xg0*****.i-t4n3u1pz97547xg******",
"i-t4n1bxf3xr70w******",
"i-t4n133q6k9czgun*****",
"i-t4n3s3qqti2zaxux*****"
],
"complianceResourceGroupIds": [
"rg-aek2yl36l******"
],
"complianceTagsScope": [
{
"tagKey": "config",
"tagValue": "configTest"
}
],
"complianceRegionIds": [
"ap-southeast-1"
]
},
"description": "Performs the import and export testing for writing a compliance package template in a configuration file."
}
}
Importar y exportar una plantilla de paquete de cumplimiento
Importe a Cloud Config una plantilla de paquete de cumplimiento desde un archivo .json o .txt. También puede exportar una plantilla de paquete de cumplimiento en un archivo .json. Después, comparta y respalde la plantilla exportada. Esto le ayuda a gestionar las reglas de forma flexible y cómoda.