Prácticas recomendadas de seguridad para Amazon S3 - Amazon Simple Storage Service

Prácticas recomendadas de seguridad para Amazon S3

Amazon S3 proporciona una serie de características de seguridad que debe tener en cuenta a la hora de desarrollar e implementar sus propias políticas de seguridad. Las siguientes prácticas recomendadas son directrices generales y no suponen una solución de seguridad completa. Puesto que es posible que estas prácticas recomendadas no sean adecuadas o suficientes para su entorno, considérelas como recomendaciones útiles en lugar de como normas.

Prácticas recomendadas de seguridad para Amazon S3

Las siguientes prácticas recomendadas para Amazon S3 pueden serle de utilidad para evitar incidentes de seguridad.

Desactivar Listas de control de acceso (ACL)

S3 Object Ownership es una configuración de nivel de bucket de Amazon S3 que puede usar para controlar la propiedad de los objetos que se cargan en el bucket y para activar o desactivar las ACL. De forma predeterminada, la propiedad de objetos se establece en la configuración impuesta por el propietario del bucket. Además, todas las ACL están deshabilitadas. Cuando las ACL están deshabilitadas, el propietario del bucket posee todos los objetos del bucket y administra el acceso a los datos de forma exclusiva mediante políticas de administración de acceso.

La mayoría de los casos de uso modernos de Amazon S3 ya no requieren utilizar listas de control de acceso (ACL). Le recomendamos desactivar las ACL, excepto en circunstancias inusuales en las que necesite controlar el acceso a cada objeto de manera individual. Para desactivar las ACL y tomar posesión de cada objeto del bucket, aplique la configuración de propietario del bucket obligatorio para la S3 Object Ownership. Al desactivar las ACL, puede mantener fácilmente un bucket con objetos cargados por diferentes Cuentas de AWS.

Cuando las ACL están desactivadas, el control de acceso de los datos se basa en políticas, como las siguientes:

  • Políticas de usuario de AWS Identity and Access Management (IAM)

  • Políticas de buckets de S3

  • Políticas de punto de conexión de nube privada virtual (VPC)

  • Políticas de control de servicios (SCP) de AWS Organizations

La desactivación de las ACL simplifica la administración de permisos y la auditoría. Las ACL están deshabilitadas de forma predeterminada para los buckets nuevos. También existe la posibilidad de desactivar las ACL para los buckets existentes. Si dispone de un bucket que ya tiene objetos, después de desactivar las ACL, las ACL de objeto y bucket ya no formarán parte del proceso de evaluación de acceso. En cambio, el acceso se concede o deniega sobre la base de políticas.

Antes de desactivar las ACL, asegúrese de hacer lo siguiente:

  • Revise la política de bucket para asegurarse de que cubra todas las formas en que pretende conceder acceso al bucket fuera de la cuenta.

  • Restablezca la ACL del bucket a la opción predeterminada (control total para el propietario del bucket).

Tras deshabilitar las ACL, se producen los siguientes comportamientos:

  • Su bucket solo acepta solicitudes PUT que no especifiquen una ACL o solicitudes PUT con las ACL de control total del propietario del bucket. Estas ACL incluyen la ACL bucket-owner-full-control preconfigurada o formas equivalentes de esta ACL que se expresan en XML.

  • Las aplicaciones existentes que admiten ACL de control total del propietario del bucket no se ven afectadas.

  • Las solicitudes PUT que contienen otras ACL (por ejemplo, concesiones personalizadas a determinadas Cuentas de AWS) fallan y devuelven un error 400 (Bad Request) con el código de error AccessControlListNotSupported.

Para obtener más información, consulte Control de la propiedad de los objetos y desactivación de las ACL del bucket.

Asegúrese que sus buckets de Amazon S3 empleen las políticas correctas y que no sean accesibles públicamente.

