Créer un ensemble de piles - AWS CloudFormation

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.

Créer un ensemble de piles

Vous pouvez créer un ensemble de piles à l'aide des AWS CloudFormation commandes AWS Management Console ou du AWS CLI. Vous pouvez créer un ensemble de piles avec les autorisations self-managed ou service-managed.

Avec des autorisations self-managed, vous pouvez déployer des instances de pile sur des Comptes AWS spécifiques dans des régions spécifiques. Pour ce faire, vous devez d'abord créer les rôles IAM nécessaires pour établir une relation de confiance entre le compte à partir duquel vous administrez l'ensemble de piles et le compte sur lequel vous déployez des instances de pile.

Avec service-managed les autorisations, vous pouvez déployer des instances de stack sur des comptes gérés par AWS Organizations des régions spécifiques. Avec ce modèle, vous n'avez pas besoin de créer les rôles IAM nécessaires ; il StackSets crée les rôles IAM en votre nom. Vous pouvez également activer des déploiements automatiques sur des comptes qui seront ajoutés à une organisation cible ou à une unité d'organisation (UO) à l'avenir. Lorsque les déploiements automatiques sont activés, supprime StackSets automatiquement les instances de stack d'un compte si celles-ci sont supprimées d'une organisation ou d'une unité d'organisation cible.

Créer un ensemble de piles avec des autorisations autogérées

