Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
AWSSupport-ContainEC2Instance
Descripción
El AWSSupport-ContainEC2Instance
manual proporciona una solución automatizada para el procedimiento descrito en el artículo ¿Cómo puedo aislar la instancia de Amazon ante una EC2 instancia potencialmente comprometida o sospechosa
¿Cómo funciona?
Este manual de automatización AWSSupport-ContainEC2Instance
realiza la contención de red de una EC2 instancia de Amazon mediante una serie de pasos coordinados. Cuando se ejecuta en Contain
modo, primero valida los parámetros de entrada y comprueba si la instancia no ha terminado. A continuación, realiza una copia de seguridad de la configuración actual del grupo de seguridad en un bucket de Amazon S3 para su posterior restauración. El manual crea dos grupos de seguridad: un grupo de seguridad temporal de «acceso total» y un grupo de seguridad final de «contención». De forma gradual, las interfaces de red de la instancia pasan de sus grupos de seguridad originales al grupo de seguridad de acceso total y, finalmente, al grupo de seguridad de contención. Si se especifica, crea tanto cifradas como no cifradas AMI copias de seguridad de la instancia. Para las instancias de un grupo de Auto Scaling, gestiona las modificaciones necesarias del grupo de Auto Scaling y pone la instancia en estado de espera. Cuando se ejecuta en Release
modo, restaura la instancia a su configuración de red original mediante la configuración de copia de seguridad de Amazon S3. El runbook admite un DryRun
parámetro para obtener una vista previa de las acciones sin realizar cambios reales, e incluye mecanismos integrales de gestión y notificación de errores en todos los flujos de trabajo de contención y publicación.
importante
-
Este manual realiza diversas operaciones que requieren privilegios elevados, como la modificación de grupos de seguridad o la creación AMIs e interactuando con grupos de Auto Scaling. Estas acciones podrían provocar una escalada de privilegios o afectar a otras cargas de trabajo de su cuenta. Debes revisar los permisos otorgados al rol especificado por el
AutomationAssumeRole
parámetro y asegurarte de que son adecuados para el caso de uso previsto. Puede consultar la siguiente AWS documentación para obtener más información sobre los permisos de IAM:AWS Identity and Access Management (IAM) Permissions
AWS Systems Manager Automation Permissions
. -
Este manual realiza acciones mutativas que podrían provocar la falta de disponibilidad o la interrupción de sus cargas de trabajo. En concreto, modifica los grupos de seguridad asociados a la EC2 instancia de Amazon de destino, lo que podría afectar a la conectividad de la red. Además, si la instancia forma parte de un grupo de Auto Scaling, el runbook puede modificar la configuración del grupo, lo que podría afectar a su comportamiento de escalado.
-
Durante el proceso de contención, este manual crea recursos adicionales, como grupos de seguridad y AMI. Si bien estos recursos están etiquetados para su identificación, debe estar al tanto de su creación y asegurarse de que se limpian o administran adecuadamente una vez finalizado el proceso de contención.
-
Si el
Action
parámetro está establecido enRelease
, este runbook intentará restaurar la configuración de la EC2 instancia de Amazon a su estado original. Sin embargo, existe el riesgo de que el proceso de restauración falle y deje la instancia en un estado incoherente. El manual proporciona instrucciones para la restauración manual en caso de que se produzcan estos errores, pero debes estar preparado para gestionar posibles problemas durante el proceso de restauración.
Se recomienda revisar el manual detenidamente, comprender sus posibles impactos y probarlo en un entorno que no sea de producción antes de ejecutarlo en su entorno de producción.
Ejecuta esta automatización (consola)
Tipo de documento
Automatización
Propietario
Amazon
Plataformas
/
Permisos de IAM necesarios
El parámetro AutomationAssumeRole
requiere las siguientes acciones para utilizar el manual de procedimientos correctamente.
escalado automático: CreateOrUpdateTags
escalado automático: DeleteTags
escalado automático: DescribeAutoScalingGroups
escalado automático: DescribeAutoScalingInstances
escalado automático: DescribeTags
escalado automático: EnterStandby
escalado automático: ExitStandby
escalado automático: 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
Ejemplo de política:
{ "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": "*" } ] }
Instrucciones
Siga estos pasos para configurar la automatización:
-
Navegue hasta
AWSSupport-ContainEC2Instance
Systems Manager en Documentos. -
Elija Execute automation (Ejecutar automatización).
-
Para los parámetros de entrada, introduzca lo siguiente:
-
AutomationAssumeRole (Opcional):
Descripción: (opcional) El nombre del recurso de Amazon (ARN) del rol AWS AWS Identity and Access Management (IAM) que permite a Systems Manager Automation realizar las acciones en su nombre. Si no se especifica ningún rol, Systems Manager Automation utiliza los permisos del usuario que inicia este runbook.
Tipo:
AWS::IAM::Role::Arn
-
Acción (obligatoria):
Descripción: (Obligatorio) Seleccione
Contain
esta opción para aislar la EC2 instancia de Amazon oRestore
intentar restaurar la configuración original de la EC2 instancia de Amazon a partir de una copia de seguridad anterior.Tipo: cadena
Valor permitido:
Contain|Restore
-
DryRun (Opcional):
Descripción: (opcional) Si se configura en
true
, la automatización no ejecutará ninguno de los comandos, sino que informará sobre lo que habría intentado hacer y detallará cada paso. Valor predeterminado:true
.Tipo: Booleano
Valores permitidos:
true|false
-
Crear AMIBackup (opcional):
Descripción: (opcional) Cuando se establece en
true
, un AMI de la EC2 instancia de Amazon se creará antes de realizar las acciones de contención.Tipo: Booleano
Valores permitidos:
true|false
-
KmsKey (Opcional):
Descripción: (opcional) El ID de la AWS KMS clave que se utilizará para crear un cifrado AMI de la EC2 instancia de Amazon de destino. El valor predeterminado es
alias/aws/ebs
.Tipo: cadena
Valor permitido:
^(((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,})$
-
Copias de seguridad S3 BucketName (condicional):
Descripción: bucket de Amazon S3 (condicional) para cargar la configuración cuando
Action
estéContain
o para restaurarla cuandoAction
estéRelease
. Nota: Si el depósito proporcionado no existe en la cuenta, la automatización creará un depósito de Amazon S3 en tu nombre.Tipo:
AWS::S3::Bucket::Name
-
TagIdentifier (Opcional):
Descripción: (opcional) Una etiqueta con el formato
Key=BatchId,Value=78925
que se añadirá a los AWS recursos creados o modificados por este manual durante el flujo de trabajo de contención. Esta etiqueta se puede usar para identificar y administrar los recursos asociados durante el proceso de contención. Durante el flujo de trabajo de restauración, la etiqueta especificada por este parámetro se eliminará de los recursos. Nota: Las claves y los valores de las etiquetas distinguen entre mayúsculas y minúsculas.Tipo: cadena
Valor permitido:
^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$
-
Copias de seguridad 3 BucketAccess (condicionales):
Descripción: (Condicional) El ARN de los usuarios o roles de IAM a los que se les permitirá acceder al bucket de respaldo de Amazon S3 después de ejecutar las acciones de contención. Este parámetro es obligatorio cuando lo es.
Action
Contain
El usuario en cuyo contexto se ejecuta la automatización oAutomationAssumeRole
, en su defecto, el usuario en cuyo contexto se ejecuta la automatización se añade automáticamente a la lista.Tipo: cadena
Valor permitido:
^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$
-
IngressTrafficRules (Opcional):
Descripción: (opcional) Un mapa separado por comas de las reglas de entrada de grupos de seguridad con Cidr FromPort y ToPort en el formato que se va a aplicar
[{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}]
a la instancia de Amazon. IpProtocol EC2 Si no se proporciona ninguna regla, se adjuntará a la EC2 instancia de Amazon un grupo de seguridad sin reglas de entrada, lo que la aislará eficazmente del tráfico entrante.Tipo: MapList
Valor permitido:
^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}
-
EgressTrafficRules (Opcional):
Descripción: (opcional) Un mapa separado por comas de las reglas de salida de los grupos de seguridad con Cidr FromPort y ToPort en el formato que se va a aplicar
[{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}]
a la instancia de Amazon Amazon. IpProtocol EC2 Si no se proporciona ninguna regla, se adjuntará a la EC2 instancia de Amazon un grupo de seguridad sin reglas de salida, lo que impedirá de forma efectiva todo el tráfico saliente.Tipo: MapList
Valor permitido:
^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}
-
BackupS3 KeyName (opcional):
Descripción: (Opcional) Si
Action
se establece enRestore
, especifica la clave de Amazon S3 que utilizará la automatización para intentar restaurar la configuración de la EC2 instancia de Amazon de destino. La clave de Amazon S3 suele seguir este formato:{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json
. La clave se puede obtener del resultado de una ejecución anterior de automatización de contención.Tipo: cadena
Valor permitido:
^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$
-
-
Seleccione Ejecutar.
-
Se inicia la automatización.
-
Este documento realiza los siguientes pasos:
-
ValidateRequiredInputs
Valida que se hayan proporcionado todas las entradas necesarias.
-
AssertInstanceIsNotTerminated
Comprueba si la EC2 instancia de Amazon de destino no está finalizada (eliminada).
-
GetAutoScalingInstanceInfo
Obtiene el ciclo de vida de la EC2 instancia de Amazon y el nombre del grupo si la EC2 instancia de Amazon de destino forma parte de un grupo de Auto Scaling.
-
CheckBackupS3BucketName
Comprueba si el bucket de Amazon S3 de destino puede conceder acceso
write
públicoread
o conceder acceso público a sus objetos. Se crea un nuevo bucket de Amazon S3 si elBackupS3BucketName
bucket no existe. -
BranchOnActionAndMode
Ramifica la automatización en función de los parámetros de entrada
Action
yDryRun
. -
BranchOnAutoScalingGroupMembership
Ramifica la automatización en función de si la EC2 instancia de Amazon de destino forma parte del grupo Auto Scaling y del estado de su ciclo de vida.
-
DescribeAutoScalingGroups
Obtiene y almacena la configuración del grupo Amazon EC2 Auto Scaling asociada.
-
ModifyAutoScalingGroup
Modifica la configuración del grupo de Amazon EC2 Auto Scaling asociado para las acciones de contención, estableciendo la EC2 instancia de Amazon en el
Standby
estado y ajustando la capacidad del grupoMinSize
de Auto Scaling. -
BackupInstanceSecurityGroups
Obtiene y almacena la configuración de los grupos de seguridad de Amazon EC2 Instance de destino.
-
CreateAllAccessSecurityGroup
Crea un grupo de seguridad temporal que permite todo el tráfico de entrada que reemplaza a los grupos de seguridad de la Amazon EC2 Instance de destino.
-
CreateContainmentSecurityGroup
Crea un grupo de seguridad de contención restrictivo con las reglas de entrada y salida especificadas y reemplaza el grupo temporal de acceso total por él.
-
BranchOnCreateAMIBackup
Ramifica la automatización en función del parámetro de entrada.
CreateAMIBackup
-
AssertSourceInstanceRootVolumeIsEbs
Comprueba si el volumen raíz de Amazon EC2 Instance de destino es Amazon EBS.
-
CreateImage
Crea un AMI de la EC2 instancia de Amazon de destino.
-
RestoreInstanceConfiguration
Restaura la configuración de Amazon EC2 Instance de destino desde la copia de seguridad.
-
ReportContain
Muestra los detalles del simulacro de las acciones de contención.
-
ReportRestore
Muestra los detalles del ensayo en seco para las acciones de restauración.
-
ReportRestoreFailure
Proporciona instrucciones para restaurar la configuración original de Amazon EC2 Instance de destino durante un escenario de error en el flujo de trabajo de restauración.
-
ReportContainmentFailure
Proporciona instrucciones para restaurar la configuración original de Amazon EC2 Instance de destino durante un escenario de error en el flujo de trabajo de contención.
-
FinalOutput
Muestra los detalles de las acciones de contención.
-
-
Una vez completada la ejecución, revise la sección de resultados para ver los resultados detallados de la ejecución:
-
FinalOutput.Salida
Muestra los detalles de las acciones de contención realizadas por este manual cuando se establece en
DryRun
False. -
RestoreInstanceConfiguration.Salida
Muestra las acciones de restauración realizadas por este manual cuando se establece en
DryRun
False. -
ReportContain.Salida
Muestra los detalles de las acciones de contención realizadas por este manual cuando
DryRun
se establece en True. -
ReportRestore.Salida
Muestra los detalles de las acciones de restauración realizadas por este runbook cuando
DryRun
se establece en True. -
ReportContainmentFailure.Salida
Proporciona instrucciones para restaurar la configuración original de Amazon EC2 Instance de destino durante un escenario de error en el flujo de trabajo de contención.
-
ReportRestoreFailure.Salida
Proporciona instrucciones para restaurar la configuración original de Amazon EC2 Instance de destino durante un escenario de error en el flujo de trabajo de restauración.
-
Referencias
Automatización de Systems Manager