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

¡Bienvenido a la nueva Guía del usuario de Amazon S3! La guía del usuario de Amazon S3 combina información e instrucciones de las tres guías retiradas: Guía para desarrolladores de Amazon S3, Guía del usuario de la consola de Amazon S3y Guía de introducción Amazon S3.

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).

  • Igualmente, tenga en cuenta que las listas de control de acceso (ACL) del bucket de Amazon S3 facilita la lectura, escritura o el acceso completo a todos o a 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 implementar controles de detección en curso con las reglas administradas de AWS Config s3-bucket-public-read-prohibited y s3-bucket-public-write-prohibited.

Para obtener más información, consulte Administración de identidades y accesos en Amazon S3.

Implemente el 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.

Utilice roles de IAM para aplicaciones y servicios de AWS que requieran 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 directamente 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. Al utilizar 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 al realizar llamadas a otros recursos de AWS.

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

Habilite la eliminación de la Multi-Factor Authentication (MFA)

La eliminación de MFA le puede se de utilidad para evitar eliminaciones accidentales del bucket. Si la eliminación de MFA no está activada, cualquier usuario con la contraseña de un usuario de IAM o raíz con los suficientes privilegios puede eliminar de forma permanente un objeto de Amazon S3.

La eliminación con MFA precisa una autenticación adicional para cualquiera de las siguientes operaciones:

  • Cambiar el estado de control de versiones del bucket

  • Eliminar de forma permanente la versión de un objeto

Para obtener más información, consulte Configurar la eliminación de MFA.

Tenga en cuenta el 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 de cliente (CMK) 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.

Aplique el cifrado de 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 AWS Config, s3-bucket-ssl-requests-only.

Considere el 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 sus registros de AWS CloudTrail.

Habilite el 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 AWS Config, s3-bucket-versioning-enabled.

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

Tenga en cuenta 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) permite replicar los datos entre regiones de AWS alejadas para cumplir con estos requisitos. CRR permite hacer una copia asíncrona 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 AWS Config, s3-bucket-replication-enabled.

Tenga en cuenta los puntos de enlace de la VPC para el acceso a Amazon S3

Un punto de enlace de nube privada virtual (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.

Identifique y audite todos sus 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 Buscar recursos para etiquetar.

Utilice el inventario de Amazon 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é es AWS Resource Groups?

Implemente monitoreo con herramientas de monitoreo de AWS

El monitoreo es importante para mantener la fiabilidad, la disponibilidad y el rendimiento de Amazon S3 y sus soluciones de AWS. AWS ofrece varias herramientas y servicios para ayudarle a monitorear Amazon S3 y sus 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 dispara 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.

Habilite el 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 AWS Config, s3-bucket-logging-enabled.

Use 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 activa 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 registros de 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.

Habilite AWS Config

Varias de las prácticas recomendadas que se listan en este tema sugieren crear reglas de AWS Config. AWS Config le permite evaluar y auditar las configuraciones de sus recursos de AWS. AWS Config monitorea las configuraciones de los recursos, lo que le permite evaluar las configuraciones registradas con respecto a las configuraciones seguras deseadas. AWS Config le permite 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 sus 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 con 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 responder a los buckets de Amazon S3 que permiten acceso público, consulte el tema sobre cómo utilizar la configuración de AWS para monitorear y responder a los buckets de Amazon S3 que permiten acceso público en el blog de seguridad de AWS.

Considere la posibilidad de utilizar Amazon Macie con Amazon S3

Macie utiliza aprendizaje automático para detectar, clasificar y proteger datos confidenciales automáticamente en AWS. Macie reconoce datos confidenciales como información de identificación personal (PII) o propiedad intelectual. Le ofrece paneles y alertas que le permiten visualizar cómo se mueven estos datos o cómo se obtiene acceso a ellos. Para obtener más información, consulte ¿Qué es Amazon Macie?

Monitoree las notas oficiales sobre seguridad de AWS

Debe comprobar con regularidad las notas oficiales sobre seguridad publicadas en Trusted Advisor para 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.

Monitoree también activamente la dirección de correo electrónico principal registrada en cada una de sus cuentas de AWS. AWS se pondrá en contacto con usted a través de esta dirección de correo electrónico acerca de problemas de seguridad emergentes que puedan afectarle.

Los problemas operativos de AWS con amplia repercusión se publican en el panel de estado del servicio de AWS. Los problemas operativos también se publican en las cuentas individuales a través del panel de estado personal. Para obtener más información, consulte la documentación de AWS Health.