

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de plantillas para paquetes de conformidad personalizados para AWS Config
<a name="custom-conformance-pack"></a>

Un paquete de conformidad personalizado es un conjunto único de reglas de AWS Config y acciones de corrección que se puede implementar fácilmente en una cuenta y una región de AWS o en una organización en AWS Organizations.

Para crear un paquete de conformidad personalizado, siga los pasos de la siguiente sección **Personalización de la plantilla** para crear un archivo YAML que incluya la lista de [reglas de AWS Config administradas](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html) o las [reglas personalizadas de AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html) con las que quiere trabajar.

**Topics**
+ [Terminología](#custom-conformance-pack-terminology)
+ [Personalización de la plantilla](#create-yaml-file.title)

## Terminología
<a name="custom-conformance-pack-terminology"></a>

Las *reglas administradas de AWS Config* son reglas predefinidas propiedad de AWS Config.

Las *reglas personalizadas de AWS Config* son reglas que se crean desde cero.

Hay dos formas de crear reglas personalizadas de AWS Config: con las funciones de Lambda ([Guía para desarrolladores de AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-concepts.html#gettingstarted-concepts-function)) y con Guard ([Guard GitHub Repository](https://github.com/aws-cloudformation/cloudformation-guard)), un lenguaje de políticas como código. Las reglas personalizadas de AWS Config creadas con AWS Lambda se denominan *reglas de Lambda personalizadas de AWS Config* y las reglas personalizadas de AWS Config creadas con Guard se denominan *reglas de políticas personalizadas de AWS Config*.

## Personalización de la plantilla
<a name="create-yaml-file.title"></a>

 **Crear el archivo YAML** 

Para crear un archivo YAML, abra un editor de texto y guarde el archivo como *.yaml*. 

**nota**  
El archivo incluirá una sección **Parámetros** y una **Recursos**.

**Parámetros**

La sección `Parameters` del archivo YAML corresponde a los parámetros de regla del conjunto de reglas de AWS Config que añadirá más adelante en la sección `Resources`. Cree la sección `Parameters` copiando y pegando el siguiente bloque de código en su archivo YAML, personalizándolo según sea necesario y repitiéndolo para cada parámetro de la regla.

```
Parameters:    
    NameOfRuleParamNameOfRuleParameter: 
        Default: Parameter value
        Type: Type    
    ...
```

Por ejemplo:

```
Parameters:
    IamPasswordPolicyParamMinimumPasswordLength:
        Default: '14'
        Type: String
```

**nota**  
Al seleccionar las reglas de AWS Config para crear el paquete de conformidad personalizado, compruebe que tiene los recursos aprovisionados en su cuenta y que se evaluarán en función de las reglas de AWS Config.

1. La primera línea de la sección de parámetros después de `Parameters:` es una cadena concatenada *NameOfRule* \$1 Param \$1 *NameOfRuleParameter*.

   1. Sustituya `NameOfRule` por un nombre coherente que haya creado para la regla. Por ejemplo, podría ser **IamPasswordPolicy** para la regla **iam-password-policy**.

   1. Tipo `Param`.

   1. A continuación, sustituya `NameOfRuleParameter` por el nombre del parámetro de la regla especificada. En el caso de las reglas de AWS Config administradas, el nombre del parámetro de regla está en la [lista de reglas de AWS Config administradas](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) (por ejemplo, **MinimumPasswordLength** es el nombre de un parámetro de regla para la regla **iam-password-policy**). En el caso de las reglas personalizadas de AWS Config, el nombre del parámetro de regla es el nombre elegido al crear la regla.

1. Si utiliza una regla administrada de AWS Config, busque la regla de AWS Config adecuada en la lista de reglas administradas para conocer los valores aceptados para `Default` y `Type` para su regla en particular. En el caso de las reglas personalizadas de AWS Config, utilice los valores seleccionados al crear la regla.
**nota**  
Para cada parámetro debe especificar `Type`. `Type` puede ser String, int, double, CSV, boolean y StringMap.

**Recursos**

En la sección `Resources` se enumeran las reglas que se van a añadir al paquete de conformidad personalizado. Añada el siguiente bloque `Resources` directamente debajo de la sección `Parameters`, personalícelo según sea necesario y repítalo para cada regla. Para obtener más información sobre las especificaciones, consulte [AWS::Config::ConfigRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#aws-resource-config-configrule-syntax).

```
Resources:
     NameOfRule:
        Properties:
            ConfigRuleName: ActualConfigRuleName  
            InputParameters:
                NameOfRuleParameter: !Ref NameOfRuleParamNameOfRuleParameter
            Source:
                Owner: Owner
                SourceIdentifier: SOURCE_IDENTIFIER
        Type: AWS::Config::ConfigRule
     ...
```

Por ejemplo:

```
Resources:
    IamPasswordPolicy:
        Properties:
            ConfigRuleName: iam-password-policy
            InputParameters:
                MinimumPasswordLength: !Ref IamPasswordPolicyParamMinimumPasswordLength
            Source:
                Owner: AWS
                SourceIdentifier: IAM_PASSWORD_POLICY
        Type: AWS::Config::ConfigRule
```

**nota**  
Al seleccionar las reglas de AWS Config para crear el paquete de conformidad personalizado, compruebe que dispone de los recursos que se evaluarán para las reglas de AWS Config aprovisionadas en su cuenta. Para obtener más información, consulte [Tipos de recursos admitidos](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html).

1. Sustituya `NameOfRule` por el mismo nombre creado en la sección `Parameters`. 

1. En el caso de las reglas administradas de AWS Config, sustituya `ActualConfigRuleName` por el título de la página de reglas correspondiente en la [Lista de reglas administradas de AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). Para las reglas personalizadas de AWS Config, use el nombre de la regla de Config elegido al crear la regla. 

1. Sustituya `NameOfRuleParameter` por el mismo nombre usado en la sección `Parameters`. Después de los dos puntos, copie y pegue la misma cadena concatenada de `!Ref` \$1 *NameOfRule* \$1 Param \$1 *NameOfRuleParameter* que creó en la sección `Parameters`.

1. Cambie `Owner` por el valor adecuado.
**nota**  
**Reglas de AWS Config administradas**  
En el caso de las reglas de AWS Config administradas, el valor de `Owner` será `AWS`.  
**Reglas personalizadas de AWS Config**  
En el caso de las reglas personalizadas de AWS Config creadas con Guard, el valor de `Owner` será `CUSTOM_POLICY`. En el caso de las reglas personalizadas de AWS Config creadas con Lambda, el valor de `Owner` será `CUSTOM_LAMBDA`.

1. Cambie `SOURCE_IDENTIFIER` por el valor adecuado.
**nota**  
**Reglas de AWS Config administradas**  
En el caso de las reglas de AWS Config administradas, copie el identificador siguiendo el enlace de la regla que seleccione en la [Lista de reglas de AWS Config administradas](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) (por ejemplo, el identificador de origen de la regla **access-keys-rotated** es **ACCESS\$1KEYS\$1ROTATED**).   
**Reglas personalizadas de AWS Config**  
Para las reglas personalizadas de AWS Config creadas con Lambda, el `SourceIdentifier` es el nombre de recurso de Amazon (ARN) de la función de AWS Lambda de la regla, como `arn:aws:lambda:us-east-2:123456789012:function:ActualConfigRuleName`. Para las reglas personalizadas de AWS Config creadas con Guard, este campo no es necesario.

En conjunto, el paquete de conformidad personalizado que ha rellenado debería empezar a tener un aspecto similar al siguiente, que es un ejemplo en el que se utilizan estas reglas de AWS Config administradas: **iam-password-policy**, **access-keys-rotated** e **iam-user-unused-credentials-check**

```
Parameters:
    IamPasswordPolicyParamMinimumPasswordLength:
        Default: '14'
        Type: String
    AccessKeysRotatedParamMaxAccessKeyAge:
        Default: '90'
        Type: String
    IamUserUnusedCredentialsCheckParamMaxCredentialUsageAge:
        Default: '45'
        Type: String
Resources:
    IamPasswordPolicy:
        Properties:
            ConfigRuleName: iam-password-policy
            InputParameters:
                MinimumPasswordLength: !Ref IamPasswordPolicyParamMinimumPasswordLength
            Source:
                Owner: AWS
                SourceIdentifier: IAM_PASSWORD_POLICY
        Type: AWS::Config::ConfigRule    
    AccessKeysRotated:
        Properties:
            ConfigRuleName: access-keys-rotated
            InputParameters:
                maxAccessKeyAge: !Ref AccessKeysRotatedParamMaxAccessKeyAge
            Source:
                Owner: AWS
                SourceIdentifier: ACCESS_KEYS_ROTATED
        Type: AWS::Config::ConfigRule
    IamUserUnusedCredentialsCheck:
        Properties:
            ConfigRuleName: iam-user-unused-credentials-check
            InputParameters:
                maxCredentialUsageAge: !Ref IamUserUnusedCredentialsCheckParamMaxCredentialUsageAge
            Source:
                Owner: AWS
                SourceIdentifier: IAM_USER_UNUSED_CREDENTIALS_CHECK
        Type: AWS::Config::ConfigRule
```