Créez un ensemble de piles avec des autorisations autogérées à l'aide du AWS Management Console

  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Dans le volet de navigation, choisissez StackSets.

  3. En haut de la StackSetspage, choisissez Create StackSet.

  4. Sous Prerequisite - Prepare template (Prérequis - Préparer le modèle), choisissez Use a sample template (Utiliser un exemple de modèle).

  5. Sous Sélectionnez un exemple de modèle, dans le menu déroulant, sélectionnez Activer le modèle de AWS configuration. Sélectionnez Suivant.

    StackSets exemple Activer le AWS Config modèle
  6. Sur la page Spécifier StackSet les détails, fournissez les informations suivantes.

    1. Indiquez un nom pour l'ensemble de piles. Les noms des ensembles de piles doivent commencer par un caractère alphabétique et ne contenir que des lettres, des chiffres et des tirets. Dans cette procédure, nous utiliserons le nom my-awsconfig-stackset.

    2. Vous êtes invité à spécifier des valeurs pour les paramètres utilisés par AWS Config. Pour plus d'informations sur ces paramètres, consultez la section Configuration de la AWS configuration avec la console dans le manuel du AWS Config développeur. Dans cette procédure, nous conservons les paramètres par défaut pour tous les paramètres AWS Config .

    3. Vous pouvez configurer les mises à jour d'Amazon Simple Notification Service (SNS) par e-mail, en fonction du contenu du journal, à l'aide du TopiCarn et des paramètres. NotificationEmail Dans le cadre de la présente procédure, nous ne configurons pas les mises à jour Amazon SNS.

    4. Vous pouvez configurer le canal de diffusion pour les mises à jour et les notifications à l'aide des paramètres DeliveryChannelNameet Fréquence. Pour plus d'informations sur le canal de diffusion dans AWS Config, consultez la section Gestion du canal de diffusion dans le Guide du AWS Config développeur. Dans le cadre de cette procédure, nous conservons les paramètres par défaut dans cette zone.

  7. Lorsque vous avez fini de spécifier les paramètres pour AWS Config, choisissez Next.

  8. Sur la page StackSet des options de configuration, ajoutez une balise en spécifiant une paire clé/valeur. Dans cette procédure, nous créons une balise appelée Stage, avec une valeur Test. Les balises que vous appliquez aux ensembles de piles sont appliquées à toutes les ressources qui sont créées par vos piles. Pour plus d'informations sur la manière dont les balises sont utilisées AWS, consultez la section Utilisation des balises de répartition des coûts dans le Guide de AWS Billing and Cost Management l'utilisateur.

    Laissez les autorisations non spécifiées.

  9. Pour la configuration de l'exécution, choisissez Active afin d'effectuer simultanément des opérations non StackSets conflictuelles et de mettre en file d'attente les opérations conflictuelles. Une fois les opérations conflictuelles terminées, StackSets démarre les opérations en file d'attente dans l'ordre des demandes.

    Note

    Si des opérations sont déjà en cours ou mises en file d'attente, met en StackSets file d'attente toutes les opérations entrantes, même si elles ne sont pas conflictuelles.

    Vous ne pouvez pas modifier la configuration d'exécution de votre ensemble de piles pendant que des opérations sont en cours d'exécution ou en file d'attente pour cet ensemble de piles.

  10. Choisissez Suivant.

  11. Sur la page Définir les options de déploiement, indiquez les comptes et régions dans lesquels vous souhaitez que les piles soient déployées dans votre ensemble de piles.

    AWS CloudFormation déploiera des piles dans les comptes spécifiés au sein de la première région, puis passera à la suivante, et ainsi de suite, tant que les échecs de déploiement d'une région ne dépassent pas la tolérance d'échec spécifiée.

    1. Pour Accounts (Comptes), choisissez Deploy stacks in accounts (Déployer des piles dans des comptes). Collez vos numéros de compte de destination dans la zone de texte, en séparant les numéros par des virgules.

    2. Pour Specify regions (Spécifier des régions), choisissez Région USA Est (Virginie du N.). Répétez l'opération pour la région Région USA Ouest (Oregon). Cliquez sur la flèche vers le haut en regard de Région USA Ouest (Oregon) pour la placer en tête de liste. L'ordre des régions sous Specify regions (Spécifier des régions) détermine l'ordre de leur déploiement.

    3. Pour Deployment options (Options de déploiement) :

      • Pour Maximum concurrent accounts (Nombre maximal de comptes en parallèle), conservez les valeurs par défaut Number (Nombre) et 1.

        Cela signifie que vous ne AWS CloudFormation déployez votre stack que dans un seul compte à la fois.

      • Pour Failure tolerance (Tolérance aux pannes), conservez les valeurs par défaut Number (Nombre) et 0.

        Cela signifie qu'un déploiement de pile au maximum peut échouer dans l'une des régions que vous avez spécifiées avant d' AWS CloudFormation arrêter le déploiement dans la région actuelle et d'annuler le déploiement dans les régions restantes.

    4. Pour Region concurrency (Simultanéité de région) :

      • Sélectionnez Séquentiel ou Parallèle pour déterminer l'ordre StackSets de déploiement pour les régions spécifiées. Par défaut, Sequential (Séquentiel) est sélectionné.

      Sélectionnez Suivant.

    Page Set Deployment Options (Définir les options de déploiement)
  12. Sur la page Review, vérifiez vos choix et les propriétés de votre ensemble de piles. Pour effectuer des modifications, choisissez Edit (Modifier) dans la zone dans laquelle vous souhaitez modifier les propriétés. Avant de pouvoir créer l'ensemble de piles, vous devez cocher la case dans la zone Capacités pour confirmer que certaines des ressources que vous créez avec l'ensemble de piles peut nécessiter de nouvelles ressources et autorisations IAM. Pour plus d'informations sur les autorisations potentiellement requises, consultezReconnaissance des ressources IAM dans les modèles AWS CloudFormation. Lorsque vous êtes prêt à créer votre ensemble de piles, choisissez Submit (Soumettre).

    Reconnaître les capacités requises
  13. AWS CloudFormation commence à créer votre stack set. Vous pouvez afficher la progression et le statut de la création des piles de votre ensemble de piles dans la page des détails de l'ensemble de piles, qui s'ouvre lorsque vous choisissez Submit (Soumettre).

    Onglet Opérations de la page de StackSets détails

Créez un ensemble de piles avec des autorisations autogérées à l'aide du AWS CLI

