

# Cómo evitar las implementaciones fallidas de StackSets mediante puertas de cuentas de destino
<a name="stacksets-account-gating"></a>

Una puerta de cuenta es una característica opcional que lo ayuda a verificar que una cuenta de destino cumpla determinados requisitos antes de que CloudFormation inicie las operaciones con StackSets en dicha cuenta. Esta verificación se lleva a cabo a través de una función de AWS Lambda que actúa como una comprobación previa.

Un ejemplo común de una puerta de cuenta es verificar que no haya alarmas de CloudWatch activas o sin resolver en la cuenta de destino. CloudFormation invoca la función de Lambda cada vez que inicie operaciones de pila en la cuenta de destino y solo continúa si la función devuelve el código `SUCCEEDED`. Si la función de Lambda devuelve el estado `FAILED`, CloudFormation no continúa con la operación solicitada. Si no tiene configurada una función de Lambda de puertas de cuentas, CloudFormation omite la comprobación y continúa con su operación.

Si su cuenta de destino falla una comprobación de puerta de cuenta, el número de operaciones fallidas se incrementa en el número o porcentaje de tolerancia de fallos de pilas. Para obtener más información acerca de las tolerancias ante fallos, consulte [Opciones de operaciones con StackSets](stacksets-concepts.md#stackset-ops-options).

La regulación de cuenta solo está disponible para operaciones de StackSets. Esta característica no está disponible para otras operaciones de CloudFormation más allá de StackSets.

## Requisitos
<a name="stacksets-accountgating_reqs"></a>

Para las puertas de cuentas, se deben cumplir los siguientes requisitos:
+ Su función de Lambda debe llamarse `AWSCloudFormationStackSetAccountGate` para utilizar esta característica.
+ **AWSCloudFormationStackSetExecutionRole** debe tener permisos para invocar su función de Lambda. Sin estos permisos, CloudFormation omitirá la comprobación de puertas de cuentas y continuará con las operaciones de la pila.
+ El permiso `InvokeFunction` de Lambda debe añadirse a las cuentas de destino para que funcione la regulación de la cuenta. La política de confianza de la cuenta de destino no tiene una relación de confianza con la cuenta del administrador. El siguiente es un ejemplo de declaración de política que otorga permisos `InvokeFunction` de Lambda.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "lambda:InvokeFunction"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------

## Plantillas de CloudFormation para crear funciones de Lambda
<a name="stacksets-sample-accountgate"></a>

Utilice las siguientes plantillas de ejemplo para crear funciones `AWSCloudFormationStackSetAccountGate` de Lambda. Para crear una nueva pila con una de estas plantillas, consulte [Creación de una pila en la consola de CloudFormation](cfn-console-create-stack.md).


|  Ubicación de plantilla  |  Descripción  | 
| --- | --- | 
|  [https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AccountGateSucceeded.yml](https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AccountGateSucceeded.yml)  |  Crea una pila que implementa una función de puerta de cuenta de Lambda que devolverá un estado de `SUCCEEDED`.  | 
|  [https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AccountGateFailed.yml](https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AccountGateFailed.yml)  |  Crea una pila que implementa una función de puerta de cuenta de Lambda que devolverá un estado de `FAILED`.  | 