Créez CloudFormation StackSets avec des autorisations gérées par le service - 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éez CloudFormation StackSets avec des autorisations gérées par le service

Avec les autorisations gérées par les services, vous pouvez déployer des piles sur des comptes gérés par AWS Organizations des régions spécifiques. Avec ce modèle, il n'est pas nécessaire de créer des rôles IAM dans chaque compte cible et Région AWS. CloudFormation crée les rôles IAM en votre nom. Pour de plus amples informations, veuillez consulter Activer l’accès approuvé.

Considérations

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

  • StackSets avec des autorisations gérées par les services peuvent être initiées soit par le compte de gestion de votre organisation, soit par des comptes d'administrateur délégué, mais toutes les opérations sont effectuées par le compte de gestion.

  • CloudFormation ne déploie pas les piles sur le compte de gestion, même si ce compte fait partie de votre organisation ou appartient à une unité organisationnelle (UO).

  • StackSet Vous pouvez cibler l'ensemble de votre organisation (y compris tous les comptes) ou certains d'entre eux OUs. Lorsqu'une unité d'organisation StackSet cible un parent, elle inclut automatiquement n'importe quel enfant OUs. Par défaut, lorsqu'une StackSet cible est spécifique OUs, elle inclut tous les comptes concernés OUs. Cependant, vous pouvez cibler des comptes spécifiques à l’aide des options de filtrage des comptes.

  • Plusieurs StackSets peuvent cibler la même organisation ou la même unité d'organisation.

  • Vous ne pouvez pas cibler des comptes en dehors de votre organisation.

  • Votre autorisation de déploiement StackSets dépend des autorisations attribuées au principal IAM (utilisateur, rôle ou groupe) que vous utilisez pour vous connecter au compte de gestion. Pour obtenir un exemple de politique IAM qui accorde des autorisations de déploiement dans une organisation, veuillez consulter Restriction des opérations sur les ensembles de piles en fonction de la région et des types de ressources.

  • Les administrateurs délégués disposent de toutes les autorisations nécessaires pour effectuer des déploiements sur n’importe quel compte de votre organisation. Le compte de gestion ne peut pas limiter les autorisations d'administrateur déléguées pour le déploiement sur des StackSet opérations OUs ou des opérations spécifiques.

  • Les paramètres de déploiement automatique s'appliquent au StackSet niveau. Vous ne pouvez pas ajuster les déploiements automatiques de manière sélective pour OUs, les comptes ou les régions.

  • StackSets qui utilisent des autorisations gérées par les services ne prennent pas en charge les piles imbriquées ou les modèles contenant des macros ou des transformations.

Créer un StackSet avec des autorisations gérées par le service (console)

