Prácticas recomendadas de control de acceso - Amazon Simple Storage Service

Prácticas recomendadas de control de acceso

Amazon S3 proporciona una variedad de características y herramientas de seguridad. Los siguientes escenarios deben servir de guía para las herramientas y configuraciones que es posible que desee utilizar al realizar determinadas tareas u operar en entornos específicos. La aplicación adecuada de estas herramientas puede ayudar a mantener la integridad de los datos y ayudar a garantizar que los recursos son accesibles para los usuarios previstos.

nota

Para obtener más información sobre el uso de la clase de almacenamiento Amazon S3 Express One Zone con buckets de directorio, consulte ¿Qué es S3 Express One Zone? y Buckets de directorio.

Creación de un nuevo bucket

Al crear un nuevo bucket, debe aplicar las siguientes herramientas y configuraciones para asegurarse de que sus recursos de Amazon S3 están protegidos.

S3 Object Ownership para simplificar el control de acceso

S3 Object Ownership es una configuración 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 listas de control de acceso (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 desactivadas, el propietario del bucket posee todos los objetos del bucket y administra el acceso a los datos de forma exclusiva mediante políticas.

La propiedad de objetos tiene tres configuraciones que puede utilizar para controlar la propiedad de los objetos que se cargan en el bucket y desactivar o activar las ACL:

ACL desactivadas
  • Propietario del bucket obligatorio (predeterminado): las ACL están desactivadas y el propietario del bucket tiene automáticamente la propiedad y el control total sobre cada objeto del bucket. Las ACL ya no afectan a los permisos de los datos del bucket de S3. El bucket utiliza políticas exclusivamente para definir el control de acceso.

ACL habilitadas
  • Propietario del bucket preferido: el propietario del bucket tiene la propiedad y el control total sobre los nuevos objetos que otras cuentas escriben en el bucket con la ACL predefinida bucket-owner-full-control.

  • Escritor del objeto: la Cuenta de AWS que carga un objeto es propietaria del objeto, tiene control total sobre él y puede conceder a otros usuarios acceso a él a través de ACL.

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

Block Public Access

S3 Block Public Access proporciona cuatro configuraciones para ayudarle a evitar la exposición de manera inadvertida de sus recursos de S3. Puede aplicar esta configuración en cualquier combinación en puntos de acceso o buckets individuales o en Cuentas de AWS completas. Si aplica una configuración a una cuenta, se aplica a todos los buckets y puntos de acceso propiedad de esa cuenta. De forma predeterminada, las cuatro configuraciones de Bloqueo de acceso público estarán activas para los buckets nuevos. Le recomendamos que deje las cuatro configuraciones activadas a menos que sepa que necesita desactivar una o varias para su caso de uso en concreto. Puede modificar la configuración individual del bloqueo de acceso público mediante la consola de Amazon S3.

Para obtener más información, consulte Qué significa "pública".

Si necesita conceder acceso a usuarios específicos, le recomendamos utilizar políticas deAWS Identity and Access Management (IAM) en lugar de desactivar toda la configuración del bloqueo de acceso público. Mantener activado Bloqueo de acceso público es una práctica recomendada de seguridad. El uso de Bloqueo de acceso público con identidades de IAM ayuda a garantizar que se rechace cualquier operación que esté bloqueada por una configuración de Bloqueo de acceso público, a menos que el usuario solicitado haya obtenido permiso específico.

Para obtener más información, consulte Configurar Block Public Access.

Conceder acceso con identidades de IAM

Al configurar cuentas para nuevos miembros del equipo que requieren acceso a S3, utilice usuarios y roles de IAM para garantizar los privilegios mínimos. También puede implementar una forma de autenticación multifactor (MFA) de IAM para permitir una base de identidad sólida. Al utilizar identidades de IAM, puede conceder permisos únicos a los usuarios y especificar a qué recursos pueden acceder y qué acciones pueden realizar. Las identidades de IAM proporcionan capacidades mejoradas, incluida la capacidad de requerir a los usuarios que especifiquen credenciales de inicio de sesión antes de acceder a recursos compartidos y aplicar jerarquías de permisos a diferentes objetos dentro de un solo bucket.

Para obtener más información, consulte Ejemplo 1: propietario del bucket que concede permisos de bucket a sus usuarios.

Políticas de buckets

Con las políticas de bucket, puede personalizar el acceso al bucket para garantizar que solo los usuarios que haya aprobado puedan acceder a los recursos y realizar acciones dentro de ellos. Además de las políticas de bucket, le recomendamos que utilice la configuración Bloqueo de acceso público en el nivel de bucket para limitar aún más el acceso público a los datos.

Para obtener más información, consulte Uso de políticas de bucket.

Al crear políticas, evite el uso de caracteres comodín (*) en el elemento Principal porque al usarlo permite a cualquiera acceder a sus recursos de Amazon S3. Es mejor enumerar explícitamente los usuarios o grupos a los que se les permite acceder al bucket. En lugar de incluir un carácter comodín para las acciones, concédales permisos específicos cuando corresponda.

Para seguir utilizando la práctica de los privilegios mínimos, las instrucciones Deny en el elemento Effect deben ser lo más amplias posibles y las instrucciones Allow deben ser lo más reducidas posibles. Los efectos de Deny combinados con la acción de "s3:*" son otra buena manera de implementar las prácticas recomendadas de alta de los usuarios incluidos en las instrucciones condicionales de la política.

Para obtener más información sobre cómo especificar condiciones para cuándo una política está en vigor, consulte Ejemplos de claves de condición de Amazon S3.

Buckets en una configuración de VPC

Al agregar usuarios a una configuración corporativa, puede usar un punto de enlace de nube virtual privada (VPC) para permitir que cualquier usuario de la red virtual acceda a los recursos de Amazon S3. Los puntos de enlace de la VPC permiten a los desarrolladores proporcionar acceso y permisos específicos a grupos de usuarios en función de la red a la que está conectado el usuario. En lugar de agregar cada usuario a un rol o grupo de IAM, puede utilizar los puntos de conexión de VPC para denegar el acceso al bucket si la solicitud no se origina desde el punto de conexión especificado.

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

Almacenamiento y uso compartido de datos

Utilice las siguientes herramientas y prácticas recomendadas para almacenar y compartir los datos de Amazon S3.

Control de versiones y bloqueo de objetos para la integridad de los datos

Si utiliza la consola de Amazon S3 para administrar buckets y objetos, recomendamos implementar el control de versiones de S3 y el bloqueo de objetos de S3. Estas características ayudan a evitar cambios accidentales en los datos críticos y le permiten revertir acciones no deseadas. Esta capacidad de reversión es particularmente útil cuando hay varios usuarios con permisos completos de escritura y ejecución que acceden a la consola de Amazon S3.

Para obtener más información sobre el control de versiones de S3, consulte Usar el control de versiones en buckets de S3. Para obtener más información acerca del Bloqueo de objetos, consulte Usar Bloqueo de objetos de S3.

Administración del ciclo de vida de los objetos para una mayor rentabilidad

Para administrar los objetos de manera que se almacenen de forma rentable durante todo su ciclo de vida, puede emparejar configuraciones de ciclo de vida con control de versiones de S3. Las configuraciones de ciclo de vida definen las acciones que desea que Amazon S3 realice durante la vida útil de un objeto. Por ejemplo, puede crear una configuración de ciclo de vida que realice la transición de objetos a otra clase de almacenamiento, los archive o los elimine después de un periodo de tiempo especificado. Puede definir una configuración de ciclo de vida para todos los objetos o un subconjunto de objetos del bucket mediante un prefijo o etiqueta compartidos.

Para obtener más información, consulte Administración del ciclo de vida del almacenamiento.

Replicación entre regiones para varias ubicaciones de oficinas

Al crear buckets a los que acceden oficinas en diferentes ubicaciones, se debería considerar la implementación de la replicación entre regiones de S3. La replicación entre regiones ayuda a garantizar que todos los usuarios tengan acceso a los recursos que necesitan y aumenta la eficacia operativa. La reproducción entre regiones ofrece una mayor disponibilidad al copiar objetos en buckets de S3 en diferentes Regiones de AWS. Sin embargo, el uso de esta función aumenta los costos de almacenamiento.

Para obtener más información, consulte Replicación de objetos.

Permisos para alojamiento seguro de sitios web estáticos

Al configurar un bucket para que se utilice como un sitio web estático al que se accede públicamente, debe desactivar todas las opciones de Block Public Access. Al escribir la política del bucket para el sitio web estático, asegúrese de permitir solo acciones de s3:GetObject y no permisos de ListObject o PutObject. Esto ayuda a garantizar que los usuarios no puedan ver todos los objetos del bucket ni agregar su propio contenido.

Para obtener más información, consulte Configurar permisos para el acceso a sitios web.

Le recomendamos que deje activada la opción Bloquear acceso público. Si desea conservar las cuatro configuraciones de bloqueo de acceso público activados y alojar un sitio web estático, puede utilizar el control de acceso de origen (OAC) de Amazon CloudFront. Amazon CloudFront proporciona las capacidades necesarias para configurar un sitio web estático seguro. Los sitios web estáticos de Amazon S3 solo admiten puntos de conexión HTTP. CloudFront utiliza el almacenamiento duradero de Amazon S3 a la vez que proporciona encabezados de seguridad adicionales, tales como HTTPS. HTTPS agrega seguridad al cifrar una solicitud HTTP normal y proteger contra ataques cibernéticos comunes.

Para obtener información, consulte Introducción a un sitio web estático seguro en la guía para desarrolladores de Amazon CloudFront.

Uso compartido de recursos

Existen varias formas diferentes de compartir recursos con un grupo específico de usuarios. Puede utilizar las siguientes herramientas para compartir un conjunto de documentos u otros recursos con un solo grupo de usuarios, un departamento o una oficina. Aunque todas estas herramientas se pueden usar para lograr el mismo objetivo, es posible que algunas herramientas se emparejen mejor que otras con la configuración existente.

S3 Object Ownership

S3 Object Ownership es una configuración 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 listas de control de acceso (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 desactivadas, el propietario del bucket posee todos los objetos del bucket y administra el acceso a los datos de forma exclusiva mediante políticas.

La mayoría de los casos de uso modernos de Amazon S3 ya no requieren el uso de ACL. Le recomendamos que mantenga las ACL desactivadas, excepto en circunstancias inusuales en las que necesite controlar el acceso a cada objeto de manera individual.

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

Políticas de usuario

Puede compartir recursos con un grupo limitado de personas mediante grupos de IAM y políticas de usuario. Al crear un nuevo usuario de IAM, se le pedirá que lo cree y lo agregue a un grupo. Sin embargo, puede crear y agregar usuarios a grupos en cualquier momento. Si las personas con las que pretende compartir estos recursos ya están configuradas en IAM, puede agregarlas a un grupo común. A continuación, podrá utilizar una política de usuarios de IAM para compartir el bucket con ese grupo. También puede utilizar políticas de usuario de IAM para compartir objetos individuales dentro de un bucket.

Para obtener más información, consulte Permiso para que el usuario de IAM tenga acceso a uno de los buckets.

Listas de control de acceso

Como regla general, se recomienda utilizar políticas de bucket de S3 o políticas de usuario de IAM para el control de acceso. Usar políticas en lugar de ACL simplifica la administración de los permisos. Las ACL de Amazon S3 son el mecanismo de control de acceso original de Amazon S3, que es anterior a IAM. Sin embargo, ciertos escenarios de control de acceso requieren el uso de las ACL. Por ejemplo, imagine que el propietario de un bucket desea conceder permiso para acceder a objetos, pero no todos los objetos del bucket pertenecen al propietario del bucket. En este caso, el propietario del objeto primero debe otorgar permisos al propietario del bucket con una ACL de objetos.

La mayoría de los casos de uso modernos de Amazon S3 ya no requieren el uso de ACL. Le recomendamos desactivar las ACL, excepto en circunstancias inusuales en las que necesite controlar el acceso a cada objeto de manera individual. Con la propiedad de objetos, puede desactivar las ACL y confiar en políticas para el control de acceso. Al desactivar las ACL, puede mantener fácilmente un bucket con objetos cargados por diferentes Cuentas de AWS. Como propietario del bucket, posee todos los objetos del bucket y puede administrar el acceso a ellos mediante políticas.

importante

Si el bucket utiliza la configuración de propietario del bucket obligatorio de S3 Object Ownership, debe utilizar políticas para conceder acceso al bucket y a los objetos que contiene. Si la configuración impuesta por el propietario del bucket está activada, las solicitudes de configuración o actualización de las listas de control de acceso (ACL) fallan y devuelven el código de error AccessControlListNotSupported. Las solicitudes de lectura de ACL siguen siendo compatibles.

Para obtener más información sobre cómo utilizar las ACL, consulte Ejemplo 3: propietario del bucket que concede a sus usuarios permisos para objetos que no posee.

Prefijos

Al intentar compartir recursos específicos de un bucket, puede replicar permisos de nivel de carpeta mediante prefijos. La consola de Amazon S3 admite el concepto de carpeta como medio para agrupar objetos mediante un prefijo de nombre compartido para objetos. Para luego otorgar un permiso explícito de usuario de IAM para acceder a los recursos asociados con dicho prefijo, puede especificar dicho prefijo dentro de las condiciones de su política de un usuario de IAM.

Para obtener más información, consulte Organización de objetos en la consola de Amazon S3 con carpetas.

Etiquetado

Si utiliza el etiquetado de objetos para categorizar el almacenamiento, puede compartir objetos etiquetados con un valor específico con usuarios especificados. El etiquetado de recursos permite controlar el acceso a los objetos en función de las etiquetas asociadas con el recurso al que un usuario intenta acceder. Para permitir el acceso a los recursos etiquetados, utilice la condición ResourceTag/key-name en una política de usuario de IAM.

Para obtener más información, consulte Control del acceso a los recursos de AWS mediante etiquetas de recursos en la Guía del usuario de IAM.

Protección de datos

Utilice las siguientes herramientas para ayudar a proteger los datos en tránsito y en reposo, las cuales son cruciales para mantener la integridad y la accesibilidad de los datos.

Cifrado del objeto

Amazon S3 ofrece varias opciones de cifrado de objetos que protegen los datos en tránsito y en reposo. El cifrado del lado del servidor cifra el objeto antes de guardarlo en discos de sus centros de datos y, a continuación, lo descifra al descargar los objetos. Siempre que autentique su solicitud y tenga permiso de acceso, no existe diferencia alguna en la forma de obtener acceso a objetos cifrados o sin cifrar. Al configurar el cifrado del lado del servidor, tiene tres opciones que se excluyen mutuamente:

  • Cifrado en el servidor con claves administradas por Amazon S3 (SSE-S3)

  • Cifrado del lado del servidor con claves 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.

El cifrado del lado del cliente es el acto de cifrar datos antes de enviarlos a Amazon S3. Para obtener más información, consulte Protección de los datos con el cifrado del cliente.

Métodos de firma

Signature Version 4 es el proceso de agregar información de autenticación a las solicitudes de AWS enviadas por HTTP. Por seguridad, la mayoría de las solicitudes de AWS se firman con una clave de acceso, que se compone de un ID de clave de acceso y una clave de acceso secreta. Estas dos claves comúnmente se denominan credenciales de seguridad.

Para obtener más información, consulte Autenticación de solicitudes (AWS Signature Version 4) y Proceso de firma de Signature Version 4.

Registro y monitorización

El monitoreo es una parte importante del mantenimiento de la fiabilidad, la disponibilidad y el rendimiento de las soluciones de Amazon S3 para que pueda depurar más fácilmente un error multipunto, si se produce. El registro puede proporcionar información sobre los errores que los usuarios reciben, qué solicitudes se realizan y en qué momento. AWS proporciona varias herramientas para monitorear los recursos de Amazon S3:

  • Amazon CloudWatch

  • AWS CloudTrail

  • Registros de acceso de Amazon S3

  • AWS Trusted Advisor

Para obtener más información, consulte Registro y monitoreo en Amazon S3.

Amazon S3 está integrado con AWS CloudTrail, un servicio que proporciona un registro de las acciones realizadas por un usuario, un rol o un servicio de Servicio de AWS en Amazon S3. Esta característica se puede emparejar con Amazon GuardDuty, que monitorea las amenazas contra los recursos de Amazon S3 mediante el análisis de eventos de administración de CloudTrail y eventos de datos de S3 de CloudTrail. Estos orígenes de datos monitorean diferentes tipos de actividad. Por ejemplo, los eventos de administración de CloudTrail relacionados con Amazon S3 incluyen operaciones que enumeran o configuran proyectos de S3. GuardDuty analiza los eventos de datos de S3 de todos los buckets de S3 y los monitorea en busca de actividades maliciosas y sospechosas.

Para obtener más información, consulte Protección de Amazon S3 en Amazon GuardDuty en la guía del usuario de Amazon GuardDuty.