

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.

# Uso de AWS Service Catalog restricciones
<a name="constraints"></a>

Aplique restricciones para controlar las reglas que se aplican a un producto de una cartera concreta cuando los usuarios finales lo lanzan. Cuando los usuarios finales lancen el producto, verán las reglas que haya aplicado mediante restricciones. Puede aplicar restricciones a un producto una vez que se este se incluya en una cartera. Las restricciones se activan tan pronto como se crean y se aplican a todas las versiones de un producto que no se hayan lanzado.

**Topics**
+ [Restricciones de lanzamiento](constraints-launch.md)
+ [Restricciones de notificación](constraints-notification.md)
+ [Restricciones de actualización de etiquetas](constraints-resourceupdate.md)
+ [Restricciones de conjunto de pilas](constraints-stackset.md)
+ [Restricciones de plantilla](catalogs_constraints_template-constraints.md)

# AWS Service Catalog Restricciones de lanzamiento
<a name="constraints-launch"></a>

Una restricción de lanzamiento especifica la función AWS Identity and Access Management (IAM) que AWS Service Catalog asume un usuario final cuando lanza, actualiza o cancela un producto. Una función de IAM es un conjunto de permisos que un usuario o AWS servicio puede asumir temporalmente para utilizar los servicios. AWS Para obtener un ejemplo introductorio, consulte:
+ CloudFormation tipo de producto: [Paso 6: agregar una restricción de lanzamiento para asignar un rol de IAM.](getstarted-launchconstraint.md)
+ Tipo de producto de Terraform Open Source o Terraform Cloud: [Paso 5: crear roles de lanzamiento](getstarted-launchrole-Terraform.md)

Las restricciones de lanzamiento se aplican a los productos de la cartera (asociación producto-cartera). Las restricciones de lanzamiento no se aplican a nivel de cartera ni a un producto en todas las carteras. Para asociar una restricción de lanzamiento con todos los productos de una cartera, debe aplicar la restricción de lanzamiento individualmente a cada producto.

Sin una restricción de lanzamiento, los usuarios finales deben lanzar y administrar los productos con sus propias credenciales de IAM. Para ello, deben tener permisos para CloudFormation los AWS servicios que utilizan los productos y AWS Service Catalog. En cambio, el uso de un rol de lanzamiento permite limitar los permisos de los usuarios finales al mínimo necesario para el producto en cuestión. Para obtener más información acerca de los permisos de los usuarios finales, consulte [Identity and Access Management en AWS Service Catalog](controlling_access.md).

Para crear y asignar roles de IAM, debe contar con los siguientes permisos administrativos de IAM:
+ `iam:CreateRole`
+ `iam:PutRolePolicy`
+ `iam:PassRole`
+ `iam:Get*`
+ `iam:List*`

## Configuración de un rol de lanzamiento
<a name="constraints-launch-role"></a>

El rol de IAM que se asigna a un producto como restricción de lanzamiento debe tener permisos para utilizar lo siguiente:

**Para los productos de Cloudformation**
+ La política administrada `arn:aws:iam::aws:policy/AWSCloudFormationFullAccess` CloudFormation 
+ Los servicios de la AWS CloudFormation plantilla del producto
+ Acceso de lectura a la AWS CloudFormation plantilla en un bucket de Amazon S3 propiedad del servicio. 

**Para productos de Terraform**
+ los servicios utilizados en la plantilla de Amazon S3 del producto
+ Acceso de solo lectura a la plantilla de Amazon S3 en un bucket de Amazon S3 propiedad del servicio. 
+ `resource-groups:Tag` para etiquetar en una instancia de Amazon EC2 (asumido por el motor de aprovisionamiento Terraform al realizar operaciones de aprovisionamiento)
+ `resource-groups:CreateGroup`para el etiquetado de grupos de recursos (supuesto AWS Service Catalog para crear grupos de recursos y asignar etiquetas) 

La política de confianza del rol de IAM debe AWS Service Catalog permitir asumir el rol. En el siguiente procedimiento, la política de confianza se establecerá automáticamente al seleccionar AWS Service Catalog el tipo de función. Si no utiliza la consola, consulte la sección *Creación de políticas de confianza para AWS los servicios que asumen funciones* en [Cómo utilizar las políticas de confianza con las funciones de IAM](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/). 

