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 el entorno, considérelas como consideraciones útiles en lugar de como normas.

Prácticas recomendadas preventivas de seguridad de Amazon S3

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

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 este no sea público. Estos son algunos de los pasos que puede realizar:

  • Use el bloqueo de acceso público de Amazon S3. Con Amazon S3 Block Public Access, los administradores de cuentas y los propietarios de buckets pueden configurar fácilmente controles centralizados para limitar el acceso público a sus recursos de Amazon S3, que 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 tener identidades comodín, como Principal “*” (que, efectivamente, significa “cualquiera”) o permite tener una acción comodín “*” (que permite al usuario llevar a cabo cualquier acción en el bucket de Amazon S3).

  • Del mismo modo, tenga en cuenta que las listas de control de acceso (ACL) del bucket de Amazon S3 facilitan la lectura, la escritura o el acceso completo a “Everyone” (Todos) o “Any authenticated AWS user” (Cualquier usuario de AWS autenticado).

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

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

  • Considere la implementación de controles de detección en curso con las AWS Config Rules 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, debe conceder ú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.

Utilización de roles de IAM para aplicaciones y servicios de AWS que requieren acceso a Amazon S3

Para que las aplicaciones en Amazon EC2 y 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. No debe 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, debería utilizar un rol de IAM para administrar temporalmente 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 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 en el servidor: solicite que Amazon S3 cifre su objeto antes de guardarlo en discos de sus centros de datos y, a continuación, lo descifre al descargarlo. El cifrado en el servidor le puede ser de utilidad para minimizar el riesgo de sus datos al cifrarlos con una clave almacenada en un mecanismo distinto de que almacena los datos por sí mismo.

    Amazon S3 proporciona estas opciones de cifrado del lado del servidor:

    • Cifrado del lado del servidor con claves administradas por Amazon S3 (SSE-S3).

    • Cifrado del lado del servidor con claves maestras del cliente almacenadas en AWS Key Management Service (SSE-KMS).

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

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

  • Cifrado en el cliente: puede cifrar datos en el cliente y cargar 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 Proteger datos con el cifrado del lado 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. Debería permitir solo las conexiones cifradas a través de HTTPS (TLS) mediante la condición aws:SecureTransport en las políticas de bucket de Amazon S3.

Tenga en cuenta también la implementación de controles de detección en curso mediante la regla administrada de , s3-bucket-ssl-requests-onlyAWS Config.

Consideración del bloqueo de objetos de S3

Usar Bloqueo de objetos de S3 le 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, podría utilizar el bloqueo de objetos de S3 para proteger los registros de AWS CloudTrail.

Habilitación del control de versiones

El control de versiones 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 Amazon S3. Con el control de versiones, puede recuperarse fácilmente de acciones no deseadas del usuario y de errores de la aplicación.

Tenga en cuenta también la implementación de controles de detección en curso mediante la regla administrada de , s3-bucket-versioning-enabledAWS Config.

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

Consideración de la replicación entre regiones de Amazon 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) 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 el origen y el destino de los buckets de S3 tengan habilitado el control de versiones.

Tenga en cuenta también la implementación de controles de detección en curso mediante la regla administrada de , s3-bucket-replication-enabledAWS Config.

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

Un punto de enlace de virtual private cloud (VPC) de Amazon S3 es una entidad lógica dentro de una VPC que permite conectividad solo a Amazon S3. Puede utilizar las políticas de bucket de Amazon S3 para controlar el acceso a los buckets desde puntos de enlace específicos de VPC o desde VPC específicas. Un punto de enlace de la VPC puede ser de utilidad para evitar que el tráfico pueda recorrer una red de Internet de acceso público o estar sujeto a una red de Internet de acceso público.

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

  • Puede controlar qué solicitudes, usuarios o grupos obtienen acceso a través de un punto de enlace de la 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 .

Prácticas recomendadas de monitoreo 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.

Utilice Tag Editor 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 Búsqueda de recursos para etiquetar.

Utilice Amazon S3 Inventory para auditar e informar acerca del estado de replicación y cifrado de los objetos para las 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é es AWS Resource Groups?

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

El monitoreo 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 monitorear Amazon S3 y los otros servicios de AWS. Por ejemplo, puede monitorear métricas de CloudWatch para Amazon S3, concretamente 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 Amazon CloudWatch que se desencadena cuando se produce una llamada de API de Amazon S3 PUT o DELETE para una política, un ciclo de vida o una replicación de bucket o PUT para 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 mediante el registro de acceso al servidor.

Tenga en cuenta también los controles de detección en curso mediante la regla administrada de , s3-bucket-logging-enabledAWS Config.

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. La información recopilada por CloudTrail le permite determinar la solicitud que se realizó a Amazon S3, la dirección IP de origen desde la que se realizó, quién la realizó y cuándo, etc. Por ejemplo, puede identificar entradas de CloudTrail para acciones Put que afecten al acceso a los datos, concretamente 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 para seguimiento 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 y permite evaluar las configuraciones registradas frente a las configuraciones de seguridad deseadas. Con AWS Config, puede revisar los cambios en las configuraciones y las relaciones entre los recursos de AWS, investigar los historiales detallados de configuración de recursos y determinar la conformidad general con respecto a las configuraciones especificadas en las pautas internas. Esto le puede ser de utilidad para 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.

Para ver un ejemplo de cómo utilizar AWS Config para monitorear y dar respuesta a los buckets de Amazon S3 que permiten el acceso a una red pública, consulte How to Use AWS Config to Monitor for and Respond to Amazon S3 Buckets Allowing Public Access en el Blog de seguridad de AWS.

Consideración de la posibilidad de utilizar Amazon Macie con Amazon S3

Amazon Macie es un servicio de privacidad y seguridad de datos completamente administrado que utiliza machine learning y coincidencia de patrones para detectar, supervisar y ayudar a proteger su información confidencial en su entorno de AWS. Macie automatiza la detección de información confidencial, como información de identificación personal (PII) y datos financieros, para proporcionarle una mejor comprensión de los datos que almacena su organización en Amazon S3.

Macie también le proporciona un inventario de sus buckets de S3 y evalúa y supervisa automáticamente esos buckets para ofrecer seguridad y control de acceso. Si Macie detecta información confidencial o posibles problemas relacionados con la seguridad o la privacidad de sus datos, crea hallazgos detallados para que los revise y solucione como sea oportuno. Para obtener más información, consulte ¿Qué es Amazon Macie?

Supervisión de los avisos de seguridad de AWS

Debe comprobar con regularidad los avisos sobre seguridad publicados en Trusted Advisor de su Cuenta de AWS. Tenga en cuenta sobre todo las notas sobre los buckets de Amazon S3 con permisos de acceso abierto. Puede hacer esto mediante programación con describe-trusted-advisor-checks.

Además, supervise de forma activa la dirección principal de email registrada en cada una de sus Cuentas de AWS. AWS contactará con usted, a través de esta dirección de email, 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 Service Health Dashboard. Los problemas operativos también se publican en las cuentas individuales a través del Personal Health Dashboard. Para obtener más información, consulte la documentación de AWS Health.