Lorsque vous créez des ensembles de piles à l'aide de AWS CLI commandes, vous exécutez deux commandes distinctes : create-stack-set pour télécharger votre modèle et créer le conteneur de piles, et create-stack-instances pour créer les piles au sein de votre ensemble de piles. Commencez par exécuter une AWS CLI commande pour télécharger l'exemple de AWS CloudFormation modèle qui active AWS Config, puis lancez la création d'ensembles de piles. create-stack-set

  1. Ouvrez le AWS CLI.

  2. Exécutez la commande suivante.

    Pour le paramètre --template-url, fournissez l'URL du compartiment Amazon S3 dans lequel vous stockez votre modèle. Pour cette procédure, nous utilisons my-awsconfig-stackset comme valeur du paramètre --stack-set-name. Nous activons également de --managed-execution manière à effectuer des opérations non StackSets conflictuelles simultanément et à mettre en file d'attente les opérations conflictuelles. Une fois les opérations conflictuelles terminées, StackSets démarre les opérations en file d'attente dans l'ordre des demandes.

    Note

    Si des opérations sont déjà en cours ou mises en file d'attente, met en StackSets file d'attente toutes les opérations entrantes, même si elles ne sont pas conflictuelles.

    Vous ne pouvez pas modifier la configuration d'exécution de votre ensemble de piles pendant que des opérations sont en cours d'exécution ou en file d'attente pour cet ensemble de piles.

    aws cloudformation create-stack-set \ --stack-set-name my-awsconfig-stackset \ --template-url https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
  3. Une fois que votre commande create-stack-set est terminée, exécutez la commande list-stack-sets pour vérifier que votre ensemble de piles a bien été créé. Vous devez voir votre nouvel ensemble de piles dans les résultats.

    aws cloudformation list-stack-sets
  4. Exécutez la commande create-stack-instances AWS CLI pour ajouter des instances de piles à votre ensemble de piles. Dans cette procédure, nous utilisons us-west-2 et us-east-1 comme valeurs du paramètre --regions.

    Spécifiez la tolérance d'échecs et le nombre maximal de comptes en parallèle en définissant FailureToleranceCount sur 0 et MaxConcurrentCount sur 1 dans le paramètre --operation-preferences, comme indiqué dans l'exemple suivant. Pour appliquer des pourcentages au lieu de nombres, utilisez FailureTolerancePercentage ou MaxConcurrentPercentage. Dans le cadre de la présente procédure, nous n'utilisons pas des pourcentages mais des nombres.

    Note

    La valeur de MaxConcurrentCount dépend de la valeur de FailureToleranceCount. FailureToleranceCount est au maximum supérieur à MaxConcurrentCount.

    aws cloudformation create-stack-instances \ --stack-set-name my-awsconfig-stackset \ --accounts '["account_ID_1","account_ID_2"]' \ --regions '["region_1","region_2"]' \ --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1
    Note

    La simultanéité des déploiements d' StackSet instances dans le cadre de l'opération dépend FailureToleranceCount-MaxConcurrentCount de la valeur de. FailureToleranceCount

    Important

    Attendez qu'une opération soit terminée avant d'en commencer une autre. Vous ne pouvez effectuer qu'une seule opération à la fois.

  5. Vérifiez que les instances de piles ont bien été créées. Exécutez DescribeStackSetOperation avec la valeur operation-id qui est renvoyée dans la sortie de l'étape 4.

    aws cloudformation describe-stack-set-operation \ --stack-set-name my-awsconfig-stackset \ --operation-id operation_ID

Créer un ensemble de piles avec des autorisations gérées par le service

Considérations lors de la création d'un ensemble de piles avec des autorisations gérées par le service

Avant de créer un ensemble de piles avec des autorisations gérées par le service, tenez compte des points suivants :

  • Les ensembles de piles dotés d'autorisations gérées par le service sont créés dans le compte de gestion, y compris les ensembles de piles créés par des administrateurs délégués.

  • Votre ensemble de piles peut cibler l'ensemble de votre organisation ou les unités organisationnelles spécifiées. Si votre ensemble de piles cible votre organisation, il cible également tous les comptes de toutes les UO de l'organisation. Si votre ensemble de piles cible des UO spécifiées, il cible également tous les comptes de ces UO.

  • Si votre ensemble de piles cible une UO parent, l'ensemble de piles cible également toutes les UO enfants.

  • Plusieurs ensembles de piles peuvent cibler la même organisation ou UO.

  • Votre ensemble de piles ne peut pas cibler les comptes en dehors de votre organisation.

  • Votre ensemble de piles ne peut pas déployer des piles imbriquées.

  • StackSets ne déploie pas d'instances de pile sur le compte de gestion de l'organisation, même si le compte de gestion se trouve dans votre organisation ou dans une unité d'organisation de votre organisation.

  • Le déploiement automatique est défini au niveau de l'ensemble de piles. Vous ne pouvez pas ajuster les déploiements automatiques de manière sélective pour les UO, les comptes ou les régions.

  • Les autorisations de l'entité principale IAM (utilisateur, rôle ou groupe) que vous utilisez pour vous connecter au compte de gestion déterminent si vous êtes autorisé à effectuer un StackSets déploiement. Pour obtenir un exemple de politique IAM qui accorde des autorisations de déploiement dans une organisation, veuillez consulter Exemple de politique qui accorde des autorisations d'ensemble de piles gérées par un service.

  • Les administrateurs délégués disposent des autorisations complètes pour un déploiement dans les comptes de votre organisation. Le compte de gestion ne peut pas limiter les autorisations d'administrateur délégué pour le déploiement vers des UO spécifiques ou pour les opérations d'ensembles de piles spécifiques.

