

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-ContainS3Resource`
<a name="automation-awssupport-contains3resource"></a>

 **Descripción** 

 El `AWSSupport-ContainS3Resource` manual proporciona una solución automatizada para el procedimiento descrito en el artículo [Manual de ejecución de Support Automation Workflow (SAW): Contener un bucket de AWS Amazon S3 comprometido](https://repost.aws/articles/ARhGc0hDqKRIKAVCbmF1GmuQ) 

**importante**  
Este manual realiza varias operaciones que requieren privilegios elevados, como la modificación de las políticas de bucket, las etiquetas y las configuraciones de acceso público de Amazon S3. Estas acciones podrían provocar una escalada de privilegios o afectar a otras cargas de trabajo que dependen del bucket de Amazon S3 de destino. Debe revisar los permisos otorgados al rol especificado por el `AutomationAssumeRole` parámetro y asegurarse 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: [https://docs.aws.amazon.com//IAM/latest/UserGuide/access_controlling.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_controlling.html).
Este manual realiza acciones mutativas que podrían provocar la falta de disponibilidad o la interrupción de sus cargas de trabajo. En concreto, la `Contain` acción bloquea todo el acceso al bucket de Amazon S3 especificado, excepto los roles especificados en el `SecureRoles` parámetro. Esto podría afectar a cualquier aplicación o servicio que dependa del bucket de Amazon S3 de destino.
Durante la `Contain` acción, este runbook puede crear un bucket de Amazon S3 adicional (especificado por el `BackupS3BucketName` parámetro) para almacenar la copia de seguridad de la configuración del bucket original, si aún no existe.
Si el `Action` parámetro está establecido en`Restore`, este runbook intenta restaurar la configuración del bucket de Amazon S3 a su estado original en función de la copia de seguridad almacenada en el `BackupS3BucketName` bucket. Sin embargo, existe el riesgo de que el proceso de restauración falle y deje el bucket de Amazon S3 en un estado incoherente. El manual proporciona instrucciones para la restauración manual en caso de que se produzcan estos errores, pero debe 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.

 **¿Cómo funciona?** 

Este manual funciona de forma diferente según el tipo de recurso y la acción:
+ Para el bucket de uso general de Amazon S3`Containment`: la automatización bloquea el acceso público al bucket, inhabilita la configuración de la ACL, impone la propiedad del objeto propietario del bucket y aplica una política restrictiva que niega todas las acciones de Amazon S3 al bucket, excepto las funciones de IAM permitidas enumeradas.
+ Para el objeto de uso general de Amazon S3`Containment`: la automatización bloquea el acceso público al bucket, deshabilita la configuración de la ACL, impone la propiedad del objeto propietario del bucket e implementa una política de bucket restrictiva que niega todas las acciones de Amazon S3 en el objeto, excepto las funciones de IAM permitidas enumeradas.
+ Para el bucket de directorio de Amazon S3`Containment`: la automatización aplica una política de bucket restrictiva que niega todas las acciones de Amazon S3 al bucket, excepto las funciones de IAM que figuran en la lista de permisos.
+ Para el bucket de uso general de Amazon S3`Restore`: la automatización restaura la configuración inicial de Block Public Access, Bucket ACL, Bucket Owner Object y Bucket Policy a la configuración inicial antes de la contención.
+ Para el objeto de uso general de Amazon S3`Restore`: la automatización restaura la configuración de acceso público en bloque, la configuración de ACL de bucket, la configuración de ACL de objetos, la propiedad del objeto propietario del bucket y la política de bucket a la configuración inicial antes de la contención.
+ Para Amazon S3 Directory Bucket`Restore`: la automatización restaura la política de bucket a la configuración inicial antes de la contención.

 [Ejecuta esta automatización (consola)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ContainS3Resource) 

 **Tipo de documento** 

 Automatización 

 **Propietario** 

 Amazon 

 **Plataforma** 

 / 

 **Permisos de IAM necesarios** 

 El parámetro `AutomationAssumeRole` requiere las siguientes acciones para utilizar el manual de procedimientos correctamente. 
+ s3: CreateBucket
+ s3: DeleteBucketPolicy
+ s3: DeleteObjectTagging
+ s3: GetAccountPublicAccessBlock
+ s3: GetBucketAcl
+ s3: GetBucketLocation
+ s3: GetBucketOwnershipControls
+ s3: GetBucketPolicy
+ s3: GetBucketPolicyStatus
+ s3: GetBucketTagging
+ s3: GetEncryptionConfiguration
+ s3: GetObject
+ s3: GetObjectAcl
+ s3: GetObjectTagging
+ s3: GetReplicationConfiguration
+ s3: ListBucket
+ s3: PutAccountPublicAccessBlock
+ s3: PutBucket ACL
+ s3: PutBucketOwnershipControls
+ s3: PutBucketPolicy
+ s3: PutBucketPublicAccessBlock
+ s3: PutBucketTagging
+ s3: PutBucketVersioning
+ s3: PutObject
+ s3: PutObjectAcl
+ s3 express: CreateSession
+ s3express: DeleteBucketPolicy
+ s3express: GetBucketPolicy
+ s3express: PutBucketPolicy
+ ssm: DescribeAutomationExecutions

 A continuación, se muestra un ejemplo de una política de IAM que concede los permisos necesarios para: `AutomationAssumeRole` 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucketPolicy",
                "s3:DeleteObjectTagging",
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketOwnershipControls",
                "s3:GetBucketPolicy",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketTagging",
                "s3:GetEncryptionConfiguration",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectTagging",
                "s3:GetReplicationConfiguration",
                "s3:ListBucket",
                "s3:PutAccountPublicAccessBlock",
                "s3:PutBucketACL",
                "s3:PutBucketOwnershipControls",
                "s3:PutBucketPolicy",
                "s3:PutBucketPublicAccessBlock",
                "s3:PutBucketTagging",
                "s3:PutBucketVersioning",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "*"
        },
        {
            "Sid": "S3ExpressPermissions",
            "Effect": "Allow",
            "Action": [
                "s3express:CreateSession",
                "s3express:DeleteBucketPolicy",
                "s3express:GetBucketPolicy",
                "s3express:PutBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SSMPermissions",
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeAutomationExecutions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 **Instrucciones** 

Siga estos pasos para configurar la automatización:

1. Navegue hasta [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainS3Resource/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainS3Resource/description)Systems Manager en Documentos.

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

1. Para los parámetros de entrada, introduzca lo siguiente:
   + **BucketName (Obligatorio):**
     + Descripción: (Obligatorio) El nombre del bucket de Amazon S3.
     + Tipo: `AWS::S3::Bucket::Name`
   + **Acción (obligatoria):**
     + Descripción: (Obligatorio) Seleccione `Contain` esta opción para aislar el recurso de Amazon S3 o `Restore` intentar restaurar la configuración del recurso a su estado original a partir de una copia de seguridad anterior.
     + Tipo: cadena
     + Valores permitidos: `Contain|Restore`
   + **DryRun (Opcional):**
     + Descripción: (opcional) Si se establece en true, la automatización no realizará ningún cambio en el recurso Amazon S3 de destino, sino que generará lo que hubiera intentado cambiar. Valor predeterminado: true.
     + Tipo: Booleano
     + Valores permitidos: `true|false`
   + **BucketKeyName (Opcional):**
     + Descripción: (opcional) La clave del objeto de Amazon S3 que desea contener o restaurar. Se utiliza durante la contención a nivel de objeto.
     + Tipo: cadena
     + Valor permitido: `^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$`
   + **BucketRestrictAccess(Condicional):**
     + Descripción: (Condicional) El ARN de los usuarios o roles de IAM a los que se les permitirá acceder al recurso Amazon S3 de destino después de ejecutar las acciones de contención. Este parámetro es necesario cuando `Action` se establece en `Contain`.
     + Tipo: StringList
     + Valor permitido: `^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$`
   + **TagIdentifier (Opcional):**
     + Descripción: (opcional) Una etiqueta con el formato Key=BatchId, Value=78925 que se añadirá a los recursos creados o modificados por este manual de instrucciones durante el flujo de trabajo de contención.
     + 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 S3 (condicionales): BucketName **
     + Descripción: (Condicional) El bucket de Amazon S3 para hacer una copia de seguridad de la configuración del recurso de destino cuando `Action` está establecido en `Contain` o para restaurar la configuración desde cuando `Action` está establecido en`Restore`.
     + Tipo: `AWS::S3::Bucket::Name`
   + **BackupS3 KeyName (condicional):**
     + Descripción: (Condicional) Si `Action` se establece en`Restore`, especifica la clave de Amazon S3 que utilizará la automatización para intentar restaurar la configuración de los recursos de destino.
     + Tipo: cadena
     + Valor permitido: `^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$`

     
   + **BackupS3 BucketAccess (condicional):**
     + 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`
     + Tipo: StringList
     + Valor permitido: `^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$`
   + **AutomationAssumeRole (Opcional):**
     + Descripción: (opcional) El nombre del recurso de Amazon (ARN) de la función de IAM que permite a Systems Manager Automation realizar las acciones en su nombre.
     + Tipo: `AWS::IAM::Role::Arn`