**nota**  
Los permisos `servicecatalog:ProvisionProduct`, `servicecatalog:TerminateProvisionedProduct` y `servicecatalog:UpdateProvisionedProduct` no se pueden asignar en una función de lanzamiento. Debe usar los roles de IAM tal y como se muestra en los pasos de la política en línea en la sección [Conceder permisos a los usuarios finales de AWS Service Catalog .](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-iamenduser.html)

**nota**  
Para ver los productos y recursos de Cloudformation aprovisionados en la AWS Service Catalog consola, los usuarios finales necesitan CloudFormation acceso de lectura. Para ver los productos y recursos aprovisionados en la consola **no** se utiliza el rol de lanzamiento.

**Para crear un rol de lanzamiento**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   Los productos de Terraform requieren configuraciones de roles de lanzamiento adicionales. Para obtener más información, consulte [Paso 5: crear roles de lanzamiento](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-launchrole-Terraform) en *Primeros pasos con un producto de Terraform Open Source*. 

1. Elija **Roles**.

1. Elija **Crear nuevo rol**.

1. Escriba un nombre de función y elija **Next Step**.

1. En **Roles de servicio de AWS ** junto a **AWS Service Catalog** elija **Seleccionar**.

1. En la página **Attach Policy**, elija **Next Step**.

1. Para crear una función, elija **Create Role**. 

**Para adjuntar una política al nuevo rol**

1. Elija la función que ha creado para ver la página de detalles de dicha función.

1. Elija la pestaña **Permissions** y, a continuación, expanda la sección **Inline Policies**. A continuación, elija **click here**.

1. Elija **Custom Policy** y después **Select**. 

1. Introduzca un nombre para la política y, a continuación, pegue lo siguiente en el editor **Policy Document**: 

   ```
     
             "Statement":[
         {
            "Effect":"Allow",
            "Action":[
               "s3:GetObject"
            ],
            "Resource":"*",
            "Condition":{
               "StringEquals":{
                  "s3:ExistingObjectTag/servicecatalog:provisioning":"true"
               }
            }
      ]
   }
   ```
**nota**  
Al configurar un rol de lanzamiento para una restricción de lanzamiento, debe usar esta cadena: `"s3:ExistingObjectTag/servicecatalog:provisioning":"true"`. 

1. Agregue una línea a la política por cada servicio adicional que el producto utilice. Por ejemplo, si desea agregar permisos para Amazon Relational Database Service (Amazon RDS), escriba una coma al final de la última línea de la lista `Action` y, a continuación, agregue la siguiente línea: 

   ```
   "rds:*"
   ```

1. Seleccione **Apply Policy**.

## Aplicación de una restricción de lanzamiento
<a name="constraints-launch-constraint"></a>

Tras configurar el rol de lanzamiento, asigne el rol al producto como una restricción de lanzamiento. Esta acción indica AWS Service Catalog que hay que asumir el rol cuando un usuario final lanza el producto. 

**Para asignar el rol a un producto**

1. Abra la consola de Service Catalog en [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/).

1. Elija la cartera que contiene el producto.

1. Elija la pestaña **Constraints (Restricciones)** y elija **Create constraint (Crear restricción)**.

1. Elija el producto en **Product (Producto)** y elija **Launch (Lanzar)** en **Constraint type (Tipo de restricción)**. Elija **Continuar**.

1. En la sección **Restricción de lanzamiento**, puede seleccionar un rol de IAM de su cuenta y especificar un ARN de rol de IAM o escribir el nombre del rol.

   Si especifica el nombre del rol y si una cuenta utiliza la restricción de lanzamiento, se utilizará el rol de IAM con ese nombre en la cuenta. Este enfoque permite que las restricciones del rol de lanzamiento sean independientes de la cuenta, de modo que pueda crear menos recursos por cuenta compartida. 
**nota**  
El nombre del rol especificado debe existir en la cuenta creada para crear la restricción de lanzamiento y la cuenta del usuario que lanza un producto con esta restricción de lanzamiento. 

1. Después de especificar el rol de IAM, elija **Create (Crear)**.

## Añadir Confused Deputy a una restricción de lanzamiento
<a name="constraint-confused-deputy"></a>