Pour créer un StackSet
  1. Connectez-vous à la CloudFormation console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Dans la barre de navigation en haut de l'écran, choisissez Région AWS celui à StackSet partir duquel vous souhaitez gérer.

  3. Dans le volet de navigation, choisissez StackSets.

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

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

    Note

    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 StackSet 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 Activez un accès sécurisé pour StackSets avec AWS Organizations.

  6. Sous Prérequis – Préparer le modèle, sélectionnez Le modèle est prêt.

  7. 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. Ensuite, choisissez Suivant.

  8. Sur la page Spécifier StackSet les détails, attribuez un nom au StackSet, spécifiez les paramètres éventuels, puis choisissez Next.

  9. Sur la page des StackSet options de configuration, sous Balises, spécifiez les balises à appliquer aux ressources de votre pile. Pour plus d'informations sur la façon dont les balises sont utilisées AWS, consultez la section Organisation et suivi des coûts à l'aide des balises de répartition des AWS coûts dans le Guide de AWS Billing and Cost Management l'utilisateur.

  10. Pour la configuration de l'exécution, choisissez Active pour activer CloudFormation la gestion optimisée des opérations :

    • Les opérations non conflictuelles s’exécutent simultanément pour accélérer les temps de déploiement.

    • Les opérations en conflit sont automatiquement mises en file d’attente et traitées dans l’ordre dans lequel elles ont été demandées.

    Lorsque les opérations sont en cours ou en file d'attente, met en CloudFormation file d'attente toutes les opérations entrantes, même si elles ne sont pas conflictuelles. Vous ne pouvez pas modifier les paramètres d’exécution pendant cette période.

  11. Si votre modèle contient des ressources IAM, dans la section Capacités, choisissez Je sais que ce modèle peut créer des ressources IAM pour indiquer que vous autorisez l’utilisation de ressources IAM dans le modèle. Pour de plus amples informations, veuillez consulter Confirmation des ressources IAM dans les modèles CloudFormation.

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

  13. Sur la page Définir les options de déploiement, sous Cibles de déploiement, procédez de l’une des manières suivantes :

    • Pour déployer vers tous les comptes de votre organisation, choisissez Déployer vers l’organisation.

    • Pour effectuer un déploiement sur tous les comptes en particulier OUs, choisissez Déployer vers les unités organisationnelles (OUs). 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.

    Si vous avez choisi Déployer vers les unités organisationnelles (OUs), pour le type de filtre de compte, vous pouvez définir vos cibles de déploiement pour qu'elles soient des comptes individuels spécifiques en choisissant l'une des options suivantes et en fournissant des numéros de compte.

    • Aucun (par défaut) : déployez des piles sur tous les comptes de la zone spécifiée OUs.

    • Intersection — Déployez des piles sur des comptes individuels spécifiques au sein des comptes sélectionnés OUs.

    • Différence — Déployez des piles sur tous les comptes sélectionnés, à l' OUs exception de comptes spécifiques.

    • Union — Déployez des piles sur les comptes spécifiés OUs ainsi que sur des comptes individuels supplémentaires.

  14. Sous Déploiement automatique, choisissez si vous souhaitez effectuer le déploiement automatique sur les comptes ajoutés à l'organisation cible ou OUs dans le futur. Pour de plus amples informations, veuillez consulter Activer ou désactiver les déploiements automatiques pour StackSets dans AWS Organizations.

  15. 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.

    Note

    Lorsque l'option Conserver les piles est sélectionnée, les piles sont supprimées de vos piles StackSet, mais les piles et les ressources associées sont conservées. Les ressources restent dans leur état actuel, mais n'en feront plus partie StackSet.

  16. Sous Spécifier les régions, choisissez les régions dans lesquelles vous voulez déployer des piles.

  17. Pour Options de déploiement, procédez comme suit :

    • Pour Nombre maximal de comptes simultanés, spécifiez le nombre de comptes traités simultanément.

    • Pour Tolérance aux défaillances, spécifiez le nombre maximum de défaillances de compte autorisées par région. L’opération s’arrêtera et ne se poursuivra pas dans d’autres régions une fois cette limite atteinte.

    • Pour la simultanéité des régions, choisissez comment traiter les régions : séquentiellement (une région à la fois) ou en parallèle (plusieurs régions simultanément).

    • Pour le mode simultané, choisissez le comportement de la simultanéité lors de l’exécution de l’opération.

      • Tolérance stricte aux pannes : réduit le niveau de concurrence des comptes en cas de panne, en restant dans les limites de la tolérance aux pannes +1.

      • Tolérance aux pannes légères : maintient le niveau de concurrence spécifié (la valeur du nombre maximal de comptes simultanés) indépendamment des pannes.

    • Pour StackSet les dépendances, ajoutez dependent StackSet ARNs, en respectant un maximum de 10 dépendances. Pour de plus amples informations, veuillez consulter Activer ou désactiver les déploiements automatiques pour StackSets dans AWS Organizations.

  18. Choisissez Next (Suivant) pour continuer.

  19. Sur la page de révision, vérifiez que vous StackSet allez effectuer le déploiement sur les bons comptes dans les bonnes régions, puis choisissez Créer StackSet.

    La page StackSet de détails s'ouvre. Vous pouvez consulter la progression et le statut de la création des piles dans votre StackSet.

