

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.

# Instalar y configurar el motor de aprovisionamiento Terraform
<a name="install-config-engine"></a>

Para utilizar correctamente los productos de Terraform AWS Service Catalog, debe instalar y configurar un motor de aprovisionamiento de Terraform en la misma cuenta en la que administrará los productos de Terraform. Para empezar, puede utilizar el motor de aprovisionamiento de Terraform proporcionado por AWS, que instala y configura el código y la infraestructura necesarios para que funcione el motor de aprovisionamiento de Terraform. AWS Service Catalog Esta configuración única tarda aproximadamente 30 minutos. AWS Service Catalog proporciona un GitHub repositorio con instrucciones para [instalar y configurar el motor de aprovisionamiento Terraform](https://github.com/aws-samples/service-catalog-engine-for-terraform-os). 

## Determinación de cola
<a name="queue-determination"></a>

Cuando llama a una operación de aprovisionamiento, AWS Service Catalog prepara un mensaje de carga útil para enviarlo a la cola correspondiente del motor de aprovisionamiento. Para crear el ARN de la cola, AWS Service Catalog hace las siguientes suposiciones:
+ El motor de aprovisionamiento se encuentra en la cuenta del propietario del producto
+ El motor de aprovisionamiento está ubicado en la misma región en la que se realizó la llamada AWS Service Catalog 
+ Las colas del motor de aprovisionamiento siguen el esquema de nomenclatura documentado que se detalla a continuación

Por ejemplo, si ProvisionProduct se llama `us-east-1` desde la cuenta 1111111111 con un producto creado por la cuenta 0000000000000, se AWS Service Catalog supone que el ARN de SQS correcto es. `arn:aws:sqs:us-east-1:0000000000000:ServiceCatalogTerraformOSProvisionOperationQueue` 

La misma lógica se aplica a la función de Lambda llamada por `DescribeProvisioningParameters`. 

# Agregar Confused Deputy a su motor de aprovisionamiento Terraform
<a name="confused-deputy-TRFM-engine"></a>

## Claves de contexto de Confused Deputy en los puntos de conexión para restringir el acceso a las operaciones `lambda:Invoke`
<a name="confused-deputy-TRFM-lambda"></a>

La función Lambda del analizador de parámetros creada AWS Service Catalog por los motores proporcionados tiene una política de acceso que otorga permisos `lambda:Invoke` entre cuentas únicamente al director del servicio: AWS Service Catalog 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ServiceCatalogTerraformOSParameterParser"
        }
    ]
}
```

------

Este debería ser el único permiso necesario para que la integración funcione correctamente. AWS Service Catalog Sin embargo, puede restringirlo aún más utilizando la clave de contexto de `aws:SourceAccount` [Confused Deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy). Al AWS Service Catalog enviar mensajes a estas colas, AWS Service Catalog rellena la clave con el ID de la cuenta de aprovisionamiento. Esto resulta útil si tiene intención de distribuir productos mediante el uso compartido de carteras y quiere asegurarse de que solo cuentas específicas utilicen su motor.

Por ejemplo, puede restringir su motor para que solo permita solicitudes que se originen entre 000000000000 y 111111111111 con la condición que se muestra a continuación:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ServiceCatalogTerraformOSParameterParser",
            "Condition": {
                "StringLike": {
                    "aws:SourceAccount": [
                        "000000000000",
                        "111111111111"
                    ]
                }
            }
        }
    ]
}
```

------

## Claves de contexto de Confused Deputy en los puntos de conexión para restringir el acceso a las operaciones `sqs:SendMessage`
<a name="confused-deputy-TRFM-sqs"></a>

Las colas Amazon SQS de entrada a la operación de aprovisionamiento creadas AWS Service Catalog por los motores proporcionados tienen una política de acceso que concede permisos `sqs:SendMessage` entre cuentas (y el KMS asociado) únicamente al director del servicio: AWS Service Catalog 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable AWS Service Catalog to send messages to the queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "sqs:SendMessage",
            "Resource": [
                "arn:aws:sqs:us-east-1:111122223333:ServiceCatalogTerraformOSProvisionOperationQueue"
            ]
        },
        {
            "Sid": "Enable AWS Service Catalog encryption/decryption permissions when sending message to queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": [
                "kms:DescribeKey",
                "kms:Decrypt",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id"
        }
    ]
}
```

------

Este debería ser el único permiso necesario para que la integración funcione correctamente. AWS Service Catalog Sin embargo, puede restringirlo aún más utilizando la clave de contexto de `aws:SourceAccount` [Confused Deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy). Cuando AWS Service Catalog envía mensajes a estas colas, AWS Service Catalog rellena las claves con el ID de la cuenta de aprovisionamiento. Esto resulta útil si tiene intención de distribuir productos mediante el uso compartido de carteras y quiere asegurarse de que solo cuentas específicas utilicen su motor.

Por ejemplo, puede restringir su motor para que solo permita solicitudes que se originen entre 000000000000 y 111111111111 con la condición que se muestra a continuación:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable AWS Service Catalog to send messages to the queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "sqs:SendMessage",
            "Resource": [
                "arn:aws:sqs:us-east-1:111122223333:ServiceCatalogTerraformOSProvisionOperationQueue"
            ],
            "Condition": {
                "StringLike": {
                    "aws:SourceAccount": [
                        "000000000000",
                        "111111111111"
                    ]
                }
            }
        },
        {
            "Sid": "Enable AWS Service Catalog encryption/decryption permissions when sending message to queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": [
                "kms:DescribeKey",
                "kms:Decrypt",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id"
        }
    ]
}
```

------