A menos que necesite de forma explícita que alguien en Internet pueda leer o escribir en su bucket de S3, debe asegurarse de que no sea público. Estos son algunos de los pasos que puede realizar para bloquear el acceso público:

  • Use S3 Block Public Access. S3 Block Public Access le permite configurar fácilmente controles centralizados para limitar el acceso público a sus recursos de Amazon S3. Estos controles centralizados se aplican independientemente de cómo se creen los recursos. Para obtener más información, consulte Bloquear el acceso público a su almacenamiento de Amazon S3.

  • Identifique las políticas de bucket de Amazon S3 que permiten una identidad comodín, como "Principal": "*" (que en realidad significa «cualquiera»). Busque también políticas que permitan una acción comodín "*" (que, efectivamente, permita al usuario llevar a cabo cualquier acción en el bucket de Amazon S3).

  • Del mismo modo, busque listas de control de acceso (ACL) del bucket de Amazon S3 que permitan leer, escribir o concedan acceso completo a “Todos” o “Cualquier usuario de AWS autenticado”.

  • Utilice la operación de la API ListBuckets para escanear todos los buckets de Amazon S3. A continuación, utilice GetBucketAcl, GetBucketWebsite y GetBucketPolicy para determinar si cada bucket cuenta con configuración y controles de acceso compatibles.

  • Utilice AWS Trusted Advisor para inspeccionar la implementación de Amazon S3.

  • Considere implementar controles de detección continuos mediante el uso de las Reglas de AWS Config administradas s3-bucket-public-read-prohibited y s3-bucket-public-write-prohibited.

Para obtener más información, consulte Identity and Access Management en Amazon S3.

Implementación del acceso a los privilegios mínimos

Cuando concede permisos, debe decidir a quién concede cada permiso y para qué recurso de Amazon S3 se lo concede. Habilite las acciones específicas que desea permitir en dichos recursos. Por lo tanto, recomendamos que conceda únicamente los permisos obligatorios para realizar una tarea. La implementación del acceso con privilegios mínimos es esencial a la hora de reducir los riesgos de seguridad y el impacto que podrían causar los errores o los intentos malintencionados.

Las siguientes herramientas están disponibles para implementar el acceso a los privilegios mínimos:

Para recibir asesoramiento sobre qué tener en cuenta al elegir uno o más de los mecanismos anteriores, consulte Directrices de política de acceso.

Uso de roles de IAM para aplicaciones y Servicios de AWS que requieren acceso a Amazon S3

Para que las aplicaciones que se ejecutan en Amazon EC2 u otros Servicios de AWS accedan a recursos de Amazon S3, deben incluir credenciales de AWS válidas en sus solicitudes a la API de AWS. Recomendamos no almacenar las credenciales de AWS de forma directa en la aplicación ni en una instancia de Amazon EC2. Estas son las credenciales a largo plazo que no rotan automáticamente y que podrían tener un impacto empresarial significativo si se comprometen.

En su lugar, utilice un rol de IAM para administrar temporalmente las credenciales para las aplicaciones o los servicios que necesiten acceder a Amazon S3. Cuando utiliza un rol, no tiene que distribuir credenciales a largo plazo (como un nombre de usuario y una contraseña o claves de acceso) a una instancia de Amazon EC2 o un servicio de Servicio de AWS como AWS Lambda. El rol proporciona permisos temporales que las aplicaciones pueden utilizar cuando hacen llamadas a otros recursos de AWS.

Para obtener más información, consulte los siguientes temas de la guía del usuario de IAM:

Consideración del cifrado de datos en reposo