Créer un StackSet avec des autorisations gérées par le service ()AWS CLI

Suivez les étapes décrites dans cette section pour utiliser le AWS CLI pour :

  • Créez le StackSet conteneur.

  • Déployez des instances de pile.

Note

Lorsque vous agissez en tant qu’administrateur délégué, vous devez inclure --call-as DELEGATED_ADMIN dans la commande.

Deploy to your organization
Pour créer un StackSet
  1. Utilisez la create-stack-setcommande pour créer un nouveau StackSet nommy-stackset. L’exemple suivant utilise un modèle stocké dans un compartiment S3, active les déploiements automatiques et conserve les piles lorsque les comptes sont supprimés. Pour de plus amples informations, veuillez consulter Activer ou désactiver les déploiements automatiques pour StackSets dans AWS Organizations.

    aws cloudformation create-stack-set \ --stack-set-name my-stackset \ --template-url https://s3.region-code.amazonaws.com/amzn-s3-demo-bucket/MyApp.template \ --permission-model SERVICE_MANAGED \ --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=true,DependsOn=ARN1,ARN2
  2. Utilisez la list-stack-setscommande pour confirmer que vous avez bien StackSet été créé. Votre nouveau StackSet est répertorié dans les résultats.

    aws cloudformation list-stack-sets
    • Si vous définissez l'--call-asoption sur DELEGATED_ADMIN lorsque vous êtes connecté à votre compte de membre, list-stack-sets tous les fichiers dotés d'autorisations gérées StackSets par le service sont renvoyés dans le compte de gestion de l'organisation.

    • Si vous définissez l'--call-asoption sur SELF lorsque vous êtes connecté à votre Compte AWS, list-stack-sets renvoie tous les éléments autogérés StackSets dans votre Compte AWS.

    • Si vous définissez l'--call-asoption sur SELF lorsque vous êtes connecté au compte de gestion de l'organisation, toutes les données sont list-stack-sets renvoyées StackSets dans le compte de gestion de l'organisation.

  3. Utilisez la create-stack-instancescommande pour ajouter des piles à votre StackSet. Pour l’option --deployment-targets, spécifiez l’ID racine de l’organisation afin de déployer sur tous les comptes de votre organisation.

    Définissez le traitement simultané des comptes et les autres préférences de déploiement à l’aide de cette option --operation-preferences. Cet exemple utilise des paramètres basés sur le décompte. Notez que MaxConcurrentCount ne doit pas dépasser FailureToleranceCount + 1. Pour les paramètres basés sur des pourcentages, utilisez FailureTolerancePercentage ou MaxConcurrentPercentage à la place.

    aws cloudformation create-stack-instances --stack-set-name my-stackset \ --deployment-targets OrganizationalUnitIds=r-a1b2c3d4e5 \ --regions us-west-2 us-east-1 \ --operation-preferences MaxConcurrentCount=1,FailureToleranceCount=0

    Pour plus d’informations, consultez CreateStackInstances dans la Référence d’API AWS CloudFormation .

  4. À l’aide du operation-id renvoyé dans la sortie create-stack-instances, utilisez la commande describe-stack-set-operation suivante pour vérifier que vos piles ont été créées avec succès.

    aws cloudformation describe-stack-set-operation \ --stack-set-name my-stackset \ --operation-id operation_ID
