

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.

# Démarrage
<a name="getstarted"></a>

 Vous pouvez commencer en AWS Service Catalog utilisant l'un des modèles de produits bien conçus de la bibliothèque de mise en route ou en suivant les étapes de l'un des didacticiels de mise en route. 

 Dans le didacticiel, vous effectuez des tâches en tant qu'administrateur du catalogue et utilisateur final. En tant qu'administrateur du catalogue, vous créez un portefeuille, puis un produit. En tant qu'utilisateur final, vous vérifiez que vous pouvez accéder à la console utilisateur final et lancer le produit. Le produit est l'un des suivants : 
+ Un environnement de développement cloud qui s'exécute sur Amazon Linux et est basé sur un CloudFormation modèle qui définit les AWS ressources que le produit peut utiliser.
+ Un environnement open source qui s'exécute sur un moteur de provisionnement Terraform et est basé sur un fichier de configuration tar.gz qui définit les AWS ressources que le produit peut utiliser. 

**Note**  
 Avant de commencer, assurez-vous d'avoir terminé les actions dans[Configuration AWS Service Catalog](setup.md). 

**Topics**
+ [Bibliothèque de mise en route](getstarted-library.md)
+ [Commencer à utiliser un CloudFormation produit](getstarted-CFN.md)
+ [Commencer à utiliser un produit Terraform](getstarted-Terraform.md)

# Bibliothèque de mise en route
<a name="getstarted-library"></a>

 AWS Service Catalog fournit une bibliothèque de modèles de produits bien conçus pour vous aider à démarrer rapidement. Vous pouvez copier tous les produits de nos portefeuilles de bibliothèque de mise en route sur votre propre compte, puis les personnaliser en fonction de vos besoins. 

