AWS CloudFront: Presentamos Origin Access Control (OAC) para proteger sus S3 Origins 4 de enero de 2023

Publicado: 2023-01-04

Amazon CloudFront es una red global líder de entrega de contenido (CDN) de Amazon Web Services (AWS) reconocida por entregar aplicaciones, videos, sitios web y API a los espectadores de todo el mundo a la velocidad de la luz.

Amazon S3 es una de las arquitecturas de AWS más utilizadas que se utiliza como origen para alojar contenido y CloudFront, que se utiliza para entregarlos a los espectadores. Al usar esta arquitectura, los clientes pueden aprovechar la identidad de acceso de origen (OAI) de CloudFront para proteger el acceso del depósito S3 solo a CloudFront. Sin embargo, recientemente, AWS introdujo una nueva función llamada OAC que reemplaza a OAI con algunas características completamente nuevas.

1.¿Qué es OAC?

AWS anunció recientemente la nueva función Origin Access Control (OAC) para CloudFront. Este es un sucesor de Origin Access Identity (OAI). Según nuestra arquitectura, usamos Amazon S3 como origen para alojar contenido como sitios web y videos, y usamos CloudFront para entregarlos a los espectadores. Ahora estamos utilizando la identidad de acceso de origen (OAI) de CloudFront para proteger el acceso de origen de S3 solo a CloudFront.

2.¿Cómo es más seguro que OAI?

Si bien OAI proporciona una forma segura de acceder a los orígenes de S3 en CloudFront, tiene limitaciones, como no admitir configuraciones de políticas granulares, solicitudes HTTP y HTTPS que usan el método POST en regiones de AWS que requieren AWS Signature Version 4 (SigV4) o integrarse con SSE. -KMS. Para fortalecer la seguridad y profundizar las integraciones de funciones, AWS introdujo el control de acceso de origen (OAC), una nueva función que protege los orígenes de S3 al permitir el acceso solo a las distribuciones designadas. OAC se basa en una práctica recomendada de AWS de usar entidades principales de servicio de IAM para autenticarse con orígenes de S3.

En comparación con OAI, algunas de las mejoras notables que ofrece OAC incluyen:

  • OAC se implementa con prácticas de seguridad mejoradas, como credenciales a corto plazo, rotaciones frecuentes de credenciales y políticas basadas en recursos. Fortalecen la postura de seguridad de sus distribuciones y brindan mejores protecciones contra ataques como el diputado confuso.
  • Compatibilidad integral con métodos HTTP: OAC admite GET, PUT, POST, PATCH, DELETE, OPTIONS y HEAD.
  • SSE-KMS: OAC admite la descarga y carga de objetos S3 cifrados con SSE-KMS.
  • Acceda a S3 en todas las regiones de AWS: OAC admite el acceso a S3 en todas las regiones de AWS, incluidas las regiones existentes y todas las regiones futuras. Por el contrario, OAI solo será compatible con las regiones de AWS existentes y las regiones lanzadas antes de diciembre de 2022.

3. ¿Cómo podemos crear/habilitar esta función?

  1. Inicie sesión en la consola de administración de AWS y abra la consola de CloudFront.
  2. Elija Crear distribución.
  3. En la sección Configuración de origen, seleccione un origen de S3 de la lista desplegable Dominio de origen.
  4. Opcionalmente, puede configurar una ruta de origen para agregar al nombre de dominio de origen para las solicitudes de origen.
  5. Introduzca un nombre para identificar de forma exclusiva la configuración de origen actual.
  6. Elija la configuración de control de acceso de Origin.

7. Puede elegir un control de acceso de origen existente o crear una nueva configuración de control con una de las tres opciones de firma.

