Création de piles à l'aide du mode Direct Change - Guide de l'utilisateur avancé d'AMS

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éation de piles à l'aide du mode Direct Change

Pour que la pile soit gérée par AMSAWSManagedServicesCloudFormationAdminRole, deux conditions sont requises lors du lancement de piles à l' CloudFormation aide de :

  • Le modèle doit contenir unAmsStackTransform.

  • Le nom de la pile doit commencer par le préfixe stack- suivi d'une chaîne alphanumérique de 17 caractères.

Note

Pour utiliser correctement leAmsStackTransform, vous devez reconnaître que votre modèle de pile contient la CAPABILITY_AUTO_EXPAND capacité permettant à AWS CloudFormation (CFN) de créer ou de mettre à jour la pile. Pour ce faire, vous devez transmettre le dans le CAPABILITY_AUTO_EXPAND cadre de votre demande de création de pile. Le CFN rejette la demande si cette fonctionnalité n'est pas reconnue lors de AmsStackTransform son inclusion dans le modèle. La console CFN garantit que vous transmettez cette fonctionnalité si vous avez la transformation dans votre modèle, mais elle peut être manquée lorsque vous interagissez avec CFN via leur. APIs

Vous devez transmettre cette fonctionnalité chaque fois que vous utilisez les appels d'API CFN suivants :

Lors de la création ou de la mise à jour d'une pile avec DCM, les mêmes validations et augmentations de CFN Ingest et Stack Update CTs sont effectuées sur la pile. Pour plus d'informations, consultez les directives d'AWS CloudFormation ingestion, les meilleures pratiques et les limites. L'exception à cette règle est que les groupes de sécurité AMS par défaut (SGs) ne seront attachés à aucune EC2 instance autonome ni à aucune instance EC2 des groupes Auto Scaling (ASGs). Lorsque vous créez votre CloudFormation modèle, avec des EC2 instances autonomes ou ASGs, vous pouvez associer le modèle par défaut SGs.

Note

Les rôles IAM peuvent désormais être créés et gérés à l'aide duAWSManagedServicesCloudFormationAdminRole.

Par défaut, AMS SGs possède des règles d'entrée et de sortie qui permettent aux instances de se lancer correctement et d'y accéder ultérieurement via SSH ou RDP par les opérations AMS et par vous. Si vous trouvez que les groupes de sécurité AMS par défaut sont trop permissifs, vous pouvez créer les vôtres SGs avec des règles plus restrictives et les associer à votre instance, à condition que cela vous permette, ainsi qu'aux opérations AMS, d'accéder à l'instance lors d'incidents.

Les groupes de sécurité AMS par défaut sont les suivants :

  • SentinelDefaultSecurityGroupPrivateOnly: Accessible dans le modèle CFN via ce paramètre SSM /ams/${VpcId}/SentinelDefaultSecurityGroupPrivateOnly

  • SentinelDefaultSecurityGroupPrivateOnlyEgressAll: Accessible dans le modèle CFN via ce paramètre SSM /ams/${VpcId}/SentinelDefaultSecurityGroupPrivateOnlyEgressAll

Transformation AMS

Ajoutez une Transform déclaration à votre CloudFormation modèle. Cela ajoute une CloudFormation macro qui valide et enregistre la pile auprès d'AMS au moment du lancement.

Exemple JSON

"Transform": {     "Name": "AmsStackTransform",     "Parameters": {       "StackId": {"Ref" : "AWS::StackId"}     }   }

Exemple YAML

Transform: Name: AmsStackTransform Parameters: StackId: !Ref 'AWS::StackId'

Ajoutez également l'Transforminstruction lors de la mise à jour du modèle d'une pile existante.

Exemple JSON

{   "AWSTemplateFormatVersion": "2010-09-09",   "Description" : "Create an SNS Topic",    "Transform": { "Name": "AmsStackTransform", "Parameters": { "StackId": {"Ref" : "AWS::StackId"} } },   "Parameters": {     "TopicName": {       "Type": "String",       "Default": "HelloWorldTopic"     }   },   "Resources": {     "SnsTopic": {       "Type": "AWS::SNS::Topic",       "Properties": {         "TopicName": {"Ref": "TopicName"}       }     }   } }

Exemple YAML

AWSTemplateFormatVersion: '2010-09-09' Description: Create an SNS Topic Transform: Name: AmsStackTransform Parameters: StackId: !Ref 'AWS::StackId' Parameters: TopicName: Type: String Default: HelloWorldTopic Resources: SnsTopic: Type: AWS::SNS::Topic Properties: TopicName: !Ref TopicName

Nom de la pile

Le nom de la pile doit commencer par le préfixe stack- suivi d'une chaîne alphanumérique de 17 caractères. Cela permet de maintenir la compatibilité avec les autres systèmes AMS qui fonctionnent sur la pile AMS IDs. 

Voici des exemples de méthodes permettant de générer une pile compatible IDs :

Bash :

echo "stack-$(env LC_CTYPE=C tr -dc 'a-z0-9' < /dev/urandom | head -c 17)"

Python :

import string import random 'stack-' + ''.join(random.choices(string.ascii_lowercase + string.digits, k=17))

PowerShell :

"stack-" + ( -join ((0x30..0x39) + ( 0x61..0x7A) | Get-Random -Count 17 | % {[char]$_}) )