Dispone de las siguientes opciones para proteger datos en reposo en Amazon S3.

  • Cifrado del lado del servidor: todos los buckets de Amazon S3 tienen el cifrado configurado de forma predeterminada y todos los objetos nuevos cargados en un bucket de S3 se cifran automáticamente en reposo. El cifrado del lado del servidor con claves administradas de Amazon S3 (SSE-S3) es la configuración de cifrado predeterminada para cada bucket de Amazon S3. Para usar otro tipo de cifrado, puede especificar el tipo de cifrado del servidor que se utilizará en las solicitudes PUT de S3 o puede establecer la configuración de cifrado predeterminada en el bucket de destino.

    Amazon S3 también proporciona estas opciones de cifrado del lado del servidor:

    • Cifrado del lado del servidor con claves AWS Key Management Service (AWS KMS) (SSE-KMS)

    • Cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS)

    • Cifrado en el servidor con claves proporcionadas por el cliente (SSE-C)

    Para obtener más información, consulte Protección de los datos con el cifrado del servidor.

  • Cifrado del cliente: cifre datos del cliente y cargue los datos cifrados en Amazon S3. En este caso, administra el proceso de cifrado, las claves de cifrado y las herramientas relacionadas. Al igual que con el cifrado en el servidor, el cifrado en el cliente le puede ser de utilidad para minimizar el riesgo al cifrar los datos con una clave almacenada en un mecanismo distinto de que almacena los datos por sí mismo.

    Amazon S3 ofrece distintas opciones de cifrado en el cliente. Para obtener más información, consulte Protección de los datos con el cifrado del cliente.

Aplicación del cifrado de los datos en tránsito

Puede utilizar HTTPS (TLS) para ayudarle a evitar posibles ataques de acceso no autorizado o de manipulación del tráfico de red con ataques de «persona en medio» o similares. Le recomendamos permitir solo conexiones cifradas mediante HTTPS (TLS) utilizando la condición aws:SecureTransport en las políticas del bucket de Amazon S3.

Considere también implementar controles de detección continuos mediante el uso de la regla AWS Config administrada s3-bucket-ssl-requests-only.

Consideración del uso del bloqueo de objetos de S3

El bloqueo de objetos de S3 permite almacenar objetos con un modelo de escritura única y lectura múltiple (WORM). El bloqueo de objetos de S3 le puede ser de utilidad para evitar la eliminación accidental o inadecuada de datos. Por ejemplo, puede utilizar el bloqueo de objetos de S3 para proteger los registros de AWS CloudTrail.

Para obtener más información, consulte Usar Bloqueo de objetos de S3.

Activación del control de versiones de S3

El control de versiones de S3 es una forma de conservar diversas variantes de un objeto en el mismo bucket. Puede utilizar el control de versiones para conservar, recuperar y restaurar todas las versiones de los objetos almacenados en su bucket de . Con el control de versiones, puede recuperarse fácilmente de acciones no deseadas del usuario y de errores de la aplicación.

Considere también implementar controles de detección continuos mediante el uso de la regla AWS Config administrada s3-bucket-versioning-enabled.

Para obtener más información, consulte Usar el control de versiones en buckets de S3.

Consideración del uso de la replicación entre regiones de S3

Aunque Amazon S3 almacena sus datos en diversas zonas de disponibilidad alejadas geográficamente, de forma predeterminada los requisitos de conformidad pueden exigir que almacene los datos incluso en ubicaciones aún más alejadas. La replicación entre regiones (CRR) de S3 le permite reproducir los datos entre Regiones de AWS alejadas para cumplir con estos requisitos. La CRR habilita la copia asincrónica y automática de los objetos entre buckets de diferentes Regiones de AWS. Para obtener más información, consulte Replicación de objetos.

nota

CRR precisa que tanto los buckets de S3 de origen como los de destino tengan habilitado el control de versiones.

Considere también implementar controles de detección continuos mediante el uso de la regla AWS Config administrada s3-bucket-replication-enabled.

Consideración de la posibilidad de utilizar puntos de conexión de VPC para acceder a Amazon S3

Un punto de conexión de la nube privada virtual (Virtual Private Cloud, VPC) de Amazon S3 es una entidad lógica dentro de una VPC que permite la conectividad solo a Amazon S3. Los puntos de conexión de VPC pueden ayudar a evitar que el tráfico pase por el Internet abierto.

