View a markdown version of this page

AWSSupport-ContainEC2Instance - AWS Systems Manager Référence du dossier d’exploitation Automation

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.

AWSSupport-ContainEC2Instance

Description

Le AWSSupport-ContainEC2Instance runbook fournit une solution automatisée pour la procédure décrite dans l'article Comment isoler l'instance Amazon EC2 lorsqu'elle est confrontée à une instance potentiellement compromise ou suspecte ? L'automatisation se ramifie en fonction des valeurs que vous spécifiez.

Fonctionnement

Ce runbook AWSSupport-ContainEC2Instance d'automatisation permet de confiner le réseau d'une instance Amazon EC2 en suivant une série d'étapes coordonnées. Lorsqu'il est exécuté en Contain mode, il valide d'abord les paramètres d'entrée et vérifie si l'instance n'est pas terminée. Il sauvegarde ensuite la configuration actuelle du groupe de sécurité dans un compartiment Amazon S3 pour une restauration ultérieure. Le runbook crée deux groupes de sécurité : un groupe de sécurité temporaire « tous accès » et un groupe de sécurité « de confinement » final. Il fait progressivement passer les interfaces réseau de l'instance de leurs groupes de sécurité d'origine au groupe de sécurité à accès intégral, puis au groupe de sécurité de confinement. S'il est spécifié, il crée des AMI sauvegardes chiffrées et non chiffrées de l'instance. Pour les instances d'un groupe Auto Scaling, il gère les modifications nécessaires au groupe Auto Scaling et met l'instance en état de veille. Lorsqu'il est exécuté en Release mode, il restaure la configuration réseau d'origine de l'instance à l'aide des paramètres sauvegardés d'Amazon S3. Le runbook prend en charge un DryRun paramètre permettant de prévisualiser les actions sans apporter de modifications réelles, et inclut des mécanismes complets de gestion des erreurs et de reporting tout au long des flux de travail de confinement et de publication.

Important
  • Ce runbook effectue diverses opérations qui nécessitent des privilèges élevés, telles que la modification de groupes de sécurité, la création de AMI s et l'interaction avec les groupes Auto Scaling. Ces actions peuvent entraîner une augmentation des privilèges ou avoir un impact sur d'autres charges de travail de votre compte. Vous devez vérifier les autorisations accordées au rôle spécifié par le AutomationAssumeRole paramètre et vous assurer qu'elles sont adaptées au cas d'utilisation prévu. Vous pouvez consulter la AWS documentation suivante pour plus d'informations sur les autorisations IAM : Gestion des identités et des accès AWS (IAM) Permissions AWS Systems Manager Automation Permissions

  • Ce runbook exécute des actions mutatives susceptibles d'entraîner une indisponibilité ou une interruption de vos charges de travail. Plus précisément, il modifie les groupes de sécurité associés à l'instance Amazon EC2 cible, ce qui peut avoir un impact sur la connectivité réseau. En outre, si l'instance fait partie d'un groupe Auto Scaling, le runbook peut modifier la configuration du groupe, ce qui peut affecter son comportement de dimensionnement.

  • Au cours du processus de confinement, ce runbook crée des ressources supplémentaires, telles que des groupes de sécurité et des groupes de sécuritéAMI. Bien que ces ressources soient étiquetées à des fins d'identification, vous devez être au courant de leur création et assurer un nettoyage ou une gestion appropriés une fois le processus de confinement terminé.

  • Si le Action paramètre est défini surRelease, ce runbook tente de restaurer la configuration de l'instance Amazon EC2 à son état d'origine. Cependant, le processus de restauration risque d'échouer, laissant l'instance dans un état incohérent. Le runbook fournit des instructions pour la restauration manuelle en cas de telles défaillances, mais vous devez être prêt à gérer les problèmes potentiels pendant le processus de restauration.

Il est recommandé de passer en revue le runbook de manière approfondie, de comprendre ses impacts potentiels et de le tester dans un environnement hors production avant de l'exécuter dans votre environnement de production.

Exécutez cette automatisation (console)

Type de document

 Automatisation

Propriétaire

Amazon

Plateformes

/