AWS Service Catalog admite la protección de [Confused](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) Deputy para aquellos APIs que se ejecutan con una solicitud de Assume Role. Al añadir una restricción de lanzamiento, puede restringir el acceso a al rol de lanzamiento mediante las condiciones de la política de confianza del rol de lanzamiento `sourceAccount` y `sourceArn`. Garantiza que el rol de lanzamiento sea llamado por una fuente confiable.

En el siguiente ejemplo, el AWS Service Catalog usuario final pertenece a la cuenta 1111. Cuando el administrador de AWS Service Catalog crea una `LaunchConstraint` para un producto, el usuario final puede especificar las siguientes condiciones en la política de confianza del rol de lanzamiento para restringir asumir el rol a la cuenta 111111111111.

```
"Condition":{
   "ArnLike":{
      "aws:SourceArn":"arn:aws:servicecatalog:us-east-1:111111111111:*"
   },
   "StringEquals":{
      "aws:SourceAccount":"111111111111"
   }
  
}
```

Un usuario que aprovisiona un producto con la `LaunchConstraint` debe tener el mismo `AccountId` (111111111111). En caso contrario, la operación falla con un error `AccessDenied`, lo que impide un uso indebido del rol de lanzamiento.

Los siguientes elementos AWS Service Catalog APIs están protegidos por la protección de Confused Deputy:
+ `LaunchConstraint`
+ `ProvisionProduct`
+ `UpdateProvisionedProduct`
+ `TerminateProvisionedProduct`
+ `ExecuteProvisionedProductServiceAction`
+ `CreateProvisionedProductPlan`
+ `ExecuteProvisionedProductPlan`

La `sourceArn ` protección AWS Service Catalog solo admite plantillas ARNs, como «`arn:<aws-partition>:servicecatalog:<region>:<accountId>:`». No admite un recurso ARNs específico.

## Cómo verificar la restricción de lanzamiento
<a name="constraints-launch-test"></a>

Para comprobar que AWS Service Catalog utiliza la función de lanzamiento del producto y lo aprovisiona correctamente, inicie el producto desde la AWS Service Catalog consola. Para probar una restricción antes de distribuírsela a los usuarios, cree una cartera de prueba que contenga los mismos productos y pruebe las restricciones con ella.

**Para lanzar el producto**

1. En el menú de la AWS Service Catalog consola, elija **Service Catalog**, **End user**.

1. Elija el producto para abrir la página **Detalles del producto**. En la tabla **Opciones de lanzamiento**, compruebe que aparezca el nombre de recurso de Amazon (ARN) de la función.

1. Seleccione **Lanzar producto**.

1. Continúe con los demás pasos del lanzamiento y rellene la información que se le pida.

1. Compruebe que el producto se inicia correctamente.

# AWS Service Catalog Restricciones de notificación
<a name="constraints-notification"></a>

**nota**  
AWS Service Catalog no admite las restricciones de notificación para los productos Terraform Open Source o Terraform Cloud. 

Una restricción de notificación especifica un tema de Amazon SNS para recibir notificaciones sobre los eventos de la pila. 

Utilice el siguiente procedimiento para crear un tema de SNS y suscríbase a él.

**Para crear un tema de SNS y una suscripción**