crear configuración de control

  1. Siga las instrucciones detalladas aquí sobre cómo configurar el resto de los ajustes
  2. Seleccione 'Crear distribución' en la parte inferior de la página una vez que haya elegido todos los ajustes de configuración
  3. Una vez que la distribución se haya creado correctamente, debe actualizar la política del depósito S3, puede hacer referencia a la declaración de la política proporcionada en la página de detalles de la distribución (Figura 3)
  4. Tenga en cuenta que la política proporcionada solo incluye permisos para leer objetos de S3. Si también desea cargar objetos en S3, debe actualizar la política con permisos adicionales para " s3:PutObject ".

4.¿Cómo podemos configurar OAC al actualizar una distribución de CloudFront existente?

  1. Inicie sesión en la consola de administración de AWS y abra la consola de CloudFront.
  2. Seleccione una de las distribuciones de la lista
  3. Seleccione la pestaña Orígenes y elija el origen de S3 que desea asociar con una configuración de control de acceso de origen
  4. Si el origen no utiliza ningún mecanismo de acceso, se mostrará como público. Si el origen ya está usando OAI, se mostrará como "Identificaciones de acceso heredadas". Para usar OAC, seleccione "Configuración de control de acceso de origen" y elija un control de acceso de origen existente o cree una nueva configuración de control con una de las tres opciones de firma.

Editar origen

5. Debe actualizar la política de S3 para permitir que la entidad principal del servicio IAM de CloudFront y su recurso de distribución accedan al depósito de S3. A diferencia de configurar el acceso de origen al crear una distribución donde puede actualizar la política solo después de crear la distribución, al actualizar una distribución, puede, y de hecho recomendamos, que actualice la política para permitir el acceso tanto a OAI como a OAC, antes de guardar la configuración de origen, para reducir el tiempo de inactividad del servicio a cero. La siguiente es una política de muestra que permite el acceso tanto a OAI como a OAC.

Código Nuevo

6. Al igual que configurar OAC al crear una distribución, la política proporcionada por CloudFront solo incluye permisos para leer objetos de S3. Si también desea cargar objetos en S3, debe actualizar la política con permisos adicionales para “ s3:PutObject

7. En la parte inferior de la página, seleccione Guardar

5. ¿Cómo podemos habilitar SSE-KMS para CloudFront OAC?

AWS Well-Architected recomienda proteger nuestros datos en tránsito y en reposo. Si utilizamos OAI, sus datos ya están protegidos en tránsito y podemos proteger nuestros datos en reposo mediante el cifrado del lado del servidor con claves administradas por Amazon S3 (SSE-S3).

Necesitamos configurar su política de KMS para permitir que el principal del servicio IAM de CloudFront acceda a nuestras claves de KMS. Agregar la clave de condición aws:SourceArn permite que solo una distribución específica de CloudFront acceda a los objetos cifrados de SSE-KMS mediante esta política de claves.

  1. Abra la consola KMS.
  2. Seleccione la clave KMS administrada por el cliente que se usa para cifrar el contenido en el origen S3
  3. Seleccione la pestaña Política de claves

4. Actualice la política de claves de KMS para dar acceso al principio de servicio de CloudFront

principio de servicio

6.¿Necesito migrar a OAC?

Para responder a esta pregunta, CloudFront admite tanto el nuevo OAC como el OAI heredado. AWS recomienda usar OAC para conocer las prácticas recomendadas de seguridad más recientes y las funcionalidades adicionales. Una limitación de OAI sobre OAC será que OAI solo será compatible con las regiones de AWS existentes y las regiones lanzadas antes de diciembre de 2022, pero CloudFront Origin Access Control ahora está disponible en todo el mundo, excepto en las regiones de AWS China.

Terminando,

El control de acceso de origen de AWS CloudFront ahora está disponible a nivel mundial. En este blog he intentado explicar qué es OAC y en qué se diferencia de OAI en la propia consola de gestión de AWS. Si bien OAI brinda amplia seguridad, se recomienda OAC para una seguridad mejorada, ya que protege los orígenes de S3 al permitir el acceso únicamente a las distribuciones designadas.

Este blog ha sido escrito por Abinash Bhutia