Créez AWS 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 AWS 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, vous n'avez pas besoin de créer les rôles IAM nécessaires ; il CloudFormation crée les rôles IAM en votre nom. Pour de plus amples informations, veuillez consulter Activez l'accès sécurisé.

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 le service sont créées dans le compte de gestion, y compris StackSets celles créées par des administrateurs délégués.

  • StackSet Vous pouvez cibler l'ensemble de votre organisation (y compris tous les comptes) ou des unités organisationnelles spécifiques (OUs). Si vous StackSet ciblez une unité d'organisation parent, elle cible également n'importe quel enfant OUs. Lorsque vos StackSet cibles sont spécifiques OUs, tous les comptes de celles-ci OUs sont inclus par défaut. 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.

  • StackSet Vous ne pouvez pas cibler des comptes extérieurs à votre organisation.

  • StackSet Vous ne pouvez pas déployer de piles imbriquées.

  • CloudFormation ne déploie pas les piles 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 StackSet niveau. Vous ne pouvez pas ajuster les déploiements automatiques de manière sélective pour OUs, 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 Limitez les opérations des ensembles de piles en fonction de la région et des types de ressources.

  • 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ées pour effectuer des déploiements OUs ou des StackSet opérations spécifiques.

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

Pour créer un StackSet
  1. Connectez-vous à la AWS 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 l'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 manière 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 Fonctionnalités, sélectionnez Je reconnais que ce modèle peut créer des ressources IAM pour spécifier que vous souhaitez utiliser des 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, effectuez l'une des opérations suivantes :

    • Pour effectuer le déploiement sur tous les comptes de votre organisation, choisissez Déployer dans 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 individuels 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 souhaitez déployer des piles.

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

    • Pour le 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 le mode de traitement des régions : séquentiel (une région à la fois) ou 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 défaillances : réduit le niveau de simultanéité des comptes en cas de défaillance, tout en respectant la tolérance aux défaillances +1.

      • Tolérance souple aux défaillances : maintient le niveau de simultanéité que vous avez spécifié (la valeur du nombre maximal de comptes simultanés) indépendamment des défaillances.

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

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 préserve les piles lorsque des 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
  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 --deployment-targets cette option, spécifiez l'ID racine de l'organisation à 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 --operation-preferences cette option. Cet exemple utilise des paramètres basés sur le décompte. Notez que cela ne MaxConcurrentCount doit pas dépasser FailureToleranceCount +1. Pour les paramètres basés sur des pourcentages, utilisez FailureTolerancePercentage ou à la place. MaxConcurrentPercentage

    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 de operation-id ce qui a été renvoyé dans le cadre de la create-stack-instances sortie, utilisez la describe-stack-set-operationcommande 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 a 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 --operation-preferences cette option. Cet exemple utilise des paramètres basés sur le décompte. Notez que cela ne MaxConcurrentCount doit pas dépasser FailureToleranceCount +1. Pour les paramètres basés sur des pourcentages, utilisez FailureTolerancePercentage ou à la place. MaxConcurrentPercentage

    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 de operation-id ce qui a été renvoyé dans le cadre de la create-stack-instances sortie, utilisez la describe-stack-set-operationcommande 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.

Ciblez des comptes spécifiques dans une unité d'organisation

L'exemple suivant déploie des piles uniquement sur les comptes A1 et A2 dans. 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 unité d'organisation

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
Inclure des comptes supplémentaires

L'exemple suivant déploie des piles sur tous les comptes en OU1 plus d'un compte A4 supplémentaire provenant d'une autre unité d'organisation.

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