Autorisations IAM requises

Le AutomationAssumeRole paramètre nécessite les actions suivantes pour utiliser correctement le runbook.

  • mise à l'échelle automatique : CreateOrUpdateTags

  • mise à l'échelle automatique : DeleteTags

  • mise à l'échelle automatique : DescribeAutoScalingGroups

  • mise à l'échelle automatique : DescribeAutoScalingInstances

  • mise à l'échelle automatique : DescribeTags

  • mise à l'échelle automatique : EnterStandby

  • mise à l'échelle automatique : ExitStandby

  • mise à l'échelle automatique : UpdateAutoScalingGroup

  • EC2 : AuthorizeSecurityGroupEgress

  • EC2 : AuthorizeSecurityGroupIngress

  • EC2 : CopyImage

  • EC2 : CreateImage

  • EC2 : CreateSecurityGroup

  • EC2 : CreateSnapshot

  • EC2 : CreateTags

  • EC2 : DeleteSecurityGroup

  • EC2 : DeleteTags

  • EC2 : DescribeImages

  • EC2 : DescribeInstances

  • EC2 : DescribeSecurityGroups

  • EC2 : DescribeSnapshots

  • EC2 : DescribeTags

  • EC2 : ModifyNetworkInterfaceAttribute

  • EC2 : RevokeSecurityGroupEgress

  • km : CreateGrant

  • km : DescribeKey

  • km : GenerateDataKeyWithoutPlaintext

  • km : ReEncryptFrom

  • km : ReEncryptTo

  • s3 : CreateBucket

  • s3 : DeleteObjectTagging

  • s3 : GetAccountPublicAccessBlock

  • s3 : GetBucketAcl

  • s3 : GetBucketLocation

  • s3 : GetBucketOwnershipControls

  • s3 : GetBucketPolicy

  • s3 : GetBucketPolicyStatus

  • s3 : GetBucketPublicAccessBlock

  • s3 : GetObject

  • s3 : ListBucket

  • s3 : PutAccountPublicAccessBlock

  • s3 : PutBucketPolicy

  • s3 : PutBucketVersioning

  • s3 : PutObject

  • s3 : PutObjectTagging

