AWSSupport-ContainEC2Instance - AWS Systems Manager Referencia del manual de automatización

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? La automatización se ramifica en función de los valores que especifique.

¿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) PermissionsAWS 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:

  1. Navegue hasta AWSSupport-ContainEC2InstanceSystems Manager en Documentos.

  2. Elija Execute automation (Ejecutar automatización).

  3. 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 o Restore 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 entrue, 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 entrue, 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 esalias/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 cuando Action 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}$

  4. Seleccione Ejecutar.

  5. Se inicia la automatización.

  6. 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úblico read o conceder acceso público a sus objetos. Se crea un nuevo bucket de Amazon S3 si el BackupS3BucketName 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 grupo MinSize 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.

  7. 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