

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Installer et configurer le moteur de provisionnement Terraform
<a name="install-config-engine"></a>

Pour utiliser correctement les produits Terraform avec AWS Service Catalog, vous devez installer et configurer un moteur de provisionnement Terraform dans le même compte que celui où vous allez administrer les produits Terraform. Pour commencer, vous pouvez utiliser le moteur de provisionnement Terraform fourni par AWS, qui installe et configure le code et l'infrastructure nécessaires au fonctionnement du moteur de provisionnement Terraform. AWS Service Catalog Cette configuration unique prend environ 30 minutes. AWS Service Catalog fournit un GitHub référentiel contenant des instructions sur l'[installation et la configuration du moteur de provisionnement Terraform](https://github.com/aws-samples/service-catalog-engine-for-terraform-os). 

## Détermination des files d'attente
<a name="queue-determination"></a>

Lorsque vous appelez une opération de provisionnement, AWS Service Catalog prépare un message de charge utile à envoyer à la file d'attente correspondante dans le moteur de provisionnement. Afin de créer l'ARN pour la file d'attente, AWS Service Catalog fait les hypothèses suivantes :
+ Le moteur de provisionnement se trouve dans le compte du propriétaire du produit
+ Le moteur de provisionnement est situé dans la même région que celle dans laquelle l'appel AWS Service Catalog a été effectué
+ Les files d'attente du moteur de provisionnement suivent le schéma de dénomination documenté détaillé ci-dessous

Par exemple, s'il ProvisionProduct est appelé `us-east-1` depuis le compte 1111111111 à l'aide d'un produit créé par le compte 0000000000000, cela suppose que AWS Service Catalog le bon ARN SQS est. `arn:aws:sqs:us-east-1:0000000000000:ServiceCatalogTerraformOSProvisionOperationQueue` 

La même logique s'applique à la fonction Lambda appelée par. `DescribeProvisioningParameters` 

# Ajouter Confused Deputy à votre moteur de provisionnement Terraform
<a name="confused-deputy-TRFM-engine"></a>

## Touches contextuelles adjointes confuses sur les terminaux pour restreindre l'accès aux opérations `lambda:Invoke`
<a name="confused-deputy-TRFM-lambda"></a>

La fonction Lambda de l'analyseur de paramètres créée AWS Service Catalog par les moteurs fournis dispose d'une politique d'accès qui accorde des autorisations `lambda:Invoke` entre comptes uniquement au principal du service : 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"
        }
    ]
}
```

------

Il doit s'agir de la seule autorisation nécessaire pour que l' AWS Service Catalog intégration fonctionne correctement. Toutefois, vous pouvez restreindre davantage ce paramètre à l'aide de la clé de contexte `aws:SourceAccount` [Confused Deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy). When AWS Service Catalog envoie des messages à ces files d'attente, AWS Service Catalog remplit la clé avec l'ID du compte d'approvisionnement. Cela est utile lorsque vous avez l'intention de distribuer des produits via le partage de portefeuille et que vous souhaitez vous assurer que seuls des comptes spécifiques utilisent votre moteur.

Par exemple, vous pouvez restreindre votre moteur pour n'autoriser que les demandes provenant de 000000000000 et 111111111111 en utilisant la condition ci-dessous :

------
#### [ 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"
                    ]
                }
            }
        }
    ]
}
```

------

## Touches contextuelles adjointes confuses sur les terminaux pour restreindre l'accès aux opérations `sqs:SendMessage`
<a name="confused-deputy-TRFM-sqs"></a>

Les files d'attente Amazon SQS créées AWS Service Catalog par les moteurs fournis pour les opérations de provisionnement sont soumises à une politique d'accès qui accorde des autorisations `sqs:SendMessage` entre comptes (et KMS associés) uniquement au principal du service : 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"
        }
    ]
}
```

------

Il doit s'agir de la seule autorisation nécessaire pour que l' AWS Service Catalog intégration fonctionne correctement. Toutefois, vous pouvez restreindre davantage ce paramètre à l'aide de la clé de contexte `aws:SourceAccount` [Confused Deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy). When AWS Service Catalog envoie des messages à ces files d'attente, AWS Service Catalog remplit les clés avec l'ID du compte d'approvisionnement. Cela est utile lorsque vous avez l'intention de distribuer des produits via le partage de portefeuille et que vous souhaitez vous assurer que seuls des comptes spécifiques utilisent votre moteur.

Par exemple, vous pouvez restreindre votre moteur pour n'autoriser que les demandes provenant de 000000000000 et 111111111111 en utilisant la condition ci-dessous :

------
#### [ 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"
        }
    ]
}
```

------