Exemple de politique :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadOperations", "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeTags", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSnapshots", "ec2:DescribeTags", "kms:DescribeKey", "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketOwnershipControls", "s3:GetBucketPolicy", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:GetObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "WriteOperations", "Effect": "Allow", "Action": [ "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteTags", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "autoscaling:UpdateAutoScalingGroup", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CopyImage", "ec2:CreateImage", "ec2:CreateSecurityGroup", "ec2:CreateSnapshot", "ec2:CreateTags", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:ModifyNetworkInterfaceAttribute", "ec2:RevokeSecurityGroupEgress", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo", "s3:CreateBucket", "s3:DeleteObjectTagging", "s3:PutAccountPublicAccessBlock", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "*" } ] }

Instructions

Pour configurer l'automatisation, procédez comme suit :

  1. Accédez à AWSSupport-ContainEC2Instance la section Documents dans Systems Manager.

  2. Sélectionnez Execute automation (Exécuter l'automatisation).

  3. Pour les paramètres d'entrée, entrez les informations suivantes :

    • AutomationAssumeRole (Facultatif) :

      • Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle AWS Gestion des identités et des accès AWS (IAM) qui permet à Systems Manager Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, Systems Manager Automation utilise les autorisations de l'utilisateur qui démarre ce runbook.

      • Type : AWS::IAM::Role::Arn

    • Action (obligatoire) :

      • Description : (Obligatoire) Sélectionnez cette option Contain pour isoler l'instance Amazon EC2 ou Restore pour essayer de restaurer la configuration d'origine de la configuration d'origine de l'instance Amazon EC2 à partir d'une sauvegarde précédente.

      • Type : Chaîne

      • Schéma autorisé : Contain|Restore

    • DryRun (Facultatif) :

      • Description : (Facultatif) Lorsque cette option est définie surtrue, l'automatisme n'exécute aucune des commandes, mais indique ce qu'il aurait tenté de faire, en détaillant chaque étape. Valeur par défaut : true.

      • Type : Boolean

      • Valeurs autorisées : true|false

    • Créer une sauvegarde AMI (facultatif) :

      • Description : (Facultatif) Lorsque cette option est définie surtrue, l'une AMI des instances Amazon EC2 sera créée avant d'effectuer les actions de confinement.

      • Type : Boolean

      • Valeurs autorisées : true|false

    • KmsKey (Facultatif) :

      • Description : (Facultatif) L'ID de la AWS KMS clé qui sera utilisée pour créer une instance Amazon EC2 chiffrée AMI ou cible. La valeur par défaut est définie sur alias/aws/ebs.

      • Type : Chaîne

      • Schéma autorisé : ^(((arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:key/)?([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|mrk-[a-f0-9]{32}))|(arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:)?alias/.{1,})$

    • BackupS3BucketName (Conditionnel) :

      • Description : compartiment Amazon S3 (conditionnel) pour télécharger la configuration lorsqu'elle Action est Contain ou pour restaurer la configuration lorsqu'elle Action estRelease. Remarque : Si le compartiment fourni n'existe pas dans le compte, l'automatisation créera un compartiment Amazon S3 en votre nom.

      • Type : AWS::S3::Bucket::Name

    • TagIdentifier (Facultatif) :

      • Description : (Facultatif) Une balise au format Key=BatchId,Value=78925 qui sera ajoutée aux AWS ressources créées ou modifiées par ce runbook pendant le flux de travail de confinement. Cette étiquette peut être utilisée pour identifier et gérer les ressources associées pendant le processus de confinement. Au cours du flux de restauration, la balise spécifiée par ce paramètre sera supprimée des ressources. Remarque : les clés et les valeurs des balises distinguent les majuscules et minuscules.

      • Type : Chaîne

      • Schéma autorisé : ^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$

    • BackupS3BucketAccess(Conditionnel) :

      • Description : (Conditionnel) L'ARN des utilisateurs ou des rôles IAM qui seront autorisés à accéder au compartiment Amazon S3 de sauvegarde après avoir exécuté les actions de confinement. Ce paramètre est obligatoire lorsqu'il Action estContain. L'utilisateur ouAutomationAssumeRole, à défaut, l'utilisateur dans le contexte duquel l'automatisation est exécutée est automatiquement ajouté à la liste.

      • Type : Chaîne

      • Schéma autorisé : ^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$

    • IngressTrafficRules (Facultatif) :

      • Description : (Facultatif) Une carte des règles d'entrée des groupes de sécurité séparées par des virgules avec Cidr, IpProtocol, FromPort et ToPort dans le format [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] à appliquer à l'instance Amazon EC2. Si aucune règle n'est fournie, un groupe de sécurité dépourvu de règles d'entrée sera attaché à l'instance Amazon EC2, l'isolant ainsi de tout trafic entrant.

      • Type : MapList

      • Schéma autorisé : ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • EgressTrafficRules (Facultatif) :

      • Description : (Facultatif) Une carte des règles de sortie des groupes de sécurité séparées par des virgules avec Cidr, IpProtocol, FromPort et ToPort dans le format [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] à appliquer à l'instance Amazon Amazon EC2. Si aucune règle n'est fournie, un groupe de sécurité dépourvu de règles de sortie sera attaché à l'instance Amazon EC2, empêchant ainsi tout le trafic sortant.

      • Type : MapList

      • Schéma autorisé : ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • BackupS3KeyName (Facultatif) :

      • Description : (Facultatif) Si cette valeur Action est définie surRestore, cela indique la clé Amazon S3 que l'automatisation utilisera pour tenter de restaurer la configuration de l'instance Amazon EC2 cible. La clé Amazon S3 suit généralement le format suivant :{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json. La clé peut être obtenue à partir de la sortie d'une exécution d'automatisation de confinement précédente.

      • Type : Chaîne

      • Schéma autorisé : ^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$

  4. Sélectionnez Exécuter.

  5. L'automatisation démarre.

  6. Le document exécute les étapes suivantes :

    • ValidateRequiredInputs

      Valide que toutes les entrées requises sont fournies.

    • AssertInstanceIsNotTerminated

      Vérifie si l'instance Amazon EC2 cible n'est pas terminée (supprimée).

    • GetAutoScalingInstanceInfo

      Obtient le cycle de vie de l'instance Amazon EC2 et le nom du groupe si l'instance Amazon EC2 cible fait partie d'un groupe Auto Scaling.

    • CheckBackupS3BucketName

      Vérifie si le compartiment Amazon S3 cible accorde potentiellement read un accès write public à ses objets. Un nouveau compartiment Amazon S3 est créé s'BackupS3BucketNameil n'existe pas.

    • BranchOnActionAndMode

      Branche l'automatisation en fonction des paramètres d'entrée Action etDryRun.

    • BranchOnAutoScalingGroupMembership

      Branche l'automatisation en fonction de l'appartenance de l'instance Amazon EC2 cible au groupe Auto Scaling et de l'état de son cycle de vie.

    • DescribeAutoScalingGroups

      Obtient et stocke la configuration du groupe Amazon EC2 Auto Scaling associé.

    • ModifyAutoScalingGroup

      Modifie la configuration du groupe Amazon EC2 Auto Scaling associé pour les actions de confinement, en définissant l'Standbyétat de l'instance Amazon EC2 et en ajustant la capacité du groupe Auto Scaling. MinSize

    • BackupInstanceSecurityGroups

      Obtient et stocke la configuration des groupes de sécurité des instances Amazon EC2 cibles.

    • CreateAllAccessSecurityGroup

      Crée un groupe de sécurité temporaire autorisant tout le trafic entrant qui remplace les groupes de sécurité de l'instance Amazon EC2 cible.

    • CreateContainmentSecurityGroup

      Crée un groupe de sécurité de confinement restrictif avec les règles d'entrée et de sortie spécifiées, et remplace le groupe temporaire à accès complet par celui-ci.

    • BranchOnCreateAMIBackup

      Branche l'automatisation en fonction du paramètre CreateAMIBackup d'entrée.

    • AssertSourceInstanceRootVolumeIsEbs

      Vérifie si le volume racine de l'instance Amazon EC2 cible est Amazon EBS.

    • CreateImage

      Crée AMI l'une des instances Amazon EC2 cibles.

    • RestoreInstanceConfiguration

      Restaure la configuration de l'instance Amazon EC2 cible à partir de la sauvegarde.

    • ReportContain

      Affiche les détails du fonctionnement à sec pour les actions de confinement.

    • ReportRestore

      Affiche les détails de fonctionnement à sec pour les actions de restauration.

    • ReportRestoreFailure

      Fournit des instructions pour restaurer la configuration d'origine de l'instance Amazon EC2 cible lors d'un scénario d'échec du flux de restauration.

    • ReportContainmentFailure

      Fournit des instructions pour restaurer la configuration d'origine de l'instance Amazon EC2 cible lors d'un scénario d'échec du flux de travail de confinement.

    • FinalOutput

      Affiche les détails des actions de confinement.

  7. Une fois l'exécution terminée, consultez la section Sorties pour obtenir les résultats détaillés de l'exécution :

    • FinalOutput.Output

      Affiche les détails des actions de confinement effectuées par ce runbook lorsqu'il DryRun est défini sur False.

    • RestoreInstanceConfiguration.Output

      Affiche les actions de restauration effectuées par ce runbook lorsqu'il DryRun est défini sur False.

    • ReportContain.Output

      Affiche les détails des actions de confinement effectuées par ce runbook lorsqu'il DryRun est défini sur True.

    • ReportRestore.Output

      Affiche les détails des actions de restauration effectuées par ce runbook lorsqu'il DryRun est défini sur True.

    • ReportContainmentFailure.Output

      Fournit des instructions pour restaurer la configuration d'origine de l'instance Amazon EC2 cible lors d'un scénario d'échec du flux de travail de confinement.

    • ReportRestoreFailure.Output

      Fournit des instructions pour restaurer la configuration d'origine de l'instance Amazon EC2 cible lors d'un scénario d'échec du flux de restauration.

Références

Systems Manager Automation