Los puntos de enlace de VPC para Amazon S3 tienen dos formas de controlar el acceso a los datos de Amazon S3:

  • Con las políticas de bucket de S3 puede controlar qué solicitudes, usuarios o grupos pueden acceder a través de un punto de conexión de VPC específico.

  • Puede controlar que VPC o puntos de enlace de la VPC tienen acceso a sus buckets de S3 a través de las políticas de bucket de S3.

  • Puede ser de utilidad para evitar la sustracción de datos mediante el uso de una VPC que no tiene una gateway de Internet.

Para obtener más información, consulte Control del acceso desde puntos de enlace de la VPC con políticas de bucket.

Uso de los servicios de seguridad AWS administrados para supervisar la seguridad de los datos

Varios servicios de seguridad AWS administrados pueden ayudarlo a identificar, evaluar y supervisar los riesgos de seguridad y cumplimiento de sus datos de Amazon S3. Estos servicios también pueden ayudarlo a proteger sus datos de esos riesgos. Estos servicios incluyen capacidades automatizadas de detección, monitorización y protección diseñadas para escalar desde los recursos de Amazon S3 para una sola Cuenta de AWS hasta los recursos para organizaciones que abarcan miles de cuentas.

Para obtener más información, consulte Monitorización de la seguridad de los datos con servicios de seguridad de AWS administrados.

Prácticas recomendadas de monitorización y auditoría de Amazon S3

Las siguientes prácticas recomendadas para Amazon S3 le pueden ser de utilidad para detectar los incidentes y los posibles puntos débiles de la seguridad.

Identificación y auditoría de todos los buckets de Amazon S3

La identificación de sus activos de TI es un aspecto fundamental de seguridad y control. Tiene que tener una visión de todos sus recursos de Amazon S3 para evaluar sus medidas de seguridad y tomar así las acciones pertinentes respecto a las posibles áreas débiles. Para auditar sus recursos, le recomendamos que haga lo siguiente:

  • Utilice el editor de etiquetas para identificar los recursos que precisan más seguridad o una auditoría y utilice dichas etiquetas cuando tenga que buscarlos. Para obtener más información, consulte Buscar recursos para etiquetar en la Guía del usuario de etiquetado de recursos de AWS.

  • Utilice el inventario de S3 para auditar e informar sobre el estado de replicación y cifrado de los objetos para sus necesidades empresariales, de conformidad y legales. Para obtener más información, consulte Inventario de Amazon S3.

  • Cree grupos de recursos para sus recursos de Amazon S3. Para obtener más información, consulte ¿Qué son los grupos de recursos? en la Guía del usuario de AWS Resource Groups.

Implementación de la monitorización mediante las herramientas de supervisión de AWS

La monitorización es una parte importante del mantenimiento de la fiabilidad, la seguridad, la disponibilidad y el rendimiento de Amazon S3 y las soluciones de AWS. AWS brinda herramientas y servicios para ayudarlo a monitorizar Amazon S3 y los otros servicios de Servicios de AWS. Por ejemplo, puede monitorizar métricas de Amazon CloudWatch para Amazon S3, concretamente las métricas PutRequests, GetRequests, 4xxErrors y DeleteRequests. Para obtener más información, consulte Monitorización de métricas con Amazon CloudWatch y Monitorización de Amazon S3.

Si desea ver un segundo ejemplo, consulte Ejemplo: Actividad del bucket de Amazon S3. Este ejemplo describe cómo crear una alarma de CloudWatch que se desencadena cuando se produce una llamada a la API de Amazon S3 para PUT o DELETE para una política de bucket, un ciclo de vida de bucket o una configuración de replicación de bucket, o para PUT una ACL de bucket.

Habilitación del registro de acceso al servidor de Amazon S3.