**Topics**
+ [Conditions préalables](#getting-started-library-prereqs)
+ [En savoir plus](#getting-started-library-learn-more)

## Conditions préalables
<a name="getting-started-library-prereqs"></a>

 Avant d'utiliser les modèles de notre bibliothèque de mise en route, assurez-vous que vous disposez des éléments suivants : 
+ Les autorisations requises pour utiliser les CloudFormation modèles. Pour plus d'informations, consultez la section [Contrôle de l'accès avec Gestion des identités et des accès AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
+ Autorisations d'administrateur requises pour gérer AWS Service Catalog. Pour de plus amples informations, veuillez consulter [Identity and Access Management dans AWS Service Catalog](controlling_access.md).

## En savoir plus
<a name="getting-started-library-learn-more"></a>

[Pour plus d'informations sur le framework Well-Architected, consultez Well-Architected AWS .](https://aws.amazon.com/architecture/well-architected/) 

# Commencer à utiliser un CloudFormation produit
<a name="getstarted-CFN"></a>

 Vous pouvez commencer en AWS Service Catalog utilisant l'un des modèles de produits bien conçus de la bibliothèque de mise en route ou en suivant les étapes du didacticiel de mise en route. 

 Dans le didacticiel, vous effectuez des tâches en tant qu'administrateur du catalogue et utilisateur final. En tant qu'administrateur du catalogue, vous créez un portefeuille, puis un produit. En tant qu'utilisateur final, vous vérifiez que vous pouvez accéder à la console utilisateur final et lancer le produit. Le produit est un environnement de développement cloud qui s'exécute sur Amazon Linux et est basé sur un CloudFormation modèle qui définit les AWS ressources que le produit peut utiliser. 

**Note**  
 Avant de commencer, assurez-vous d'avoir terminé les actions dans[Configuration AWS Service Catalog](setup.md). 

**Topics**
+ [Étape 1 : Téléchargez le CloudFormation modèle](getstarted-template.md)
+ [Étape 2 : Création d'une paire de clés](getstarted-keypair.md)
+ [Étape 3 : Création d'un portefeuille](getstarted-portfolio.md)
+ [Étape 4 : Création d'un nouveau produit dans le portefeuille](getstarted-product.md)
+ [Étape 5 : ajouter une contrainte de modèle pour limiter la taille de l'instance](getstarted-constraint.md)
+ [Étape 6 : ajouter une contrainte de lancement pour attribuer un rôle IAM](getstarted-launchconstraint.md)
+ [Étape 7 : Accorder aux utilisateurs finaux l'accès au portefeuille](getstarted-deploy.md)
+ [Étape 8 : Testez l'expérience de l'utilisateur final](getstarted-verify.md)

# Étape 1 : Téléchargez le CloudFormation modèle
<a name="getstarted-template"></a>

 Vous pouvez utiliser des CloudFormation modèles pour configurer et approvisionner des portefeuilles et des produits. Ces modèles sont des fichiers texte qui peuvent être formatés en JSON ou YAML et décrivent les ressources que vous souhaitez mettre en service. Pour plus d'informations, consultez [Formats de modèle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-formats.html) dans le *Guide de l'utilisateur CloudFormation *. Vous pouvez utiliser l' AWS CloudFormation éditeur ou un éditeur de texte de votre choix pour créer et enregistrer des modèles. Dans ce didacticiel, nous vous proposons un modèle simple, afin que vous puissiez commencer. Le modèle lance une instance Linux unique configurée pour l'accès SSH. 

**Note**  
 L'utilisation CloudFormation de modèles nécessite des autorisations spéciales. Avant de commencer, assurez-vous que vous disposez des autorisations appropriées. Pour plus d'informations, consultez les conditions préalables dans[Bibliothèque de mise en route](getstarted-library.md). 

## Téléchargement du modèle
<a name="template-download"></a>

L'exemple de modèle fourni pour ce didacticiel est disponible sur [https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template](https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template). `development-environment.template`

## Présentation du modèle
<a name="template-overview"></a>

Le texte de l'exemple de modèle est le suivant :

```
{
  "AWSTemplateFormatVersion" : "2010-09-09",

  "Description" : "AWS Service Catalog sample template. Creates an Amazon EC2 instance 
                    running the Amazon Linux AMI. The AMI is chosen based on the region 
                    in which the stack is run. This example creates an EC2 security 
                    group for the instance to give you SSH access. **WARNING** This 
                    template creates an Amazon EC2 instance. You will be billed for the AWS resources used if you create a stack from this template.",

  "Parameters" : {
    "KeyName": {
      "Description" : "Name of an existing EC2 key pair for SSH access to the EC2 instance.",
      "Type": "AWS::EC2::KeyPair::KeyName"
    },

    "InstanceType" : {
      "Description" : "EC2 instance type.",
      "Type" : "String",
      "Default" : "t2.micro",
      "AllowedValues" : [ "t2.micro", "t2.small", "t2.medium", "m3.medium", "m3.large", 
        "m3.xlarge", "m3.2xlarge" ]
    },

    "SSHLocation" : {
      "Description" : "The IP address range that can SSH to the EC2 instance.",
      "Type": "String",
      "MinLength": "9",
      "MaxLength": "18",
      "Default": "0.0.0.0/0",
      "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})",
      "ConstraintDescription": "Must be a valid IP CIDR range of the form x.x.x.x/x."
   }
  },

  "Metadata" : {
    "AWS::CloudFormation::Interface" : {
      "ParameterGroups" : [{
        "Label" : {"default": "Instance configuration"},
        "Parameters" : ["InstanceType"]
      },{
        "Label" : {"default": "Security configuration"},
        "Parameters" : ["KeyName", "SSHLocation"]
      }],
      "ParameterLabels" : {
        "InstanceType": {"default": "Server size:"},
        "KeyName": {"default": "Key pair:"},
        "SSHLocation": {"default": "CIDR range:"}
      }
    }
  },

  "Mappings" : {
    "AWSRegionArch2AMI" : {
      "us-east-1"      : { "HVM64" : "ami-08842d60" },
      "us-west-2"      : { "HVM64" : "ami-8786c6b7" },
      "us-west-1"      : { "HVM64" : "ami-cfa8a18a" },
      "eu-west-1"      : { "HVM64" : "ami-748e2903" },
      "ap-southeast-1" : { "HVM64" : "ami-d6e1c584" },
      "ap-northeast-1" : { "HVM64" : "ami-35072834" },
      "ap-southeast-2" : { "HVM64" : "ami-fd4724c7" },
      "sa-east-1"      : { "HVM64" : "ami-956cc688" },
      "cn-north-1"     : { "HVM64" : "ami-ac57c595" },
      "eu-central-1"   : { "HVM64" : "ami-b43503a9" }
    }

  },

  "Resources" : {
    "EC2Instance" : {
      "Type" : "AWS::EC2::Instance",
      "Properties" : {
        "InstanceType" : { "Ref" : "InstanceType" },
        "SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ],
        "KeyName" : { "Ref" : "KeyName" },
        "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, "HVM64" ] }
      }
    },

    "InstanceSecurityGroup" : {
      "Type" : "AWS::EC2::SecurityGroup",
      "Properties" : {
        "GroupDescription" : "Enable SSH access via port 22",
        "SecurityGroupIngress" : [ {
          "IpProtocol" : "tcp",
          "FromPort" : "22",
          "ToPort" : "22",
          "CidrIp" : { "Ref" : "SSHLocation"}
        } ]
      }
    }
  },

  "Outputs" : {
    "PublicDNSName" : {
      "Description" : "Public DNS name of the new EC2 instance",
      "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicDnsName" ] }
    },
    "PublicIPAddress" : {
      "Description" : "Public IP address of the new EC2 instance",
      "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicIp" ] }
    }
  }
}
```

**Ressources du modèle**

Le modèle déclare les ressources à créer lorsque le produit est lancé. Il se compose des sections suivantes :
+ **AWSTemplateFormatVersion**(facultatif) — Version du [format de AWS modèle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/format-version-structure.html) utilisée pour créer ce modèle. La dernière version du format du modèle est le 09/09/2010 et est actuellement la seule valeur valide.
+ **Description** (facultatif) — Description du modèle.
+ **Paramètres** (facultatif) — Les paramètres que votre utilisateur doit spécifier pour lancer le produit. Pour chaque paramètre, le modèle inclut une description et des contraintes qui doivent être satisfaites par la valeur saisie. Pour plus d'informations sur les contraintes, consultez [Utilisation des AWS Service Catalog contraintes](constraints.md).

  Le `KeyName` paramètre vous permet de spécifier un nom de paire de clés Amazon Elastic Compute Cloud (Amazon EC2) que les utilisateurs finaux doivent fournir lors du lancement de votre produit. AWS Service Catalog Vous allez créer la paire de clés à l'étape suivante.
+ **Métadonnées** (facultatif) : objets fournissant des informations supplémentaires sur le modèle. La clé [AWS: : CloudFormation : :Interface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-interface.html) définit la manière dont la vue de la console de l'utilisateur final affiche les paramètres. La propriété `ParameterGroups` définit la façon dont les paramètres sont regroupés et les en-têtes pour ces groupes. La propriété `ParameterLabels` définit des noms de paramètre conviviaux. Lorsqu'un utilisateur spécifie des paramètres pour lancer un produit basé sur ce modèle, la vue de la console Utilisateur final affiche le paramètre étiqueté `Server size:` sous l'en-tête `Instance configuration`, et les paramètres étiquetés `Key pair:` et `CIDR range:`, sous l'en-tête `Security configuration`.
+ **Mappages** (facultatif) : mappage de clés et de valeurs associées que vous pouvez utiliser pour spécifier des valeurs de paramètres conditionnelles, comme dans une table de recherche. Vous pouvez associer une clé à une valeur correspondante en utilisant la fonction FindInMap intrinsèque [Fn : :](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-findinmap.html) dans les sections Ressources et Sorties. Le modèle ci-dessus inclut une liste de AWS régions et l'Amazon Machine Image (AMI) correspondant à chacune d'elles. AWS Service Catalog utilise ce mappage pour déterminer l'AMI à utiliser en fonction de la AWS région sélectionnée par l'utilisateur dans le AWS Management Console.
+ **Ressources** (obligatoire) — Empilez les ressources et leurs propriétés. Vous pouvez faire référence aux ressources dans les sections **Ressources** et **Sorties** du modèle. Dans le modèle ci-dessus, nous indiquons une EC2 instance exécutant Amazon Linux et un groupe de sécurité qui autorise l'accès SSH à l'instance. La section **Propriétés** de la ressource d' EC2 instance utilise les informations saisies par l'utilisateur pour configurer le type d'instance et un nom de clé pour l'accès SSH.

  CloudFormation utilise la AWS région actuelle pour sélectionner l'ID AMI parmi les mappages définis précédemment et lui assigne un groupe de sécurité. Le groupe de sécurité est configuré pour autoriser l'accès entrant sur le port 22 à partir de la plage d'adresses IP CIDR que spécifie l'utilisateur.
+ **Sorties** (facultatif) : texte indiquant à l'utilisateur que le lancement du produit est terminé. Le modèle fourni obtient le nom DNS public de l'instance lancée et l'affiche pour l'utilisateur. L'utilisateur a besoin du nom DNS pour se connecter à l'instance à l'aide de SSH.

  

  Pour plus d'informations sur la page d'anatomie du modèle, reportez-vous à la section [Référence du modèle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html) dans le *guide de CloudFormation l'utilisateur*.

# Étape 2 : Création d'une paire de clés
<a name="getstarted-keypair"></a>

Pour permettre à vos utilisateurs finaux de lancer le produit basé sur le modèle d'exemple de ce didacticiel, vous devez créer une paire de EC2 clés Amazon. Une paire de clés est une combinaison d'une clé publique utilisée pour chiffrer les données et d'une clé privée utilisée pour déchiffrer les données. Pour plus d'informations sur les paires de clés, assurez-vous d'être connecté à la AWS console, puis consultez [Amazon EC2 Key Pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) dans le *guide de EC2 l'utilisateur Amazon*.

Le CloudFormation modèle de ce didacticiel inclut le `KeyName` paramètre suivant : `development-environment.template`

```
. . .
  "Parameters" : {
    "KeyName": {
      "Description" : "Name of an existing EC2 key pair for SSH access to the EC2 instance.",
      "Type": "AWS::EC2::KeyPair::KeyName"
    },
. . .
```

Les utilisateurs finaux doivent spécifier le nom d'une paire de clés lorsqu'ils l'utilisent AWS Service Catalog pour lancer le produit basé sur le modèle.

Si vous disposez déjà dans votre compte d'une paire de clés que vous préférez utiliser, vous pouvez passez directement à [Étape 3 : Création d'un portefeuille](getstarted-portfolio.md). Sinon, effectuez les étapes suivantes.

**Pour créer une paire de clés**

1. Ouvrez la EC2 console Amazon à l'adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, sous **Network & Security**, choisissez **Key Pairs**.

1. Sur la page **Key Pairs**, choisissez **Create Key Pair**.

1. Pour **Key pair name**, tapez un nom facile à mémoriser, puis choisissez **Create**.

1. Lorsque la console vous invite à enregistrer le fichier de clé privée, enregistrez-le dans un endroit sûr.
**Important**  
C’est votre seule occasion d’enregistrer le fichier de clé privée.

# Étape 3 : Création d'un portefeuille
<a name="getstarted-portfolio"></a>

Pour fournir des produits à des utilisateurs, commencez par créer un portefeuille pour ces produits.

**Pour créer un portefeuille**

1. Ouvrez la console Service Catalog à l'adresse [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/).

1. Dans le panneau de navigation de gauche, sélectionnez **Portefeuilles**, puis **Créer un portefeuille**. 

1. Entrez les valeurs suivantes :
   + **Nom du portefeuille** — **Engineering Tools**
   + **Description du portefeuille** — **Sample portfolio that contains a single product.** 
   + **Propriétaire** — **IT (it@example.com)** 

1. Choisissez **Créer**.

# Étape 4 : Création d'un nouveau produit dans le portefeuille
<a name="getstarted-product"></a>

Après avoir créé un portefeuille, vous êtes prêt à créer un produit dans le portefeuille. Dans le cadre de ce didacticiel, vous allez créer un produit appelé **Linux Desktop**, un environnement de développement cloud qui s'exécute sur Amazon Linux, dans le cadre du portefeuille **d'outils d'ingénierie**.

**Pour créer un produit au sein d'un portefeuille**

1. Si vous venez de terminer l'étape précédente, la page **Portfolios** sera déjà affichée. Sinon, ouvrez [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/).

1. Choisissez et ouvrez le portefeuille **d'outils d'ingénierie** que vous avez créé à l'étape 2. 

1. Choisissez **Importer un nouveau produit**.

1. Sur la page **Créer un produit** dans la section Détails du produit, entrez les informations suivantes :
   + **Nom du produit** — **Linux Desktop**
   + **Description du produit** — **Cloud development environment configured for engineering staff. Runs AWS Linux.**
   + **Propriétaire** — **IT**
   + **Distributeur** — *(blanc)*

1. Sur la page **Détails de la version**, choisissez **Utiliser un CloudFormation modèle**. Choisissez ensuite **Spécifier une URL de modèle Amazon S3** et entrez ce qui suit :
   + **Sélectionnez un modèle** — **https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template**
   + **Titre de la version** — **v1.0**
   + **Description** – **Base Version**

1. Dans la section **Support details**, saisissez les informations suivantes :
   + **Contact par e-mail** — **ITSupport@example.com**
   + **Lien de support** — **https://wiki.example.com/IT/support**
   + **Description du support** — **Contact the IT department for issues deploying or connecting to this product.**

1. Choisissez **Créer un produit**.

# Étape 5 : ajouter une contrainte de modèle pour limiter la taille de l'instance
<a name="getstarted-constraint"></a>

Les contraintes ajoutent une autre couche de contrôle sur les produits au niveau du portefeuille. Les contraintes peuvent contrôler le contexte de lancement d'un produit (contraintes de lancement), ou ajouter des règles au modèle CloudFormation (contraintes de modèle). Pour de plus amples informations, veuillez consulter [Utilisation des AWS Service Catalog contraintes](constraints.md).

Ajoutez une contrainte de modèle au produit Linux Desktop qui empêche les utilisateurs de sélectionner des types d'instances volumineux au moment du lancement. Le modèle development-environment permet à l'utilisateur de choisir parmi six types d'instance ; cette contrainte limite les types d'instance valides aux deux types les plus petits, `t2.micro` et `t2.small`. Pour plus d'informations, consultez la section [Instances T2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html) dans le *guide de EC2 l'utilisateur Amazon*.

**Pour ajouter une contrainte de modèle au produit Linux Desktop**

1. Sur la page des **détails du portefeuille**, choisissez **Contraintes**, puis **Créer une contrainte**.

1. Sur la page **Créer une contrainte**, pour **Produit,** sélectionnez **Linux Desktop**. Ensuite, pour **Type de contrainte**, choisissez **Modèle**.

1. Dans la section **Contrainte du modèle** T, choisissez **Éditeur de texte**.

1. Collez le texte suivant dans l'éditeur de texte :

   ```
   {
     "Rules": {
       "Rule1": {
         "Assertions": [
           {
             "Assert" : {"Fn::Contains": [["t2.micro", "t2.small"], {"Ref": "InstanceType"}]},
             "AssertDescription": "Instance type should be t2.micro or t2.small"
           }
         ]
       }
     }
   }
   ```

1. Pour **Description de la contrainte**, entrez**Small instance sizes**.

1.  Choisissez **Créer**. 

# Étape 6 : ajouter une contrainte de lancement pour attribuer un rôle IAM
<a name="getstarted-launchconstraint"></a>

 Une contrainte de lancement désigne un rôle IAM qui joue un rôle AWS Service Catalog lorsqu'un utilisateur final lance un produit. 

 Pour cette étape, vous ajoutez une contrainte de lancement au produit Linux Desktop afin de AWS Service Catalog pouvoir utiliser les ressources IAM qui constituent le AWS CloudFormation modèle du produit. 

 Le rôle IAM que vous attribuez à un produit en tant que contrainte de lancement doit disposer des autorisations suivantes : 

1. AWS CloudFormation

1. Services dans le AWS CloudFormation modèle du produit

1. Accès en lecture au AWS CloudFormation modèle dans un compartiment Amazon S3 appartenant au service. 

Cette contrainte de lancement permet à l'utilisateur final de lancer le produit et, après le lancement, de le gérer en tant que produit provisionné. Pour plus d'informations, veuillez consulter [Contraintes de lancement AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html).

Sans contrainte de lancement, vous devez accorder des autorisations IAM supplémentaires à vos utilisateurs finaux avant qu'ils puissent utiliser le produit Linux Desktop. Par exemple, la `ServiceCatalogEndUserAccess` politique accorde les autorisations IAM minimales requises pour accéder à la vue de la console de l'utilisateur AWS Service Catalog final. 

L'utilisation d'une contrainte de lancement vous permet de suivre les meilleures pratiques IAM qui consistent à réduire au minimum les autorisations IAM des utilisateurs finaux. Pour plus d’informations, consultez [Accorder le moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) dans le *guide de l’utilisateur IAM*.

**Pour ajouter une contrainte de lancement**

1. Suivez les instructions pour [créer de nouvelles politiques dans l'onglet JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) du *guide de l'utilisateur IAM*. 

1. Collez le document de politique JSON suivant :
   +  `cloudformation`— Autorise AWS Service Catalog toutes les autorisations nécessaires pour créer, lire, mettre à jour, supprimer, répertorier et étiqueter des CloudFormation piles. 
   +  `ec2`— Autorise AWS Service Catalog toutes les autorisations nécessaires pour répertorier, lire, écrire, approvisionner et étiqueter les ressources Amazon Elastic Compute Cloud (Amazon EC2) qui font partie du produit. AWS Service Catalog En fonction de la AWS ressource que vous souhaitez déployer, cette autorisation peut changer. 
   +  `ec2`— Crée une nouvelle politique gérée pour votre AWS compte et associe la politique gérée spécifiée au rôle IAM spécifié. 
   +  `s3`— Permet d'accéder aux compartiments Amazon S3 détenus par AWS Service Catalog. Pour déployer le produit, AWS Service Catalog il faut accéder aux artefacts de provisionnement. 
   +  `servicecatalog`— Permet de AWS Service Catalog répertorier, de lire, d'écrire, de baliser et de lancer des ressources au nom de l'utilisateur final. 
   +  `sns`— Autorise AWS Service Catalog les autorisations nécessaires pour répertorier, lire, écrire et baliser les rubriques Amazon SNS en fonction de la contrainte de lancement. 
**Note**  
 En fonction des ressources sous-jacentes que vous souhaitez déployer, vous devrez peut-être modifier l'exemple de politique JSON. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "cloudformation:CreateStack",
                   "cloudformation:DeleteStack",
                   "cloudformation:DescribeStackEvents",
                   "cloudformation:DescribeStacks",
                   "cloudformation:GetTemplateSummary",
                   "cloudformation:SetStackPolicy",
                   "cloudformation:ValidateTemplate",
                   "cloudformation:UpdateStack",
                   "ec2:*",
                   "servicecatalog:*",
                   "sns:*"
               ],
               "Resource": "*"
           },
           {
            "Effect":"Allow",
            "Action":[
               "s3:GetObject"
            ],
            "Resource":"*",
            "Condition":{
               "StringEquals":{
                  "s3:ExistingObjectTag/servicecatalog:provisioning":"true"
               }
            }
         }
       ]
   }
   ```

------

1. Choisissez **Next**, **Tags**.

1. Choisissez **Suivant,** **Réviser**.

1. Sur la page **Politique de révision**, saisissez le **nom****linuxDesktopPolicy**.

1. Choisissez **Create Policy** (Créer une politique).

1. Dans le panneau de navigation, choisissez **Rôles**. Choisissez ensuite **Créer un rôle** et procédez comme suit :

   1. Pour **Sélectionner une entité de confiance**, choisissez **AWS service**, puis sous **Cas d'utilisation pour d'autres AWS services**, choisissez **Service Catalog**. Sélectionnez le cas d'utilisation du Service Catalog, puis choisissez **Next**.

   1. Recherchez la **linuxDesktopPolicy**politique, puis cochez la case.

   1. Choisissez **Suivant**. 

   1. Pour **Role name** (Nom du rôle), tapez **linuxDesktopLaunchRole**.

   1. Choisissez **Créer un rôle**.

1. Ouvrez la AWS Service Catalog console à l'adresse [https://console.aws.amazon.com/servicecatalog.](https://console.aws.amazon.com/servicecatalog.)

1. Choisissez le portefeuille **Engineering Tools**.

1. Sur la page des **détails du portefeuille**, choisissez l'onglet **Contraintes**, puis sélectionnez **Créer une contrainte**.

1. Pour **Produit**, choisissez **Linux Desktop**, et pour **Type de contrainte**, choisissez **Launch**.

1. Choisissez **Sélectionner le rôle IAM**. Choisissez ensuite **linuxDesktopLaunchRole**, puis **Create**. 

# Étape 7 : Accorder aux utilisateurs finaux l'accès au portefeuille
<a name="getstarted-deploy"></a>

Maintenant que vous avez créé un portefeuille et ajouté un produit, vous êtes prêt à accorder un accès aux utilisateurs finaux.

**Conditions préalables**  
Si vous n'avez pas créé de groupe IAM pour les utilisateurs finaux, consultez. [Accorder des autorisations aux utilisateurs AWS Service Catalog finaux](getstarted-iamenduser.md)

**Pour donner accès au portefeuille**

1. Sur la page des détails du portefeuille, cliquez sur l'onglet **Accès**.

1. Choisissez **Grant access (Accorder l’accès)**.

1. Dans l'onglet **Groupes**, cochez la case correspondant au groupe IAM pour les utilisateurs finaux.

1. Choisissez **Ajouter un accès**.

# Étape 8 : Testez l'expérience de l'utilisateur final
<a name="getstarted-verify"></a>

Pour vérifier que l'utilisateur final peut accéder correctement à la vue de la console utilisateur final et lancer votre produit, connectez-vous en AWS tant qu'utilisateur final et effectuez ces tâches.

**Pour vérifier que l'utilisateur final peut accéder à la console Utilisateur final**

1. Suivez les instructions pour [vous connecter en tant qu'utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/console.html) dans le guide de l'*utilisateur IAM*. 

1.  Dans la barre de menu, choisissez la AWS région dans laquelle vous avez créé le `Engineering Tools` portefeuille. Pour ce didacticiel, choisissez la région **us-east-1**.

1. Ouvrez la AWS Service Catalog console [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)à l'adresse suivante :
   + **Produits** — Les produits que l'utilisateur peut utiliser.
   + Produits **approvisionnés : produits** provisionnés que l'utilisateur a lancés.

**Pour vérifier que l'utilisateur final peut lancer le produit Linux Desktop**

Notez que pour ce didacticiel, choisissez la région **us-east-1**.

1. Dans la section **Produits** de la console, choisissez **Linux Desktop**.

1. Choisissez **Launch product** pour démarrer l'assistant qui configure votre produit.

1. Sur la page **Launch : Linux Desktop**, entrez **Linux-Desktop** le nom du produit provisionné.

1. Sur la page **Paramètres**, entrez ce qui suit, puis choisissez **Next** :
   +  **Taille du serveur** — Choisissez**t2.micro**. 
   +  **Paire de clés** : sélectionnez la paire de clés que vous avez créée dans[Étape 2 : Création d'une paire de clés](getstarted-keypair.md).
   +  **Plage d'adresses CIDR** : entrez une plage d'adresses CIDR valide pour l'adresse IP à connecter à l'instance. Vous pouvez utiliser la valeur par défaut (0.0.0.0/0) pour autoriser l'accès depuis n'importe quelle adresse IP, puis votre adresse IP, puis **/32** pour restreindre l'accès à votre adresse IP uniquement, ou quelque chose entre les deux.

1. Choisissez **Launch product** pour lancer la pile. La console affiche la page des détails de pile pour la pile Linux-Desktop. L'état initial du produit est **En cours de modification**. Le lancement du produit prend plusieurs minutes. AWS Service Catalog Pour afficher l'état en cours, actualisez votre navigateur. Après le lancement du produit, le statut est « **Disponible** ».

# Commencer à utiliser un produit Terraform
<a name="getstarted-Terraform"></a>

AWS Service Catalog permet un provisionnement rapide en libre-service avec une gouvernance intégrée de vos configurations [ HashiCorp Terraform](https://developer.hashicorp.com/terraform/intro/terraform-editions). AWS Vous pouvez l'utiliser AWS Service Catalog en tant qu'outil unique pour organiser, gérer et distribuer vos configurations Terraform à grande échelle. AWS AWS Service Catalog prend en charge Terraform sur plusieurs fonctionnalités clés, notamment le catalogage de modèles Terraform standardisés et préapprouvés, le contrôle d'accès, le versionnement, le balisage et le partage avec d'autres comptes. AWS Vos utilisateurs finaux y voient une simple liste de produits et de versions auxquels ils ont accès, et peuvent ensuite déployer ces produits en une seule action. AWS Service Catalog

**Note**  
*Pour continuer à prendre en charge HashiCorp les technologies, à la suite des récentes modifications de licence apportées à Terraform, toutes les références précédentes à *Terraform Open Source AWS Service Catalog ont été remplacées par External*.* Le type de produit externe inclut le support de la Terraform Community Edition, anciennement connue sous le nom de Terraform Open Source. Pour plus d'informations et d'instructions sur la migration de vos produits Open Source Terraform existants et des produits fournis vers le type de produit externe, consultez. [Mise à jour des produits Open Source Terraform existants et des produits fournis vers le type de produit externe](update_terraform_open_source_to_external.md) 

Les étapes du didacticiel suivant vous aideront à démarrer avec un produit Terraform dans. AWS Service Catalog

En tant qu'administrateur du catalogue, vous travaillez dans un compte d'administrateur central (compte hub). Les produits Terrafrm Community Edition et Terraform Cloud nécessitent tous deux un moteur de provisionnement Terraform, sur lequel vous pouvez en savoir plus dans et. [Moteur de provisionnement pour Terraform Community Edition (type de produit externe)](getstarted-terraform-engine.md#getstarted-terraform-engine-os) [Moteur de provisionnement pour Terraform Cloud](getstarted-terraform-engine.md#getstarted-terraform-engine-cloud) 

Au cours du didacticiel, vous devez effectuer les tâches suivantes dans le compte administrateur :
+ *Créez un produit Terraform en utilisant le type de produit *Terraform Cloud* ou External.* Service Catalog utilise le type de produit externe pour prendre en charge les produits Terraform Community Edition. 
+ Associer le produit à un portefeuille
+ Créez une contrainte de lancement pour permettre à vos utilisateurs finaux de fournir le produit
+ Marquer le produit
+ Partagez le portefeuille et le produit Terraform avec le compte de l'utilisateur final (compte officiel) 

Dans le didacticiel, vous partagez un portfolio à l'aide de l'option de partage de l'organisation depuis le compte du hub d'administration, qui est également le compte de gestion de l'organisation. Pour plus d'informations sur le partage d'organisations, consultez[Partage d'un portefeuille](catalogs_portfolios_sharing_how-to-share.md). 

La AWS ressource contenue dans le produit Terraform que vous créez dans le didacticiel est un simple bucket Amazon S3. 

**Note**  
 Avant de commencer, assurez-vous d'avoir terminé les actions dans[Configuration AWS Service Catalog](setup.md). 

**Topics**
+ [Mise à jour des produits Open Source Terraform existants et des produits fournis vers le type de produit externe](update_terraform_open_source_to_external.md)
+ [Prérequis : configurez votre moteur de provisionnement Terraform](getstarted-terraform-engine.md)
+ [Étape 1 : téléchargement du fichier de configuration Terraform](getstarted-template-Terraform.md)
+ [Étape 2 : créer un produit Terraform](getstarted-product-Terraform.md)
+ [Étape 3 : Création d'un AWS Service Catalog portefeuille](getstarted-portfolio-Terraform.md)
+ [Étape 4 : Ajouter un produit au portefeuille](getstarted-portfolio-add-product-Terraform.md)
+ [Étape 5 : créer des rôles de lancement](getstarted-launchrole-Terraform.md)
+ [Étape 6 : Ajouter une contrainte de lancement à votre produit Terraform](getstarted-launchconstraint-Terraform.md)
+ [Étape 7 : Accorder l'accès à l'utilisateur final](getstarted-deploy-Terraform.md)
+ [Étape 8 : partager le portefeuille avec l'utilisateur final](getstarted-share-portfolio-end-user-Terraform.md)
+ [Étape 9 : Testez l'expérience de l'utilisateur final](getstarted-verify-Terraform.md)
+ [Étape 10 : Surveillance des opérations de provisionnement de Terraform](getstarted-monitoring-Terraform.md)

# Mise à jour des produits Open Source Terraform existants et des produits fournis vers le type de produit externe
<a name="update_terraform_open_source_to_external"></a>

*Pour continuer à prendre en charge HashiCorp les technologies, à la suite des récentes modifications de licence apportées à Terraform, toutes les références précédentes à *Terraform Open Source AWS Service Catalog ont été remplacées par External*.* Le type de produit externe inclut le support de Terraform Community Edition, anciennement connue sous le nom de Terraform Open Source. AWS Service Catalog ne prend plus en charge Terraform Open Source en tant que type de produit valide pour les *nouveaux* produits ou les produits approvisionnés. Vous ne pouvez mettre à jour ou résilier que les ressources Open Source existantes de Terraform, y compris les versions des produits et les produits provisionnés.

Si vous ne l'avez pas déjà fait, vous devez faire passer tous les produits Open Source Terraform existants et les produits fournis vers des produits externes, en suivant les instructions de cette section. 

1. Mettez à jour votre moteur de référence Terraform existant AWS Service Catalog pour inclure la prise en charge des types de produits **externes** et **Terraform Open Source**. [Pour obtenir des instructions sur la mise à jour de votre moteur de référence Terraform, consultez notre GitHub référentiel.](https://github.com/aws-samples/service-catalog-engine-for-terraform-os) 

1. Recréez tous les produits Open Source Terraform existants en utilisant le nouveau type de produit externe. 

1. Supprimez tous les produits existants qui utilisent le type de produit Open Source Terraform.

1. Réapprovisionnez les ressources restantes pour utiliser le nouveau type de produit externe.

1. Mettez fin à tous les produits provisionnés existants qui utilisent le type de produit Open Source Terraform. 

Après la transition de vos produits existants, utilisez le type de produit externe pour tous les nouveaux produits utilisant un fichier de configuration tar.gz. 

AWS Service Catalog aidera les clients à effectuer ce changement selon les besoins. Si ces modifications nécessitent des efforts importants pour votre compte ou ont un impact sur les charges de travail critiques des produits, contactez votre représentant commercial pour demander de l'aide. 

# Prérequis : configurez votre moteur de provisionnement Terraform
<a name="getstarted-terraform-engine"></a>

Comme condition préalable à la création de produits Terraform dans AWS Service Catalog, vous devez installer et configurer un moteur de provisionnement dans votre compte administrateur Service Catalog (compte hub). Le moteur de provisionnement est requis à la fois pour les produits Terraform Community Edition (utilisant le type de produit externe) et pour les produits Terraform Cloud (utilisant le type de produit Terraform Cloud). 

**Note**  
La configuration du moteur est une configuration unique qui prend environ 30 minutes. 

## Moteur de provisionnement pour Terraform Community Edition (type de produit externe)
<a name="getstarted-terraform-engine-os"></a>

AWS Service Catalog utilise le type de produit *externe* pour prendre en charge les produits Terraform Community Edition. Le type de produit *externe* prend également en charge d'autres outils de provisionnement, notamment Pulumi, Ansible, Chef, etc., en fonction de la configuration du moteur de provisionnement. 

Pour les AWS Service Catalog produits qui utilisent le type HashiCorp de produit externe avec Terraform Community Edition, vous devez installer et configurer un moteur de provisionnement Terraform dans votre compte AWS Service Catalog administrateur (compte hub). AWS gère ce moteur et ses ressources. 

AWS Service Catalog fournit un GitHub référentiel contenant des instructions sur [l'installation et la configuration du moteur de AWS provisionnement Terraform fourni](https://github.com/aws-samples/service-catalog-engine-for-terraform-os/). Le dépôt inclut les informations suivantes : 
+ Outils d'installation requis
+ Élaboration du code
+ Déploiement sur un AWS compte
+ Informations supplémentaires sur les flux de travail de provisionnement, l'assurance qualité et les limites

## Moteur de provisionnement pour Terraform Cloud
<a name="getstarted-terraform-engine-cloud"></a>

Pour les AWS Service Catalog produits qui utilisent le type de produit Terraform Cloud avec HashiCorp Terraform Cloud, vous devez installer et configurer un moteur de provisionnement Terraform dans votre AWS Service Catalog compte administrateur (compte hub). HashiCorp gère ce moteur dans un environnement distant. 

HashiCorp fournit un GitHub référentiel contenant des instructions sur la configuration du [moteur Terraform Cloud](https://github.com/hashicorp/aws-service-catalog-engine-for-tfc) pour. AWS Service Catalog Le dépôt inclut les informations suivantes : 
+ Outils d'installation requis
+ Élaboration du code
+ Déploiement sur un AWS compte
+ Informations supplémentaires sur les flux de travail de provisionnement, l'assurance qualité et les limites

# Étape 1 : téléchargement du fichier de configuration Terraform
<a name="getstarted-template-Terraform"></a>

 Vous pouvez utiliser un fichier de configuration Terraform pour créer et approvisionner des produits HashiCorp Terraform. Ces configurations sont des fichiers texte brut qui décrivent les ressources que vous souhaitez mettre en service. Vous pouvez utiliser l'éditeur de texte de votre choix pour créer, mettre à jour et enregistrer des configurations. Pour créer un produit, vous devez télécharger les configurations Terraform sous forme de **fichier tar.gz**. Dans ce didacticiel, AWS Service Catalog fournit un fichier de configuration simple afin que vous puissiez commencer. La configuration crée un compartiment Amazon S3. 

## Téléchargement du fichier de configuration
<a name="template-download"></a>

AWS Service Catalog fournit un exemple [https://github.com/aws-samples/service-catalog-engine-for-terraform-os/blob/main/sample-provisioning-artifacts/s3bucket.tar.gz?raw=true](https://github.com/aws-samples/service-catalog-engine-for-terraform-os/blob/main/sample-provisioning-artifacts/s3bucket.tar.gz?raw=true)de fichier de configuration que vous pouvez utiliser dans ce didacticiel. 

## Vue d'ensemble du fichier de configuration
<a name="template-overview"></a>

Le texte de l'exemple de fichier de configuration est le suivant :

```
variable "bucket_name" {
  type = string
}
provider "aws" {
}
resource "aws_s3_bucket" "bucket" {
  bucket = var.bucket_name
}
output regional_domain_name {
  value = aws_s3_bucket.bucket.bucket_regional_domain_name
}
```

**Ressources de configuration**

Le fichier de configuration déclare les ressources à créer lors du AWS Service Catalog provisionnement du produit. Il se compose des sections suivantes :
+ **Variable** (facultatif) — Les définitions de valeurs qu'un utilisateur administrateur (administrateur du compte hub) peut attribuer pour personnaliser la configuration. Les variables fournissent une interface cohérente pour modifier le comportement d'une configuration donnée. L'étiquette après le mot-clé de variable est le nom de la variable, qui doit être unique parmi toutes les variables d'un même module. Ce nom est utilisé pour attribuer une valeur extérieure à la variable et pour référencer la valeur de la variable depuis le module. 
+ **Fournisseur** (facultatif) — Le fournisseur de services cloud pour le provisionnement des ressources, qui est`AWS`. AWS Service Catalog ne prend en charge `AWS` qu'en tant que fournisseur. Par conséquent, le moteur de provisionnement Terraform remplace tout autre fournisseur répertorié. `AWS` 
+ **Ressource** (obligatoire) — La ressource AWS d'infrastructure pour le provisionnement. Pour ce didacticiel, le fichier de configuration Terraform spécifie Amazon S3. 
+ **Sortie** (facultatif) : information ou valeur renvoyée, similaire aux valeurs renvoyées dans un langage de programmation. Vous pouvez utiliser les données de sortie pour configurer le flux de travail de l'infrastructure à l'aide d'outils d'automatisation. 

# Étape 2 : créer un produit Terraform
<a name="getstarted-product-Terraform"></a>

Après avoir installé le moteur de provisionnement Terraform, vous êtes prêt à créer un produit HashiCorp Terraform dans. AWS Service Catalog Dans ce didacticiel, vous allez créer un produit Terraform contenant un simple bucket Amazon S3. 

**Pour créer un produit Terraform**

1. Ouvrez la AWS Service Catalog console sur [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)et connectez-vous en tant qu'utilisateur administrateur. 

1. Accédez à la section **Administration**, puis sélectionnez **Liste des produits**. 

1. Choisissez **Créer un produit**. 

1. Sur la page **Créer un produit** dans la section Détails du produit, choisissez le type de produit **externe** ou **Terraform Cloud**. Service Catalog utilise le type de produit *externe* pour prendre en charge les produits Terraform Community Edition. 

1. Entrez les informations suivantes sur le produit :
   + **Nom du produit** — **Simple S3 bucket**
   + **Description du produit** — Produit Terraform contenant un compartiment Amazon S3.
   + **Propriétaire** — **IT**
   + **Distributeur** — *(blanc)*

1. Dans le volet **Détails de la version**, choisissez **charger un fichier modèle**, puis choisissez **Choisir un fichier**. Sélectionnez le fichier dans lequel vous avez téléchargé[Étape 1 : téléchargement du fichier de configuration Terraform](getstarted-template-Terraform.md). 

1. Saisissez :
   + **Nom de la version** — **v1.0**
   + **Description de la version** — **Base Version**

1. Dans la section **Support details**, saisissez ce qui suit, puis choisissez **Create product**.
   + **Contact par e-mail** — **ITSupport@example.com**
   + **Lien de support** — **https://wiki.example.com/IT/support**
   + **Description du support** — **Contact the IT department for issues deploying or connecting to this product.**

1. Choisissez **Créer un produit**. 

Après avoir créé le produit avec succès, AWS Service Catalog affiche une bannière de confirmation sur la page du produit. 

# Étape 3 : Création d'un AWS Service Catalog portefeuille
<a name="getstarted-portfolio-Terraform"></a>

Vous pouvez créer un portefeuille dans votre compte AWS Service Catalog administrateur (compte hub) pour faciliter l'organisation des produits et leur distribution aux comptes des utilisateurs finaux (comptes satellites). 

**Pour créer un portefeuille**

1. Ouvrez la AWS Service Catalog console [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)et connectez-vous en tant qu'administrateur. 

1. Dans le panneau de navigation de gauche, sélectionnez **Portefeuilles**, puis **Créer un portefeuille**. 

1. Entrez les valeurs suivantes :
   + **Nom du portefeuille** — **S3 bucket**
   + **Description du portefeuille** — **Sample portfolio for Terraform configurations. ** 
   + **Propriétaire** — **IT (it@example.com)** 

1. Choisissez **Créer**.

# Étape 4 : Ajouter un produit au portefeuille
<a name="getstarted-portfolio-add-product-Terraform"></a>

Après avoir créé un portfolio, vous pouvez ajouter le produit HashiCorp Terraform que vous avez créé à l'étape 2. 

**Pour ajouter un produit à un portefeuille**

1.  Accédez à la page de **liste des produits**. 

1.  **Sélectionnez le produit Terraform Simple S3 bucket que vous avez créé à l'étape 2, puis choisissez Actions.** Dans le menu déroulant, choisissez **Ajouter un produit au portefeuille**. AWS Service Catalog affiche le volet **Ajouter un compartiment S3 simple au portefeuille**. 

1. Sélectionnez le portefeuille de compartiments S3, puis désactivez l'option **Créer une contrainte de lancement**. Vous allez créer la contrainte de lancement ultérieurement dans le didacticiel. 

1. Choisissez **Ajouter un produit au portefeuille**. 

Après avoir ajouté le produit au portefeuille avec succès, AWS Service Catalog affiche une bannière de confirmation sur la page de liste des produits. 

# Étape 5 : créer des rôles de lancement
<a name="getstarted-launchrole-Terraform"></a>

Au cours de cette étape, vous allez créer un rôle IAM (rôle de lancement) spécifiant les autorisations que le moteur de provisionnement Terraform AWS Service Catalog peut assumer lorsqu'un utilisateur final lance un produit Terraform. HashiCorp 

 Le rôle IAM (rôle de lancement) que vous attribuerez ultérieurement à votre produit Terraform de compartiment Amazon S3 simple en tant que contrainte de lancement doit disposer des autorisations suivantes : 
+ Accès aux AWS ressources sous-jacentes de votre produit Terraform. Dans ce didacticiel, cela inclut l'accès aux opérations `s3:CreateBucket*` `s3:DeleteBucket*``s3:Get*`,`s3:List*`,, et `s3:PutBucketTagging` Amazon S3. 
+ Accès en lecture au modèle Amazon S3 dans un compartiment Amazon S3 AWS Service Catalog appartenant à un propriétaire 
+ Accès aux opérations`CreateGroup`, `ListGroupResources``DeleteGroup`, et aux groupes de `Tag` ressources. Ces opérations permettent de AWS Service Catalog gérer les groupes de ressources et les balises

**Pour créer un rôle de lancement dans le compte AWS Service Catalog administrateur**

1. Lorsque vous êtes connecté au compte AWS Service Catalog administrateur, suivez les instructions pour [créer de nouvelles politiques dans l'onglet JSON du](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) *guide de l'utilisateur IAM*. 

1. Créez une **politique** pour votre simple produit Terraform contenant un compartiment Amazon S3. Cette politique doit être créée avant de créer le rôle de lancement et comprend les autorisations suivantes :
   +  `s3`— Autorise AWS Service Catalog toutes les autorisations nécessaires pour répertorier, lire, écrire, approvisionner et étiqueter le produit Amazon S3. 
   +  `s3`— Permet d'accéder aux compartiments Amazon S3 détenus par AWS Service Catalog. Pour déployer le produit, AWS Service Catalog il faut accéder aux artefacts de provisionnement. 
   +  `resourcegroups`— Permet AWS Service Catalog de créer, répertorier, supprimer et étiqueter Groupes de ressources AWS. 
   +  `tag`— Autorise les autorisations AWS Service Catalog de balisage. 
**Note**  
 En fonction des ressources sous-jacentes que vous souhaitez déployer, vous devrez peut-être modifier l'exemple de politique JSON. 

   Collez le document de politique JSON suivant : 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "s3:GetObject",
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "s3:ExistingObjectTag/servicecatalog:provisioning": "true"
                   }
               }
           },
           {
               "Action": [
                   "s3:CreateBucket*",
                   "s3:DeleteBucket*",
                   "s3:Get*",
                   "s3:List*",
                   "s3:PutBucketTagging"
               ],
               "Resource": "arn:aws:s3:::*",
               "Effect": "Allow"
           },
           {
               "Action": [
                   "resource-groups:CreateGroup",
                   "resource-groups:ListGroupResources",
                   "resource-groups:DeleteGroup",
                   "resource-groups:Tag"
               ],
               "Resource": "*",
               "Effect": "Allow"
           },
           {
               "Action": [
                   "tag:GetResources",
                   "tag:GetTagKeys",
                   "tag:GetTagValues",
                   "tag:TagResources",
                   "tag:UntagResources"
               ],
               "Resource": "*",
               "Effect": "Allow"
           }
       ]
   }
   ```

------

1. 

   1. Choisissez **Next**, **Tags**.

   1. Choisissez **Suivant,** **Réviser**.

   1. Sur la page **Politique de révision**, saisissez le **nom****S3ResourceCreationAndArtifactAccessPolicy**.

   1. Sélectionnez **Créer une politique**.

1. Dans le volet de navigation, sélectionnez **Rôles**, puis **Créer un rôle**. 

1. Pour **Sélectionner une entité de confiance**, choisissez **Politique de confiance personnalisée**, puis entrez la politique JSON suivante :

1. Choisissez **Suivant**. 

1. Dans la liste des **politiques**, sélectionnez celles que `S3ResourceCreationAndArtifactAccessPolicy` vous venez de créer. 

1. Choisissez **Suivant**. 

1. Pour le **Nom du rôle**, saisissez **SCLaunch-S3product**.
**Important**  
Les noms des rôles de lancement **doivent** commencer par SCLaunch « » suivi du nom de rôle souhaité. 

1. Choisissez **Créer un rôle**.
**Important**  
Après avoir créé le rôle de lancement dans votre compte d' AWS Service Catalog administrateur, vous devez également créer un rôle de lancement identique dans le compte d'utilisateur AWS Service Catalog final. Le rôle du compte utilisateur final doit porter le même nom et inclure la même politique que le rôle du compte administrateur.

**Pour créer un rôle de lancement dans le compte de l'utilisateur AWS Service Catalog final**

1. Connectez-vous en tant qu'administrateur au compte de l'utilisateur final, puis suivez les instructions pour [créer de nouvelles politiques dans l'onglet JSON du](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) *guide de l'utilisateur IAM*. 

1. Répétez les étapes 2 à 10 de *la section Pour créer un rôle de lancement dans le compte AWS Service Catalog administrateur* ci-dessus. 

**Note**  
Lorsque vous créez un rôle de lancement dans le compte de l'utilisateur AWS Service Catalog final, assurez-vous d'utiliser le même administrateur **AccountId** dans la politique de confiance personnalisée. 

Maintenant que vous avez créé un rôle de lancement dans les comptes administrateur et utilisateur final, vous pouvez ajouter une contrainte de lancement au produit. 

# Étape 6 : Ajouter une contrainte de lancement à votre produit Terraform
<a name="getstarted-launchconstraint-Terraform"></a>

**Important**  
Vous devez créer une contrainte de lancement pour les produits HashiCorp Terraform. Sans contrainte de lancement, les utilisateurs finaux ne peuvent pas fournir le produit. 

Après avoir créé un rôle de lancement dans votre compte administrateur, vous êtes prêt à associer le rôle de lancement à une contrainte de lancement sur votre produit External ou Terraform Cloud. 

Cette contrainte de lancement permet à l'utilisateur final de lancer le produit et, après le lancement, de le gérer en tant que produit provisionné. Pour plus d'informations, veuillez consulter [Contraintes de lancement AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html).

L'utilisation d'une contrainte de lancement vous permet de suivre les meilleures pratiques IAM qui consistent à réduire au minimum les autorisations IAM des utilisateurs finaux. Pour plus d’informations, consultez [Accorder le moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) dans le *guide de l’utilisateur IAM*.

**Pour attribuer une contrainte de lancement au produit**

1. Ouvrez la AWS Service Catalog console à l'adresse [https://console.aws.amazon.com/servicecatalog.](https://console.aws.amazon.com/servicecatalog.)

1. Dans la console de navigation de gauche, choisissez **Portfolio**. 

1. Choisissez le portefeuille de **compartiments S3**.

1. Sur la page des **détails du portefeuille**, choisissez l'onglet **Contraintes**, puis sélectionnez **Créer une contrainte**.

1. Pour **Product**, choisissez **Simple S3 bucket**. AWS Service Catalog sélectionne automatiquement le type de contrainte de **lancement**.

1. Choisissez **Entrer le nom du rôle**, puis choisissez **SCLaunch-S3product**. 

1. Choisissez **Create**. 

**Note**  
Le nom de rôle indiqué doit exister dans le compte qui a créé la contrainte de lancement et dans le compte de l'utilisateur qui lance un produit avec cette contrainte de lancement. 

# Étape 7 : Accorder l'accès à l'utilisateur final
<a name="getstarted-deploy-Terraform"></a>

Après avoir appliqué la contrainte de lancement à votre produit HashiCorp Terraform, vous êtes prêt à accorder l'accès aux utilisateurs finaux dans le compte Spoke.

Dans ce didacticiel, vous accordez l'accès aux utilisateurs finaux à l'aide du partage de noms principaux. Les noms principaux sont des noms de groupes, de rôles et d'utilisateurs que les administrateurs peuvent spécifier dans un portefeuille, puis partager avec le portefeuille. Lorsque vous partagez le portefeuille, AWS Service Catalog vérifiez si ces noms principaux existent déjà. S'ils existent, associe AWS Service Catalog automatiquement les principaux IAM correspondants au portefeuille partagé pour accorder l'accès aux utilisateurs finaux. Consultez la [section Partage d'un portfolio](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_portfolios_sharing_how-to-share) pour plus d'informations. 

**Conditions préalables**  
Si vous n'avez pas créé de groupe IAM pour les utilisateurs finaux, consultez[Accorder des autorisations aux utilisateurs AWS Service Catalog finaux](getstarted-iamenduser.md).

**Pour donner accès au portefeuille**

1. Accédez à la page **Portfolio** et choisissez le portefeuille de **compartiments S3**. 

1. Choisissez l'onglet **Accès**, puis choisissez **Accorder l'accès**. 

1. Dans le volet **Type d'accès**, sélectionnez **Nom principal**. 

1. Dans le volet **Nom principal**, sélectionnez le type de **nom principal**, puis entrez le **nom** principal de l'utilisateur final souhaité dans le compte parlé. 

1. Choisissez **Grant access (Accorder l’accès)**. 

# Étape 8 : partager le portefeuille avec l'utilisateur final
<a name="getstarted-share-portfolio-end-user-Terraform"></a>

L' AWS Service Catalog administrateur peut distribuer des portefeuilles avec des comptes d'utilisateurs finaux en utilisant account-to-account le partage ou AWS Organizations le partage. Dans ce didacticiel, vous partagez votre portefeuille avec l'organisation à partir du compte administrateur (compte hub), qui est également le compte de gestion de l'organisation. 

**Pour partager le portfolio depuis le compte Admin Hub**

1. Ouvrez la AWS Service Catalog console à l'adresse [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/). 

1. Sur la page **Portfolios**, sélectionnez le portefeuille de compartiments S3. Dans le menu **Actions**, choisissez **Partager**. 

1. Choisissez **AWS Organizations**, puis filtrez dans votre structure organisationnelle. 

1. Dans le volet **AWS Organisation**, choisissez le compte de l'utilisateur final (compte Spoke). 

   Vous pouvez également sélectionner un **nœud racine** pour partager le portefeuille avec l'ensemble de l'organisation, une **unité organisationnelle (UO) parent ou** une unité organisationnelle **enfant** au sein de votre organisation en fonction de la structure de votre organisation. Pour plus d'informations, consultez[Partage d'un portefeuille](catalogs_portfolios_sharing_how-to-share.md). 

1. Dans le volet **des paramètres** de partage, choisissez **Partage principal**. 

1. Choisissez **Partager**. 

Après avoir partagé avec succès le portefeuille avec les utilisateurs finaux, l'étape suivante consiste à vérifier l'expérience de l'utilisateur final et à fournir le produit Terraform. 

# Étape 9 : Testez l'expérience de l'utilisateur final
<a name="getstarted-verify-Terraform"></a>

Pour vérifier que les utilisateurs finaux peuvent accéder correctement à la vue de la console utilisateur final et lancer votre **Simple S3 bucket** produit, connectez-vous en AWS tant qu'utilisateur final et effectuez les tâches ci-dessous. 

**Pour vérifier que l'utilisateur final peut accéder à la console Utilisateur final**
+ Ouvrez la AWS Service Catalog console [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)à l'adresse suivante :
  + **Produits** — Les produits que l'utilisateur peut utiliser.
  + Produits **approvisionnés : produits** provisionnés que l'utilisateur a lancés.

**Pour vérifier que l'utilisateur final peut lancer le produit Terraform**

1. Dans la section **Produits** de la console, choisissez **Simple S3 bucket**.

1. Choisissez **Launch product** pour démarrer l'assistant qui configure votre produit.

1. Sur la page **Launch Simple S3 bucket**, entrez **Amazon S3 product** le nom du produit provisionné.

1. Sur la page **Paramètres**, entrez ce qui suit, puis choisissez **Next** :
   +  **bucket\$1name** — Fournissez un nom unique pour le compartiment Amazon S3. Par exemple, **terraform-s3-product**. 

1. Choisissez **Launch product**. La console affiche la page de détails de la pile pour le lancement du produit Amazon S3. L'état initial du produit est **En cours de modification**. Le lancement du produit prend plusieurs minutes. AWS Service Catalog Pour afficher l'état en cours, actualisez votre navigateur. Après un lancement de produit réussi, le statut est **Disponible**. 

   AWS Service Catalog crée un nouveau compartiment Amazon S3 nommé**terraform-s3-product**. 

# Étape 10 : Surveillance des opérations de provisionnement de Terraform
<a name="getstarted-monitoring-Terraform"></a>

Si vous souhaitez surveiller les opérations de provisionnement, vous pouvez consulter les CloudWatch journaux Amazon et consulter n'importe quel flux de AWS Step Functions travail de provisionnement. 

Il existe deux machines d'état pour le flux de travail de provisionnement : 
+ `ManageProvisionedProductStateMachine`— AWS Service Catalog invoque cette machine d'état lors du provisionnement d'un nouveau produit Terraform et lors de la mise à jour d'un produit existant provisionné par Terraform. 
+ `TerminateProvisionedProductStateMachine`— AWS Service Catalog invoque cette machine à états lors de la résiliation d'un produit existant approvisionné par Terraform. 

**Pour exécuter la machine d'état de surveillance**

1. Ouvrez la console AWS de gestion et connectez-vous en tant qu'administrateur sur le compte du hub d'administration sur lequel le moteur de provisionnement Terraform est installé.

1. Ouvrir **AWS Step Functions**. 

1. Dans le panneau de navigation de gauche, choisissez **State machines**. 

1. Sélectionnez **ManageProvisionedProductStateMachine**. 

1. Dans la liste des **exécutions**, entrez l'ID de produit fourni pour localiser votre exécution. 
**Note**  
AWS Service Catalog crée l'ID de produit fourni lorsque vous approvisionnez le produit. L'ID de produit fourni est formaté comme suit :. **pp-1111pwtn[ID number]** 

1. Choisissez l'**ID d'exécution**. 

Sur la page **Détails de l'exécution** qui en résulte, vous pouvez consulter toutes les étapes du flux de travail de provisionnement. Vous pouvez également passer en revue les étapes ayant échoué pour identifier la cause de l'échec. 