Créez un ensemble de piles avec des autorisations gérées par les services à l'aide de la console AWS CloudFormation

  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Dans le volet de navigation, choisissez StackSets.

  3. En haut de la StackSetspage, choisissez Create StackSet.

  4. Sous Prepare template (Préparer le modèle), choisissez Template is ready (Le modèle est prêt).

  5. Sous Spécifier le modèle, choisissez soit de spécifier l'URL du compartiment S3 qui contient votre modèle de pile, soit de charger un fichier de modèle de pile. Choisissez Suivant.

  6. Sur la page Spécifier StackSet les détails, donnez un nom à l'ensemble de piles, spécifiez les paramètres éventuels, puis choisissez Next.

  7. Sur la page des StackSet options de configuration, sous Balises, spécifiez les balises à appliquer aux ressources de votre pile.

  8. Sous Autorisations, choisissez Autorisations gérées par le service.

    Si l'accès sécurisé avec AWS Organizations est désactivé, une bannière s'affiche. Un accès sécurisé est requis pour créer ou mettre à jour un ensemble de piles avec des autorisations gérées par le service. Seul l'administrateur du compte de gestion de l'organisation dispose des autorisations nécessaires pour Activer l'accès sécurisé avec AWS Organizations.

    Activez la bannière de l'accès sécurisé.
  9. Pour la configuration de l'exécution, choisissez Active afin d'effectuer simultanément des opérations non StackSets conflictuelles et de mettre en file d'attente les opérations conflictuelles. Une fois les opérations conflictuelles terminées, StackSets démarre les opérations en file d'attente dans l'ordre des demandes.

    Note

    Si des opérations sont déjà en cours ou mises en file d'attente, met en StackSets file d'attente toutes les opérations entrantes, même si elles ne sont pas conflictuelles.

    Vous ne pouvez pas modifier la configuration d'exécution de votre ensemble de piles pendant que des opérations sont en cours d'exécution ou en file d'attente pour cet ensemble de piles.

  10. Choisissez Suivant pour continuer et activer l'accès sécurisé si cela n'a pas encore été fait.

  11. Dans la page Définir les options, sous Cibles de déploiement, sélectionnez les comptes de votre organisation vers lesquels déployer.

    • Choisissez Déployer dans l'organisation pour déployer sur tous les comptes de votre organisation.

      Déployez des instances de pile sur tous les comptes de votre organisation.
    • Choisissez Déployer vers les unités organisationnelles (UO) pour le déployer sur tous les comptes dans des UO spécifiques. Choisissez Ajouter une UO, puis collez l'ID d'unité d'organisation cible dans la zone de texte. Répétez l'opération pour chaque nouvelle UO cible.

      Déployez des instances de pile sur tous les comptes dans certaines UO au sein de votre organisation.
  12. Sous Déploiement automatique, indiquez si le déploiement StackSets sera automatiquement effectué sur les comptes ajoutés à l'organisation cible ou sur les unités d'organisation à l'avenir.

    Paramètres de déploiement automatique pour les ensembles de piles avec des autorisations gérées par le service.
  13. Si vous avez activé le déploiement automatique, sous Comportement de suppression de compte, choisissez si les ressources de pile sont conservées ou supprimées lorsqu'un compte est supprimé d'une organisation cible ou d'une UO.

    Paramètres de comportement de suppression de compte pour les ensembles de piles avec des autorisations gérées par le service.
    Note

    Lorsque la fonction Conserver les piles est sélectionnée, les instances de pile sont supprimées de votre ensemble de piles, mais les piles et leurs ressources associées sont conservées. Les ressources restent dans leur état actuel, mais ne feront plus partie de l'ensemble de piles.

  14. Sous Régions de déploiement, choisissez les régions dans lesquelles vous souhaitez déployer des instances de pile. Choisissez Suivant.

  15. Sur la page de révision, vérifiez qu'il StackSets sera déployé sur les bons comptes dans les bonnes régions, puis choisissez Créer StackSet.

