AWSSupport-ContainEC2Instance - AWS Systems Manager Guide de référence du manuel d'automatisation

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' EC2 instance Amazon face à une instance potentiellement compromise ou suspecte ? Les branches d'automatisation dépendent des valeurs que vous spécifiez.

Comment fonctionne-t-il ?

Ce manuel d'automatisation AWSSupport-ContainEC2Instance assure le confinement du réseau d'une EC2 instance Amazon par le biais d'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 passer progressivement les interfaces réseau de l'instance de leurs groupes de sécurité d'origine au groupe de sécurité à accès complet, puis au groupe de sécurité de confinement. S'il est spécifié, il crée à la fois des données non chiffrées et des données chiffrées AMI sauvegardes 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 signalement tout au long des flux de travail de confinement et de publication.

Important
  • Ce runbook effectue diverses opérations nécessitant des privilèges élevés, telles que la modification de groupes de sécurité, la création AMIs, et en interaction avec les groupes Auto Scaling. Ces actions peuvent potentiellement 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 : AWS Identity and Access Management (IAM) PermissionsAWS 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' EC2 instance Amazon cible, ce qui peut avoir un impact sur la connectivité réseau. De plus, 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 AMILes Bien que ces ressources soient étiquetées à des fins d'identification, vous devez être conscient de leur création et veiller à ce qu'elles soient nettoyées ou gérées correctement une fois le processus de confinement terminé.

  • Si le Action paramètre est défini surRelease, ce runbook tente de restaurer la configuration d'origine de l' EC2 instance Amazon. Cependant, le processus de restauration risque d'échouer et de laisser l'instance dans un état incohérent. Le manuel d'exécution 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 lire attentivement le runbook, 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écuter 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 :

{ "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à Systems Manager sous Documents.

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

  3. Pour les paramètres d'entrée, entrez ce qui suit :

    • AutomationAssumeRole (Facultatif) :

      • Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle AWS AWS Identity and Access Management (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 lance ce runbook.

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

    • Action (obligatoire) :

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

      • Type : String

      • Modèle autorisé : Contain|Restore

    • DryRun (Facultatif) :

      • Description : (Facultatif) Lorsqu'elle est définie surtrue, l'automatisation n'exécute aucune commande. Elle indique plutôt ce qu'elle aurait tenté de faire, en détaillant chaque étape. Valeur par défaut : true.

      • Type : booléen

      • Valeurs autorisées : true|false

    • Créer AMIBackup (facultatif) :

      • Description : (Facultatif) Lorsqu'il est défini surtrue, un AMI de l' EC2 instance Amazon sera créée avant d'effectuer les actions de confinement.

      • Type : booléen

      • Valeurs autorisées : true|false

    • KmsKey (Facultatif) :

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

      • Type : String

      • Modèle 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,})$

    • BackupS3 BucketName (conditionnel) :

      • Description : compartiment Amazon Amazon S3 (conditionnel) pour télécharger la configuration quand elle Action est Contain ou pour restaurer la configuration quand 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 balise peut être utilisée pour identifier et gérer les ressources associées au cours du processus de confinement. Au cours du processus 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 : String

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

    • BackupS3 BucketAccess (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 quand c'Actionest le casContain. L'utilisateur ouAutomationAssumeRole, en son absence, l'utilisateur dans le contexte duquel l'automatisation est exécutée est automatiquement ajouté à la liste.

      • Type : String

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

    • IngressTrafficRules (Facultatif) :

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

      • Type : MapList

      • Modèle 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) Carte séparée par des virgules des règles de sortie des groupes de sécurité avec CIDR FromPort et ToPort au format [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] à appliquer à l'instance Amazon Amazon. IpProtocol EC2 Si aucune règle n'est fournie, un groupe de sécurité dépourvu de règles de sortie sera attaché à l' EC2 instance Amazon, empêchant ainsi tout trafic sortant.

      • Type : MapList

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

    • BackupS3 KeyName (facultatif) :

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

      • Type : String

      • Modèle 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' EC2 instance Amazon cible n'est pas terminée (supprimée).

    • GetAutoScalingInstanceInfo

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

    • CheckBackupS3BucketName

      Vérifie si le compartiment Amazon S3 cible accorde potentiellement un accès write public read ou accorde un accès 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' EC2 instance Amazon cible au groupe Auto Scaling et de son état de cycle de vie.

    • DescribeAutoScalingGroups

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

    • ModifyAutoScalingGroup

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

    • BackupInstanceSecurityGroups

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

    • CreateAllAccessSecurityGroup

      Crée un groupe de sécurité temporaire autorisant tout le trafic entrant qui remplace les groupes de sécurité de l' EC2 instance Amazon 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 illimité 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' EC2 instance Amazon cible est Amazon EBS.

    • CreateImage

      Crée un AMI de l' EC2 instance Amazon cible.

    • RestoreInstanceConfiguration

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

    • ReportContain

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

    • ReportRestore

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

    • ReportRestoreFailure

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

    • ReportContainmentFailure

      Fournit des instructions pour restaurer la configuration initiale de l' EC2 instance Amazon 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.Sortie

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

    • RestoreInstanceConfiguration.Sortie

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

    • ReportContain.Sortie

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

    • ReportRestore.Sortie

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

    • ReportContainmentFailure.Sortie

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

    • ReportRestoreFailure.Sortie

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

Références

Systems Manager Automation