1. Seleccione Ejecutar.

1. Se inicia la automatización.

1. Este documento realiza los siguientes pasos:
   + **validateRequiredInputs**

     Valida los parámetros de entrada de automatización necesarios en función de la acción especificada.
   + **assertBucketExists**

     Comprueba si el bucket de Amazon S3 de destino existe y es accesible.
   + **backupBucketPreComprueba**

     Comprueba si el bucket de Amazon S3 de respaldo puede conceder acceso público de lectura o escritura a sus objetos.
   + **backupTargetBucketMetadatos**

     Describe la configuración actual del bucket de Amazon S3 de destino y carga la copia de seguridad en el bucket de Amazon S3 de respaldo especificado.
   + **Contenga un cubo**

     Realiza operaciones a nivel de bucket para contener el bucket de Amazon S3 de destino.
   + **BranchOnActionAndMode**

     Ramifica la automatización en función de los parámetros de entrada Action y DryRun.
   + **RestoreInstanceConfiguration**

     Restaura la configuración del bucket de Amazon S3 desde la copia de seguridad.
   + **containFinalOutput**

     Consolida la actividad de contención en un formato legible.
   + **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 del bucket de Amazon S3 durante un escenario de error en el flujo de trabajo de restauración.
   + **ReportContainmentFailure**

     Proporciona instrucciones para restaurar la configuración original del bucket de Amazon S3 durante un escenario de fallo en el flujo de trabajo de contención.
   + **FinalOutput**

     Muestra los detalles de las acciones de contención.

1. Una vez completada la ejecución, revise la sección de resultados para ver los resultados detallados de la ejecución:
   + **ContainFinalOutput.Salida**

     Muestra los detalles de las acciones de contención realizadas por este manual cuando se establece en `DryRun` False.
   + **RestoreFinalOutput.Salida**

     Muestra los detalles de las acciones de restauración realizadas por este runbook cuando se establece en `DryRun` False.
   + **Contiene 3ResourceDryRun. Salida**

     Muestra los detalles de las acciones de contención realizadas por este manual cuando `DryRun` se establece en True.
   + **Restaura S3. Salida ResourceDryRun**

     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 del recurso Amazon S3 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 del recurso Amazon S3 de destino durante un escenario de error en el flujo de trabajo de restauración.

**Referencias**

Automatización de Systems Manager
+ [Ejecuta esta automatización (consola)](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-ContainS3Resource/description)
+ [Ejecución de una automatización](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [Configuración de Automatización](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Flujos de trabajo de automatización de Support](https://aws.amazon.com/premiumsupport/technology/saw/)