La page StackSet de détails s'ouvre. Vous pouvez afficher la progression et l'état de la création des piles dans votre ensemble de piles.

Créez un ensemble de piles avec des autorisations gérées par les services à l'aide du AWS CLI

Lorsque vous créez des ensembles de piles à l'aide de AWS CLI, vous exécutez deux commandes distinctes. Pendant create-stack-set, vous chargez votre modèle, créez le conteneur d'ensemble de piles et gérez les déploiements automatiques. Pendant create-stack-instances, vous créez des instances de pile dans des comptes cibles spécifiques.

Lorsque vous agissez en tant qu'administrateur délégué, vous devez définir le --call-as paramètre à DELEGATED_ADMIN chaque fois que vous exécutez une StackSets commande.

--call-as DELEGATED_ADMIN

Les ensembles de piles sont créés par un administrateur délégué dans le compte de gestion de l'organisation.

  1. Ouvrez le AWS CLI.

  2. Exécutez la commande create-stack-set.

    Dans l'exemple suivant, nous activons les déploiements automatiques pour StackSets permettre le déploiement automatique sur des comptes qui seront ajoutés à l'organisation cible ou aux unités d'organisation à l'avenir. Nous conservons les ressources de pile lorsqu'un compte est supprimé d'une organisation cible ou d'une UO. Nous activons également de --managed-execution manière à effectuer des opérations non StackSets conflictuelles simultanément et à mettre en file d'attente les opérations conflictuelles. Une fois les opérations conflictuelles terminées, StackSets démarre les opérations en file d'attente dans l'ordre des demandes.

    Note

    Si des opérations sont déjà en cours ou mises en file d'attente, met en StackSets file d'attente toutes les opérations entrantes, même si elles ne sont pas conflictuelles.

    Vous ne pouvez pas modifier la configuration d'exécution de votre ensemble de piles pendant que des opérations sont en cours d'exécution ou en file d'attente pour cet ensemble de piles.

    aws cloudformation create-stack-set \ --stack-set-name StackSet_myApp \ --template-url https://s3.us-west-2.amazonaws.com/cloudformation-templates-us-west-2/MyApp.template \ --permission-model SERVICE_MANAGED \ --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=true
  3. Une fois que votre commande create-stack-set est terminée, exécutez la commande list-stack-sets pour vérifier que votre ensemble de piles a bien été créé. Votre nouvel ensemble de piles est répertorié dans les résultats.

    aws cloudformation list-stack-sets
    • Si vous définissez le paramètre --call-as sur DELEGATED_ADMIN lorsque vous êtes connecté à votre compte membre, list-stack-sets renvoie tous les ensembles de piles avec des autorisations gérées par le service dans le compte de gestion de l'organisation.

    • Si vous définissez le --call-as paramètre sur SELF alors que vous êtes connecté à votre AWS compte, list-stack-sets tous les ensembles de piles autogérés de votre AWS compte sont renvoyés.

    • Si vous définissez le paramètre --call-as sur SELF lorsque vous êtes connecté au compte de gestion de l'organisation, list-stack-sets renvoie tous les ensembles de piles du compte de gestion de l'organisation.

  4. Exécutez la commande create-stack-instances pour ajouter des instances de piles à votre ensemble de piles. Pour le paramètre --deployment-targets, spécifiez l'ID racine de l'organisation à déployer sur tous les comptes de votre organisation ou spécifiez les ID d'UO à déployer sur tous les comptes de ces UO. Dans cet exemple, nous spécifions les UO avec les ID ou-rcuk-1x5j1lwo et ou-rcuk-slr5lh0a.

    aws cloudformation create-stack-instances --stack-set-name StackSet_myApp --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo", "ou-rcuk-slr5lh0a"]' --regions '["eu-west-1"]'
    Important

    Attendez qu'une opération soit terminée avant d'en commencer une autre. Vous ne pouvez effectuer qu'une seule opération à la fois.

  5. En utilisant le operation-id qui a été renvoyé dans le cadre de la sortie create-stack-instances à l'étape 4, exécutez describe-stack-set-operation pour vérifier que vos instances de pile ont été créées avec succès.