Blog de Amazon Web Services (AWS)
Las 10 mejores prácticas de seguridad para proteger los datos en Amazon S3
Con más de 100 billones de objetos en Amazon Simple Storage Service (Amazon S3) y un conjunto de casos de uso casi inimaginablemente amplio, proteger los datos almacenados en Amazon S3 es importante para todas las organizaciones. Por lo tanto, hemos seleccionado los 10 controles principales para proteger sus datos en S3. De forma predeterminada, todos los buckets de S3 son privados y solo pueden acceder los usuarios a los que se les haya concedido acceso explícitamente a través de ACL, políticas de bucket de S3 y políticas basadas en identidad. En esta publicación, revisamos las características más recientes de S3 y los servicios de Amazon Web Services (AWS) que puede utilizar para ayudar a proteger sus datos en S3, incluidos los controles preventivos de toda la organización, como las políticas de control de servicios (SCP) de AWS Organizations. También proporcionamos recomendaciones para los controles de detección de S3, como Amazon GuardDuty para S3, registro a nivel de objeto de AWS CloudTrail, controles de S3 de AWS Security Hub y configuración de CloudTrail específica para los eventos de datos de S3. Además, proporcionamos opciones y consideraciones de protección de datos para cifrar datos en S3. Por último, revisamos las recomendaciones de copia de seguridad y recuperación de los datos almacenados en S3. Dado el amplio conjunto de casos de uso que admite S3, debe determinar la prioridad de los controles aplicados de acuerdo con su caso de uso específico y los detalles asociados.
Bloquear buckets públicos de S3 a nivel de organización
Designe cuentas de AWS para el uso público de S3 y evite que todos los demás buckets de S3 se hagan públicos de forma inadvertida habilitando S3 Block Public Access. Utilice los SCP de Organizations para confirmar que la configuración de S3 Block Public Access no se puede cambiar. S3 Block Public Access proporciona un nivel de protección que funciona a nivel de cuenta y también en buckets individuales, incluidos los que cree en el futuro. Tiene la capacidad de bloquear el acceso público existente, ya sea que haya sido especificado por una ACL o una política, y establecer que el acceso público no se conceda a los elementos recién creados. Esto permite que solo las cuentas de AWS designadas tengan buckets de S3 públicos mientras se bloquean todas las demás cuentas de AWS. Para obtener más información sobre los SCP de Organizations, consulte políticas de control de servicios.
Use políticas de bucket para verificar que todo el acceso concedido sea restringido y específico
Compruebe que el acceso concedido en la política de bucket de Amazon S3 esté restringido a entidades principales de AWS, usuarios federados, entidades de servicio, direcciones IP o VPC específicos de AWS que usted proporcione. Cualquier persona puede acceder a una política de bucket que permite una identidad comodín como Principal «*». Una política de bucket que permite una acción comodín «*» puede permitir a un usuario realizar cualquier acción en el bucket. Para obtener más información, consulte Uso de políticas de bucket.
Asegúrese de que las políticas basadas en la identidad no utilicen acciones comodín
Las políticas de identidad son políticas asignadas a los usuarios y roles de AWS Identity and Access Management (IAM) y deben seguir el principio de privilegios mínimos para ayudar a prevenir accesos o cambios involuntarios en los recursos. Establecer políticas de identidad con privilegios mínimos incluye la definición de acciones específicas como S3:GetObject o S3:PutObject en lugar de S3:*. Además, puede utilizar claves de condición predefinidas para todo AWS y claves de condición específicas de S3 para especificar controles adicionales en acciones específicas. Un ejemplo de una clave de condición para todo AWS que se utiliza habitualmente para S3 es IpAddress: {aws: SourceIP: «10.10.10.10»}, donde puede especificar el espacio de IP interno de su organización para acciones específicas en S3. Consulte IAM.1 en Monitor S3 usando Security Hub y CloudWatch Logs para detectar políticas con acciones comodín y recursos comodín presentes en sus cuentas con Security Hub.
Considere dividir el acceso de lectura, escritura y eliminación. Permita únicamente el acceso de escritura a los usuarios o servicios que generan y escriben datos en S3, pero no necesitan leer ni eliminar objetos. Defina una política de ciclo de vida de S3 para eliminar objetos de forma programada en lugar de mediante la intervención manual — consulte Administración del ciclo de vida del almacenamiento. Esto le permite quitar las acciones de eliminación de sus políticas basadas en identidad. Verifique sus políticas con el simulador de políticas de IAM. Utilice IAM Access Analyzer para ayudarle a identificar, revisar y diseñar políticas de bucket de S3 o políticas de IAM que concedan acceso a sus recursos de S3 desde fuera de su cuenta de AWS.
Habilite la protección de S3 en GuardDuty para detectar actividades sospechosas
En 2020, GuardDuty anunció la cobertura para S3. Activar esta opción permite a GuardDuty monitorear y perfilar continuamente los eventos de acceso a datos de S3 (operaciones del plano de datos) y la configuración de S3 (API del plano de control) para detectar actividades sospechosas. Actividades como solicitudes procedentes de geolocalizaciones inusuales, deshabilitación de controles preventivos y patrones de llamadas a API consistentes con un intento de descubrir permisos de bucket mal configurados. Para lograr esto, GuardDuty utiliza una combinación de detección de anomalías, aprendizaje automático e inteligencia contra amenazas continuamente actualizada. Para obtener más información, incluido cómo habilitar GuardDuty para S3, consulte Protección de Amazon S3 en Amazon GuardDuty.
Utilice Macie para buscar datos confidenciales fuera de las áreas designadas
En mayo de 2020, AWS relanzó Amazon Macie. Macie es un servicio totalmente gestionado que le ayuda a descubrir y proteger sus datos confidenciales mediante el uso del aprendizaje automático para revisar y clasificar automáticamente sus datos en S3. Habilitar a Macie en toda la organización es un método sencillo y rentable para obtener una vista central y actualizada continuamente del entorno S3 de toda la organización y monitorear el cumplimiento de las prácticas recomendadas de seguridad a través de una consola central. Macie evalúa continuamente todos los buckets para el cifrado y el control de acceso, y le avisa de los buckets públicos, no cifrados o compartidos o replicados fuera de su organización. Macie evalúa los datos confidenciales utilizando una lista totalmente administrada de tipos de datos confidenciales comunes y tipos de datos personalizados que usted crea, y luego emite hallazgos para cualquier objeto en el que se encuentren datos confidenciales.
Cifre sus datos en S3
Hay cuatro opciones para cifrar datos en S3, incluidas las opciones del lado del cliente y del servidor. Con el cifrado del lado del servidor, S3 cifra sus datos a nivel de objeto a medida que los escribe en discos en los centros de datos de AWS y los descifra cuando accede a ellos. Siempre y cuando autentique su solicitud y tenga permisos de acceso, no hay diferencia en la forma en que accede a los objetos cifrados o no cifrados.
Las dos primeras opciones utilizan AWS Key Management Service (AWS KMS). AWS KMS le permite crear y administrar claves criptográficas y controlar su uso en una amplia gama de servicios de AWS y sus aplicaciones. Existen opciones para administrar qué clave de cifrado utiliza AWS para cifrar sus datos de S3.
- Cifrado del lado del servidor con claves de cifrado administradas por Amazon S3 (SSE-S3). Cuando utiliza SSE-S3, cada objeto se cifra con una clave única administrada por AWS. Esta opción le permite cifrar sus datos marcando una casilla sin pasos adicionales. El cifrado y el descifrado se gestionan de forma transparente. SSE-S3 es una opción conveniente y rentable.
- El cifrado del lado del servidor con claves maestras del cliente (CMK) almacenadas en AWS KMS (SSE-KMS) es similar a SSE-S3, pero con algunos beneficios y costes adicionales en comparación con SSE-S3. Existen permisos separados para el uso de una CMK que proporcionan protección adicional contra el acceso no autorizado a sus objetos en S3. SSE-KMS también le proporciona una pista de auditoría que muestra cuándo se utilizó su CMK y quién la utilizó. SSE-KMS le proporciona el control de la política de acceso de claves, lo que podría proporcionarle un control más granular según su caso de uso.
- En el cifrado del lado del servidor con claves proporcionadas por el cliente (SSE-C), usted administra las claves de cifrado y S3 administra el cifrado a medida que escribe en los discos y el descifrado cuando accede a sus objetos. Esta opción es útil si necesita proporcionar y administrar sus propias claves de cifrado. Tenga en cuenta que usted es responsable de la creación, el almacenamiento y el seguimiento de las claves utilizadas para cifrar cada objeto y AWS no tiene la capacidad de recuperar las claves proporcionadas por el cliente si se pierden. Lo más importante a tener en cuenta con SSE-C es que debe proporcionar la clave administrada por el cliente cada vez que hace PUT o GET un objeto.
- El cifrado del lado del cliente es otra opción para cifrar sus datos en S3. Puede utilizar una CMK almacenada en AWS KMS o utilizar una clave maestra que almacene dentro de su aplicación. El cifrado del lado del cliente significa que usted cifra los datos antes de enviarlos a AWS y que los descifra después de recuperarlos desde AWS. AWS no administra sus claves y no es responsable del cifrado o descifrado. Por lo general, el cifrado del lado del cliente debe estar profundamente integrado en su aplicación para que funcione.
Proteja los datos de S3 contra la eliminación accidental mediante S3 Versioning y S3 Object Lock
Amazon S3 está diseñado para una durabilidad del 99,999999999 por ciento de los objetos en varias zonas de disponibilidad, es resistente frente a eventos que afectan a toda una zona y está diseñado para ofrecer una disponibilidad del 99,99 por ciento durante un año determinado. En muchos casos, cuando se trata de estrategias para hacer una copia de seguridad de sus datos en S3, se trata de proteger los buckets y los objetos de la eliminación accidental, en cuyo caso S3 Versioning se puede usar para preservar, recuperar y restaurar cada versión de cada objeto almacenado en sus buckets. S3 Versioning le permite mantener varias versiones de un objeto en el mismo bucket y puede ayudarle a recuperar objetos de una eliminación o sobrescritura accidental. Tenga en cuenta que esta función tiene costes asociados. Puede considerar S3 Versioning en escenarios selectivos como los buckets de S3 que almacenan datos de respaldo críticos o datos confidenciales.
Con S3 Versioning habilitado en sus buckets de S3, puede agregar de forma opcional otra capa de seguridad al configurar un bucket para habilitar la eliminación con autenticación multifactor (MFA). Con esta configuración, el propietario del bucket debe incluir dos formas de autenticación en cualquier solicitud para eliminar una versión o cambiar el estado de versionado del bucket.
S3 Object Lock es una función que ayuda a mitigar la pérdida de datos mediante el almacenamiento de objetos mediante un modelo de escritura única y lectura múltiple (WORM). Al usar Object Lock, puede evitar que un objeto se sobrescriba o se elimine durante un tiempo fijo o indefinidamente. Tenga en cuenta que existen casos de uso específicos para Object Lock, incluidos escenarios en los que es imperativo que los datos no se cambien ni se eliminen después de que se hayan escrito.
Habilite el registro para S3 usando CloudTrail y el registro de acceso al servidor S3
Amazon S3 está integrado con CloudTrail. CloudTrail captura un subconjunto de llamadas a la API, incluidas las llamadas desde la consola de S3 y las llamadas de código a las API de S3. Además, puede habilitar los eventos de datos de CloudTrail para todos sus buckets o para una lista de buckets específicos. Tenga en cuenta que un bucket de S3 muy activo puede generar una gran cantidad de datos de registro y aumentar los costes de CloudTrail. Si le preocupa el coste, considere habilitar este registro adicional solo para buckets de S3 con datos críticos.
El registro de acceso al servidor proporciona registros detallados de las solicitudes que se realizan a un bucket. Los registros de acceso al servidor pueden ayudarle en las auditorías de seguridad y acceso.
Haga una copia de seguridad de sus datos en S3
Aunque S3 almacena sus datos en múltiples y geográficamente diversas zonas de disponibilidad de forma predeterminada, sus requisitos de cumplimiento pueden exigir que almacene los datos a distancias aún mayores. La replicación entre regiones (CRR) le permite replicar datos entre regiones de AWS distantes para ayudar a satisfacer estos requisitos. CRR permite la copia automática y asincrónica de objetos entre buckets en diferentes regiones de AWS. Para obtener más información sobre la replicación de objetos, consulte Replicación de objetos. Tenga en cuenta que esta función tiene costes asociados, podría considerar CRR en escenarios selectivos como los buckets de S3 que almacenan datos de respaldo críticos o datos confidenciales.
Monitorear S3 mediante Security Hub y CloudWatch Logs
Security Hub le proporciona una vista completa de su estado de seguridad en AWS y le ayuda a comprobar su entorno con respecto a los estándares y las mejores prácticas de la industria de seguridad. Security Hub recopila datos de seguridad de las cuentas de AWS, servicios y productos compatibles de socios externos y le ayuda a analizar sus tendencias de seguridad e identificar los problemas de seguridad de mayor prioridad.
El estándar AWS Foundational Security Best Practices es un conjunto de controles que detectan cuando sus cuentas y recursos implementados se desvían de las mejores prácticas de seguridad, y proporciona pasos claros de corrección. Los controles contienen las mejores prácticas de varios servicios de AWS, incluido S3. Le recomendamos que habilite AWS Foundational Security Best Practices, ya que incluye los siguientes controles de detección para S3 e IAM:
IAM.1: Las políticas de IAM no deben permitir privilegios administrativos “*” completos.
S3.1: La configuración de S3 Block Public Access debe estar habilitada
S3.2: Los buckets de S3 deberían prohibir el acceso público de lectura
S3.3: Los buckets de S3 deberían prohibir el acceso público de escritura
S3.4: Los buckets de S3 deberían tener habilitado el cifrado del lado del servidor
S3.5: Los buckets de S3 deberían requerir solicitudes para utilizar la capa de conexión segura
S3.6: Se deben restringir los permisos de Amazon S3 concedidos a otras cuentas de AWS en las políticas de bucket
S3.8: La configuración de S3 Block Public Access debe estar habilitada en el nivel de bucket
Para obtener información detallada sobre cada control, incluidos los pasos de corrección, consulte los controles de AWS Foundational Security Best Practices.
Si hay una actividad específica de la API de S3 que no se mencionó anteriormente sobre la que le gustaría recibir una alerta, puede usar CloudTrail Logs junto con Amazon CloudWatch para S3 para hacerlo. La integración de CloudTrail con CloudWatch Logs entrega la actividad de la API a nivel de bucket de S3 capturada por CloudTrail a un flujo de registros de CloudWatch en el grupo de registros de CloudWatch que usted especifique. Usted crea alarmas de CloudWatch para monitorear la actividad específica de la API y recibe notificaciones por correo electrónico cuando ocurre la actividad específica de la API.
Conclusión
Al utilizar las diez prácticas descritas en esta publicación de blog, puede crear mecanismos de protección sólidos para sus datos en Amazon S3, incluido el acceso con privilegios mínimos, el cifrado de datos en reposo, el bloqueo del acceso público, el registro, la supervisión y las comprobaciones de configuración.
Dependiendo de su caso de uso, debería considerar mecanismos de protección adicionales. Por ejemplo, existen controles disponibles relacionados con la seguridad para grandes conjuntos de datos compartidos en S3, como los puntos de acceso, que puede utilizar para dividir una política de bucket larga en políticas de puntos de acceso independientes y discretas para cada aplicación que necesita acceder al conjunto de datos compartido. Para obtener más información sobre la seguridad de S3, consulte la documentación de seguridad de Amazon S3.
Ahora que ha revisado las 10 mejores prácticas de seguridad más importantes para que sus datos en S3 sean más seguros, asegúrese de tener estos controles configurados en sus cuentas de AWS y vaya a construir de forma segura.
Si tiene comentarios sobre esta publicación, envíe sus comentarios en la sección Comments a continuación. Si tiene preguntas sobre esta publicación, inicie un nuevo hilo en el foro de Amazon S3 o póngase en contacto con AWS Support.
¿Desea ver más contenido sobre AWS Security, noticias y anuncios de funciones? Síguenos en Twitter.
Este blogpost es una traducción por Juan Pablo Denegri (Head of Enterprise Solutions Architectture, Iberia) del original en Inglés.