El registro de acceso al servidor brinda registros detallados de las solicitudes realizadas a un bucket. Los registros de acceso al servidor pueden ayudarle con la seguridad y la auditoría de accesos; le pueden ayudar a saber más sobre su base de clientes y a comprender su factura de Amazon S3. Para obtener información acerca de cómo activar el registro de acceso al servidor, consulte Registro de solicitudes con registro de acceso al servidor.

Considere también implementar controles de detección continuos mediante el uso de la regla AWS Config administrada s3-bucket-logging-enabled.

Usar AWS CloudTrail

AWS CloudTrail proporciona un registro de las medidas adoptadas por un usuario, un rol o un Servicio de AWS en Amazon S3. Puede utilizar la información recopilada por CloudTrail para determinar lo siguiente:

  • La solicitud que se realizó a Amazon S3

  • La dirección IP desde la que se realizó la solicitud

  • Quién realizó la solicitud

  • La hora a la que se realizó la solicitud

  • Detalles adicionales sobre la solicitud

Por ejemplo, puede identificar entradas de CloudTrail para acciones que afecten al acceso a los datos, concretamente PUT, PutBucketAcl, PutObjectAcl, PutBucketPolicy y PutBucketWebsite.

Cuando se configura una Cuenta de AWS, CloudTrail se habilita de forma predeterminada. Puede ver los eventos recientes en la consola de CloudTrail. Para crear un registro continuo de actividad y eventos para los buckets de Amazon S3 puede crear un seguimiento en la consola de CloudTrail. Para obtener más información, consulte Registro de eventos de datos en la Guía del usuario de AWS CloudTrail.

Al crear un seguimiento, puede configurar CloudTrail para que registre los eventos de datos. Los eventos de datos son registros de operaciones de recursos realizadas en o dentro de un recurso. En Amazon S3, los eventos de datos registran la actividad de API en el nivel de objeto para buckets individuales. CloudTrail admite un subconjunto de operaciones de API en el nivel de objetos de Amazon S3, como GetObject, DeleteObject y PutObject. Para obtener más información acerca de cómo funciona CloudTrail con Amazon S3, consulte Registro de llamadas a la API de Amazon S3 mediante AWS CloudTrail. En la consola de Amazon S3, también puede configurar los buckets de S3 en Habilitación del registro de eventos de CloudTrail para buckets y objetos de S3.

AWS Config proporciona una regla administrada (cloudtrail-s3-dataevents-enabled) que puede utilizar para confirmar que al menos un seguimiento de CloudTrail está registrando eventos de datos para los buckets de S3. Para obtener más información, consulte cloudtrail-s3-dataevents-enabled en la Guía para desarrolladores de AWS Config.

Habilitar AWS Config

Varias de las prácticas recomendadas que se enumeran en este tema sugieren la creación de reglas de AWS Config. AWS Config le permite examinar, auditar y evaluar las configuraciones de los recursos de AWS. AWS Config monitorea las configuraciones de los recursos para que pueda evaluar las configuraciones registradas frente a las configuraciones de seguridad deseadas. En AWS Config, tiene las siguientes opciones:

  • Revisar los cambios en las configuraciones y las relaciones entre los recursos de AWS.

  • Investigar los historiales detallados de la configuración de recursos.

  • Determinar el cumplimiento general de las configuraciones especificadas en sus directrices internas.

Al usar AWS Config puede simplificar las auditorías de conformidad, los análisis de seguridad, la administración de cambios y la resolución de problemas operativos. Para obtener más información, consulte Configuración de AWS Config mediante la consola en la Guía para desarrolladores de AWS Config. Al especificar los tipos de recursos para registrar, asegúrese de incluir los recursos de Amazon S3.

importante

Las reglas administradas de AWS Config solo admiten buckets de uso general al evaluar los recursos de Amazon S3. AWS Config no registra los cambios de configuración de los buckets de directorio. Para obtener más información, consulte Reglas administradas de AWS Config y Lista de reglas administradas de AWS Config en la Guía para desarrolladores de AWS Config.