1. [Abra la consola Amazon SNS en https://console.aws.amazon.com/sns/ la versión 3/home.](https://console.aws.amazon.com/sns/v3/home)

1. Seleccione **Crear tema**.

1. Escriba el nombre del tema y, a continuación, elija **Create topic**.

1. Seleccione **Crear subscripción**.

1. En **Protocol**, seleccione **Email**. En **Endpoint**, escriba una dirección de correo electrónico que pueda utilizar para recibir notificaciones. Seleccione **Create subscription**.

1. Recibirá un email de confirmación con el asunto `AWS Notification - Subscription Confirmation`. Abra el mensaje y siga las instrucciones para completar la suscripción.

Utilice el siguiente procedimiento para aplicar una restricción de notificación mediante el tema de SNS que ha creado en el procedimiento anterior.

**Para aplicar una restricción de notificación a un producto**

1. Abra la consola de Service Catalog en [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/).

1. Elija la cartera que contiene el producto.

1. Expanda **Constraints (Restricciones)** y elija **Add constraints (Añadir restricciones)**.

1. Elija el producto de **Producto** and establezca **Tipo de restricción** como **Notificación**. Elija **Continuar**.

1. Elija **Choose a topic from your account** y seleccione el tema de SNS que ha creado en **Topic Name**.

1. Seleccione **Enviar**.

# AWS Service Catalog Restricciones de actualización de etiquetas
<a name="constraints-resourceupdate"></a>

**nota**  
AWS Service Catalog no admite las restricciones de actualización de etiquetas para los productos de código abierto de Terraform.

Con las restricciones de actualización de etiquetas, AWS Service Catalog los administradores pueden permitir o impedir que los usuarios finales actualicen las etiquetas de los recursos asociados a un producto aprovisionado. Si se autoriza la actualización de etiquetas, se aplicarán nuevas etiquetas asociadas a la cartera o al producto a los recursos aprovisionados durante la actualización de un producto aprovisionado. 

**Para habilitar las actualizaciones de etiquetas de un producto**

1. Abra la consola de Service Catalog en [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/).

1. Elija la cartera que contiene el producto que desea actualizar.

1. Elija la pestaña **Restricciones** y elija **Crear restricción**.

1. En **Constraint type (Tipo de restricción)**, elija **Tag Update (Actualización de etiquetas)**.

1. Elija el producto en **Product (Producto)** y, a continuación, seleccione **Continue (Continuar)**.

1. En la **página Tag Updates (Actualizaciones de etiquetas)**, seleccione **Enable Tag Updates (Habilitar actualizaciones de etiquetas)**.

1. Seleccione **Enviar**.

# AWS Service Catalog Restricciones del conjunto de pilas
<a name="constraints-stackset"></a>

**nota**  
AWS Service Catalog no admite las restricciones de conjuntos de pilas para los productos de código abierto de Terraform.
AutoTags actualmente no son compatibles con CloudFormation StackSets. 

Una restricción de conjunto de pilas le permite configurar las opciones de despliegue de productos mediante CloudFormation StackSets. Puede especificar varias cuentas y regiones para el lanzamiento del producto. Los usuarios finales pueden administrar esas cuentas y determinar dónde se implementan los productos y el orden de implementación.

**Para aplicar una restricción de conjunto de pilas a un producto**

1. Abra la consola de Service Catalog en [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/).

1. Seleccione la cartera con el producto que desee.

1. Elija la pestaña **Restricciones** y luego elija **Crear restricción**.

1. En **Producto**, seleccione el producto. En **Tipo de restricción**, seleccione **Conjunto de pilas**. 

1. Configure las cuentas, las regiones y los permisos para las restricciones de su conjunto de pilas.
   + En la **Configuración de la cuenta**, identifique las cuentas en las que desea crear los productos.
   + En la **Configuración regional**, seleccione las regiones geográficas en las que desea implementar los productos y el orden en el que desea que se implementen esos productos en esas regiones.
   + En **Permisos**, elija un rol de StackSet administrador de IAM para administrar sus cuentas de destino. Si no eliges un rol, StackSets usa el ARN predeterminado. [Obtenga más información sobre la configuración de permisos de conjunto de pilas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html).

1. Seleccione **Crear**.

# AWS Service Catalog Restricciones de plantilla
<a name="catalogs_constraints_template-constraints"></a>

**nota**  
AWS Service Catalog no admite restricciones de plantilla para los productos Terraform Open Source o Terraform Cloud. 

Para limitar las opciones que los usuarios finales tienen a su disposición cuando lanzan un producto, se aplican restricciones de plantilla. Aplique restricciones de plantilla para asegurarse de que los usuarios finales puedan usar los productos sin infringir los requisitos de conformidad de la organización. Aplicas restricciones de plantilla a un producto de una AWS Service Catalog cartera. Una cartera debe contener uno o varios productos para que sea posible definir restricciones de plantilla.

Una restricción de plantilla consiste en una o más reglas que limitan los valores permitidos para los parámetros que se definen en la plantilla subyacente CloudFormation del producto. Los parámetros de una plantilla de CloudFormation definen el conjunto de valores que los usuarios pueden especificar al crear una pila. Por ejemplo, un parámetro podría definir los distintos tipos de instancias entre los que los usuarios pueden elegir al lanzar una pila que incluye EC2 instancias.

Si el conjunto de valores de parámetros de una plantilla es demasiado amplio para los destinatarios de la cartera, puede definir restricciones de plantilla con el fin de limitar los valores que los usuarios pueden elegir al lanzar un producto. Por ejemplo, si los parámetros de la plantilla incluyen tipos de EC2 instancias que son demasiado grandes para los usuarios que deberían usar solo tipos de instancias pequeños (como `t2.micro` o`t2.small`), puedes añadir una restricción de plantilla para limitar los tipos de instancias que pueden elegir los usuarios finales. Para obtener más información sobre los parámetros CloudFormation de la plantilla, consulta [Parámetros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) en la *Guía del CloudFormation usuario*.

Las restricciones de plantilla están vinculadas a una cartera. Si se aplican restricciones de plantilla a un producto de una cartera y, a continuación, se incluye el producto en otra cartera, las restricciones no se aplicarán al producto en la segunda cartera.

Si se aplica una restricción de plantilla a un producto que ya se ha compartido con los usuarios, la restricción se activará de inmediato para todos los lanzamientos de productos posteriores y para todas las versiones del producto que contenga esa cartera.

Las reglas de restricción de plantillas se definen mediante un editor de reglas o escribiéndolas como texto JSON en la consola de AWS Service Catalog administración. Para obtener más información sobre las reglas, su sintaxis y ejemplos, consulte [Reglas de restricciones de plantilla](reference-template_constraint_rules.md).

Para probar una restricción antes de distribuírsela a los usuarios, cree una cartera de prueba que contenga los mismos productos y pruebe las restricciones con ella.

**Para aplicar restricciones de plantilla a un producto**

1. Abra la consola de Service Catalog en [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/).

1. En la página **Carteras**, elija la cartera que contiene el producto al que desee aplicar una restricción de plantilla. 

1. Expanda **Restricciones** y elija **Añadir restricciones**.

1. En la ventana **Seleccionar el producto y el tipo**, para **Producto** elija el producto para el que desea definir las restricciones de plantilla. A continuación, en **Tipo de restricción**, elija **Plantilla**. Elija **Continuar**.

1. En la página **Template constraint builder** edite las reglas de restricción mediante el editor de JSON o la interfaz del creador de reglas.
   + Para editar el código JSON de la regla, elija la pestaña **Editor de texto de restricción**. En esta pestaña se proporcionan varios ejemplos para ayudarle a comenzar.

     Para crear las reglas mediante una interfaz de creador de reglas, elija la pestaña **Creador de reglas**. En ella, puede elegir cualquier parámetro que se especifica en la plantilla del producto e indicar los valores admisibles para ese parámetro. En función del tipo de parámetro, debe indicar los valores admisibles eligiendo los elementos en una lista de comprobación, especificando un número o especificando un conjunto de valores separados por comas en una lista.

     Cuando haya terminado de crear la regla, elija **Añadir regla**. La regla aparecerá en la tabla en la pestaña **Creador de reglas** Para revisar y editar el resultado JSON, elija la pestaña **Editor de texto de restricción**.

1. Cuando haya terminado de editar las reglas de la restricción, elija **Enviar**. Para ver la restricción, vaya a la página de detalles de la cartera y amplíe **Restricciones**.

# Reglas de restricciones de plantilla
<a name="reference-template_constraint_rules"></a>

Las reglas que definen las restricciones de plantilla en una AWS Service Catalog cartera describen cuándo los usuarios finales pueden utilizar la plantilla y qué valores pueden especificar para los parámetros que se declaran en la CloudFormation plantilla utilizada para crear el producto que están intentando utilizar. Las reglas son útiles para impedir que los usuarios finales especifiquen accidentalmente un valor incorrecto. Por ejemplo, puede añadir una regla para comprobar si los usuarios finales especificaron una subred válida en una VPC determinada o `m1.small` usaron tipos de instancia para entornos de prueba. CloudFormation usa reglas para validar los valores de los parámetros antes de crear los recursos para el producto.

Cada regla consta de dos propiedades: una condición de regla (opcional) y declaraciones (obligatorias). La condición de regla determina cuándo surte efecto una regla. Las declaraciones describen qué valores pueden especificar los usuarios para un parámetro determinado. Si no se define la condición de regla, las declaraciones de la regla surten efecto en todos los casos. Para definir una condición de regla y las declaraciones, se utilizan *funciones intrínsecas específicas de reglas*, que son funciones que solo se pueden utilizar en la sección `Rules` de una plantilla. Puede anidar funciones, pero el resultado final de una condición de regla o una declaración debe ser verdadero o falso.

Por ejemplo, supongamos que ha declarado una VPC y un parámetro de subred en la sección `Parameters`. Puede crear una regla que valide que una subred determinada está en una VPC. Por lo tanto, cuando un usuario especifica una VPC, CloudFormation evalúa la afirmación para comprobar si el valor del parámetro de subred está en esa VPC antes de crear o actualizar la pila. Si el valor del parámetro no es válido, no podrá crear ni actualizar la pila CloudFormation inmediatamente. Si los usuarios no especifican una VPC, CloudFormation no comprueba el valor del parámetro de subred.

## Sintaxis
<a name="template-constraint-rules-syntax"></a>

La sección `Rules` de una plantilla consta del nombre de clave `Rules`, seguido de un único signo de dos puntos. Todas las declaraciones de regla van entre llaves. Si se declaran varias reglas, deben delimitarse mediante comas. Para cada regla, se declara un nombre lógico entre comillas seguido de un signo de dos puntos y de las llaves que contienen la condición de regla y las declaraciones.

Una regla puede incluir una propiedad `RuleCondition` y necesariamente debe incluir una propiedad `Assertions`. Para cada regla, se puede definir una sola condición de regla. En la propiedad `Assertions` se pueden definir una o varias declaraciones. Puede definir una condición de regla y declaraciones mediante funciones intrínsecas específicas de reglas, como se muestra en la siguiente pseudoplantilla:

```
"Rules":{
   "Rule01":{
      "RuleCondition":{
         "Rule-specific intrinsic function"
      },
      "Assertions":[
         {
            "Assert":{
               "Rule-specific intrinsic function"
            },
            "AssertDescription":"Information about this assert"
         },
         {
            "Assert":{
               "Rule-specific intrinsic function"
            },
            "AssertDescription":"Information about this assert"
         }
      ]
   },
   "Rule02":{
      "Assertions":[
         {
            "Assert":{
               "Rule-specific intrinsic function"
            },
            "AssertDescription":"Information about this assert"
         }
      ]
   }
}
```

La pseudoplantilla muestra una sección de `Rules` que contiene dos reglas con el nombre `Rule01` y `Rule02`. `Rule01` incluye una condición de regla y dos declaraciones. Si la función de la condición de regla se evalúa en true (verdadero), se evalúan y aplican ambas funciones en cada declaración. Si la condición de regla es falsa, la regla no surte efecto. `Rule02` siempre surte efecto porque no tiene una condición de regla, lo que significa que la afirmación siempre se evalúa y aplica.

Para obtener información sobre las funciones intrínsecas específicas de las reglas para definir las condiciones y afirmaciones de las reglas, consulte [Funciones de regla de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-rules.html) en la *Guía del usuario de AWS CloudFormation *.

## Ejemplo: comprobación condicional del valor de un parámetro
<a name="template-constraint-rules-example"></a>

Las dos reglas siguientes comprueban el valor del parámetro `InstanceType`. En función del valor del parámetro Environment (`test` o `prod`), el usuario debe especificar `m1.small` o `m1.large` para el parámetro `InstanceType`. Los parámetros `InstanceType` y `Environment` deben declararse en la sección `Parameters` de la misma plantilla.

```
"Rules" : {
  "testInstanceType" : {
    "RuleCondition" : {"Fn::Equals":[{"Ref":"Environment"}, "test"]},
    "Assertions" : [
      {
        "Assert" :  { "Fn::Contains" : [ ["m1.small"], {"Ref" : "InstanceType"} ] },
        "AssertDescription" : "For the test environment, the instance type must be m1.small"
      }
    ]
  },
  "prodInstanceType" : {
    "RuleCondition" : {"Fn::Equals":[{"Ref":"Environment"}, "prod"]},
    "Assertions" : [
      {
        "Assert" :  { "Fn::Contains" : [ ["m1.large"], {"Ref" : "InstanceType"} ] },
        "AssertDescription" : "For the prod environment, the instance type must be m1.large"
      }
    ]
  }
}
```