Deploy to organizational units (OUs)
Pour créer un StackSet
  1. Utilisez la create-stack-setcommande pour créer un nouveau StackSet nommy-stackset. L’exemple suivant utilise un modèle stocké dans un compartiment S3 et inclut un paramètre qui définit un KeyPairName avec la valeur TestKey

    aws cloudformation create-stack-set \ --stack-set-name my-stackset \ --template-url https://s3.region-code.amazonaws.com/amzn-s3-demo-bucket/MyApp.template \ --permission-model SERVICE_MANAGED \ --parameters ParameterKey=KeyPairName,ParameterValue=TestKey
  2. Utilisez la list-stack-setscommande pour confirmer que vous avez bien StackSet été créé. Votre nouveau StackSet est répertorié dans les résultats.

    aws cloudformation list-stack-sets
    • Si vous définissez l'--call-asoption sur DELEGATED_ADMIN lorsque vous êtes connecté à votre compte de membre, list-stack-sets tous les fichiers dotés d'autorisations gérées StackSets par le service sont renvoyés dans le compte de gestion de l'organisation.

    • Si vous définissez l'--call-asoption sur SELF lorsque vous êtes connecté à votre Compte AWS, list-stack-sets renvoie tous les éléments autogérés StackSets dans votre Compte AWS.

    • Si vous définissez l'--call-asoption sur SELF lorsque vous êtes connecté au compte de gestion de l'organisation, toutes les données sont list-stack-sets renvoyées StackSets dans le compte de gestion de l'organisation.

  3. Utilisez la create-stack-instancescommande pour ajouter des piles à votre StackSet. Pour l'--deployment-targetsoption, spécifiez l'unité d'organisation IDs vers laquelle le déploiement doit être effectué.

    Définissez le traitement simultané des comptes et les autres préférences de déploiement à l’aide de cette option --operation-preferences. Cet exemple utilise des paramètres basés sur le décompte. Notez que MaxConcurrentCount ne doit pas dépasser FailureToleranceCount + 1. Pour les paramètres basés sur des pourcentages, utilisez FailureTolerancePercentage ou MaxConcurrentPercentage à la place.

    aws cloudformation create-stack-instances --stack-set-name my-stackset \ --deployment-targets OrganizationalUnitIds=ou-rcuk-1x5j1lwo,ou-rcuk-slr5lh0a \ --regions us-west-2 us-east-1 \ --operation-preferences MaxConcurrentCount=1,FailureToleranceCount=0

    Pour plus d’informations, consultez CreateStackInstances dans la Référence d’API AWS CloudFormation .

  4. À l’aide du operation-id renvoyé dans la sortie create-stack-instances, utilisez la commande describe-stack-set-operation suivante pour vérifier que vos piles ont été créées avec succès.

    aws cloudformation describe-stack-set-operation \ --stack-set-name my-stackset \ --operation-id operation_ID
Deploy to specific accounts in OUs

Vous pouvez cibler des unités organisationnelles spécifiques (OUs) et utiliser le filtrage des comptes pour contrôler précisément quels comptes reçoivent des déploiements de stack. Par défaut, les piles sont déployées sur tous les comptes compris dans les limites spécifiées OUs si aucun filtrage de compte n'est spécifié.

Dans le AWS CLI, vous spécifiez le filtrage des comptes avec l'--deployment-targetsoption. Pour de plus amples informations, veuillez consulter DeploymentTargets.

Après avoir créé le StackSet conteneur à l'aide de la create-stack-set commande, utilisez l'un des exemples suivants pour déployer des piles sur des comptes spécifiques.

Cibler des comptes spécifiques dans une UO

L'exemple suivant déploie des piles uniquement sur les comptes A1 et A2 de. OU1

aws cloudformation create-stack-instances --stack-set-name my-stackset \ --deployment-targets OrganizationalUnitIds=OU1,Accounts=A1,A2,AccountFilterType=INTERSECTION \ --regions us-west-2 us-east-1
Exclure des comptes d’une UO

L'exemple suivant déploie des piles sur tous les comptes OU1 sauf les comptes A1 et A2.

aws cloudformation create-stack-instances --stack-set-name my-stackset \ --deployment-targets OrganizationalUnitIds=OU1,Accounts=A1,A2,AccountFilterType=DIFFERENCE \ --regions us-west-2 us-east-1