Para ver un ejemplo de cómo utilizar AWS Config, consulte la entrada sobre Cómo usar AWS Config Config para monitorizar y responder a los buckets de Amazon S3 al permitir el acceso público en el Blog de seguridad de AWS.

Descubrimiento de datos confidenciales mediante Amazon Macie

Amazon Macie es un servicio de seguridad que descubre información confidencial mediante el machine learning y la coincidencia de patrones. Macie proporciona visibilidad sobre los riesgos de seguridad de los datos y permite automatizar la protección contra esos riesgos. Con Macie, puede automatizar la detección y la notificación de información confidencial en su conjunto de datos de Amazon S3 para comprender mejor los datos que almacena su organización en S3.

Para detectar información confidencial con Macie, puede utilizar criterios y técnicas integradas diseñados para detectar una lista grande y que no para de crecer de tipos de datos confidenciales para muchos países y regiones. Estos tipos de datos confidenciales incluyen varios tipos de información de identificación personal (PII), datos financieros y datos de credenciales. También existe la posibilidad de utilizar criterios personalizados definidos por usted: expresiones regulares que definen patrones de texto para que coincidan y, opcionalmente, secuencias de caracteres y reglas de proximidad para refinar los resultados.

Si Macie detecta datos confidenciales en un objeto de S3, Macie genera un resultado de seguridad para notificárselo. Este resultado proporciona información sobre el objeto afectado, los tipos y el número de ocurrencias de los datos confidenciales que ha encontrado Macie y detalles adicionales que le ayudan a investigar el bucket y el objeto de S3 afectados. Para obtener más información, consulte la Guía del usuario de Amazon Macie.

Uso de la lente de almacenamiento de S3

Lente de almacenamiento de S3 es una función de análisis de almacenamiento en la nube que puede utilizar para obtener visibilidad en toda la organización sobre el uso y la actividad del almacenamiento de objetos. S3 Storage Lens analiza también las métricas para ofrecer recomendaciones contextuales que puede usar para optimizar los costos de almacenamiento y aplicar las prácticas recomendadas para proteger los datos.

Lente de almacenamiento de S3 permite usar métricas para generar información resumida, como averiguar cuánto almacenamiento tiene en toda la organización o cuáles son los buckets y los prefijos de crecimiento más rápido. También puede utilizar las métricas de Lente de almacenamiento de S3 para identificar oportunidades de optimización de costos, implementar las prácticas recomendadas de protección de datos y administración de acceso y mejorar el rendimiento de las cargas de trabajo de las aplicaciones.

Por ejemplo, puede identificar los buckets que no tienen reglas del ciclo de vida de S3 para que aborten las cargas multipartes incompletas que tengan más de 7 días de antigüedad. También puede identificar los buckets que no siguen las prácticas recomendadas de protección de datos, como el uso de la Replicación de S3 o el control de versiones de S3. Para obtener más información, consulte Comprensión de Amazon S3 Storage Lens.

Supervisión de los avisos de seguridad de AWS

Le recomendamos que compruebe con regularidad los avisos sobre seguridad publicados en Trusted Advisor para su Cuenta de AWS. Tenga en cuenta sobre todo los avisos sobre los buckets de Amazon S3 con permisos de acceso abierto. Puede hacerlo mediante programación o a través de la describe-trusted-advisor-checks.

Además, monitorice de forma activa la dirección principal de correo electrónico registrada en cada una de sus Cuentas de AWS. AWS contactará con usted, a través de esta dirección de correo electrónico, para informarle sobre los problemas de seguridad que surjan y que pudieran afectarle.

Los problemas operativos de AWS con gran alcance se publican en AWS Health Dashboard Service Health. Los problemas operativos también se publican en las cuentas individuales a través de AWS Health Dashboard. Para obtener más información, consulte la Documentación de AWS Health.