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 Amazon EC2 ante una 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 instancia de Amazon EC2 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 AMI copias de seguridad cifradas y no cifradas de la instancia. En el caso de 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 varias operaciones que requieren privilegios elevados, como modificar grupos de seguridad, crear AMI grupos e interactuar 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 instancia Amazon EC2 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 grupos de seguridad. AMI Si bien estos recursos están etiquetados para su identificación, debe estar al tanto de su creación y garantizar una limpieza o administración adecuadas una vez finalizado el proceso de contención.

  • Si el Action parámetro está establecido enRelease, este runbook intenta restaurar la configuración de la instancia Amazon EC2 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:

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": "*" } ] }

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 de recurso de Amazon (ARN) del rol de 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 instancia de Amazon EC2 o Restore intentar restaurar la configuración original de la instancia de Amazon EC2 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) Si se establece entrue, se creará una AMI de las instancias de Amazon EC2 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 una instancia AMI de Amazon EC2 cifrada 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 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 EC2. IpProtocol Si no se proporciona ninguna regla, se adjuntará un grupo de seguridad sin reglas de entrada a la instancia de Amazon EC2, 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 Amazon EC2 de Amazon. IpProtocol Si no se proporciona ninguna regla, se adjuntará un grupo de seguridad sin reglas de salida a la instancia de Amazon EC2, 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 la automatización utilizará para intentar restaurar la configuración de la instancia Amazon EC2 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 instancia Amazon EC2 de destino no está finalizada (eliminada).

    • GetAutoScalingInstanceInfo

      Obtiene el ciclo de vida de la instancia Amazon EC2 y el nombre del grupo si la instancia de Amazon EC2 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 instancia Amazon EC2 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 asociado.

    • ModifyAutoScalingGroup

      Modifica la configuración del grupo Amazon EC2 Auto Scaling asociado para las acciones de contención, establece el estado de la instancia de Amazon EC2 y ajusta Standby la capacidad del grupo de Auto Scaling. MinSize

    • BackupInstanceSecurityGroups

      Obtiene y almacena la configuración de los grupos de seguridad de las instancias Amazon EC2 de destino.

    • CreateAllAccessSecurityGroup

      Crea un grupo de seguridad temporal que permite todo el tráfico de entrada que sustituya a los grupos de seguridad de la instancia Amazon EC2 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 la instancia Amazon EC2 de destino es Amazon EBS.

    • CreateImage

      Crea una AMI de las instancias Amazon EC2 de destino.

    • RestoreInstanceConfiguration

      Restaura la configuración de la instancia Amazon EC2 de destino a partir de la copia de seguridad.

    • ReportContain

      Muestra los detalles de ejecución en seco 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 la instancia Amazon EC2 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 la instancia Amazon EC2 de destino durante un escenario de fallo 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 runbook 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 la instancia Amazon EC2 de destino durante un escenario de fallo en el flujo de trabajo de contención.

    • ReportRestoreFailure.Salida

      Proporciona instrucciones para restaurar la configuración original de la instancia Amazon EC2 de destino durante un escenario de error en el flujo de trabajo de restauración.

Referencias

Automatización de Systems Manager