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
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) 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' 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 :
-
Accédez
AWSSupport-ContainEC2Instance
à Systems Manager sous Documents. -
Sélectionnez Execute automation (Exécuter l'automatisation).
-
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 ouRestore
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 sur
true
, 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 sur
true
, 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
estContain
ou pour restaurer la configuration quand elleAction
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'
Action
est 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}$
-
-
Sélectionnez Exécuter.
-
L'automatisation démarre.
-
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
publicread
ou accorde un accès public à ses objets. Un nouveau compartiment Amazon S3 est créé s'BackupS3BucketName
il 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 groupeMinSize
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.
-
-
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