Consideraciones de seguridad para los puntos de acceso de S3 Object Lambda
Con Amazon S3 Object Lambda S3 puede realizar transformaciones personalizadas en los datos a medida que salen de Amazon S3 utilizando la escala y la flexibilidad de AWS Lambda como plataforma de computación. S3 y Lambda permanecen seguros por defecto, pero para mantener esta seguridad, se requiere una consideración especial por parte del autor de la función de Lambda. S3 Object Lambda requiere que todo el acceso se realice a través de entidades autenticadas (sin acceso anónimo) y a través de HTTPS.
Para mitigar los riesgos de seguridad, recomendamos lo siguiente:
-
Amplíe el rol de ejecución de Lambda al conjunto de permisos más pequeño posible.
-
Siempre que sea posible, asegúrese de que su función de Lambda acceda a Amazon S3 a través de la URL prefirmada proporcionada.
Configuración de políticas de IAM
Los puntos de acceso de S3 admiten políticas de recursos de AWS Identity and Access Management (IAM) que permiten controlar el uso del punto de acceso en función del recurso, del usuario o de otras condiciones. Para obtener más información, consulte Configuración de las políticas de IAM para puntos de acceso de Object Lambda.
Comportamiento cifrado
Dado que el punto de acceso de Object Lambda utiliza Amazon S3 y AWS Lambda, existen diferencias en cuanto al comportamiento de cifrado. Para obtener más información sobre el comportamiento cifrado predeterminado de S3, consulte Establecer el comportamiento del cifrado predeterminado del lado del servidor para los buckets de Amazon S3.
-
Cuando se utiliza el cifrado del lado del servidor de S3 con puntos de acceso de Object Lambda, el objeto se descifra antes de enviarlo a Lambda. Una vez que el objeto se envía a Lambda, se procesa sin cifrar (en el caso de una solicitud
GET
oHEAD
). -
Para evitar que se registre la clave de cifrado, S3 rechaza solicitudes
GET
yHEAD
de objetos que se cifran utilizando el cifrado del lado del servidor con claves proporcionadas por el cliente (SSE-C). Sin embargo, la función de Lambda podría recuperar estos objetos si tiene acceso a la clave proporcionada por el cliente. -
Al utilizar el cifrado del cliente de S3 con puntos de acceso de Object Lambda, asegúrese de que Lambda tenga acceso a la clave de cifrado para poder descifrar y volver a cifrar el objeto.
Seguridad en puntos de acceso
S3 Object Lambda utiliza dos puntos de acceso: uno Object Lambda y otro S3 estándar, al que se denomina punto de acceso de apoyo. Cuando usted realiza una solicitud a un punto de acceso de Object Lambda, S3 invoca Lambda en su nombre o delega la solicitud al punto de acceso de soporte, según la configuración de S3 Object Lambda. Cuando se invoca Lambda para una solicitud, S3 genera una URL prefirmada para su objeto en su nombre a través del punto de acceso de soporte. Su función de Lambda recibe la URL como entrada cuando se invoca.
Puede configurar su función de Lambda para que use la URL prefirmada para recuperar el objeto original en lugar de invocar S3 directamente. Al utilizar este modelo, puede aplicar mejores límites de seguridad a los objetos. Puede limitar el acceso directo a objetos a través de buckets de S3 o puntos de acceso de S3 a un conjunto limitado de usuarios o roles de IAM. Este método también protege sus funciones de Lambda de estar sujetas al problema del suplente confuso, donde una función mal configurada con permisos diferentes a su invocador podría permitir o denegar el acceso a objetos cuando no debería.
Acceso público al punto de acceso de Object Lambda
S3 Object Lambda no permite el acceso anónimo ni público porque Amazon S3 debe autorizar su identidad para completar cualquier solicitud de S3 Object Lambda. Al invocar solicitudes a través de un punto de acceso de Object Lambda, necesita el permiso lambda:InvokeFunction
para la función de Lambda configurada. Del mismo modo, al invocar otras operaciones de la API a través de un punto de acceso de Object Lambda, debe tener los permisos s3:*
necesarios.
Sin estos permisos, las solicitudes para invocar Lambda o delegar a S3 fallarán con errores HTTP 403 (Prohibido). Todos los accesos deben ser realizados por entidades autenticadas. Si necesita un acceso público, puede utilizar Lambda@Edge como posible alternativa. Para obtener más información, consulte Personalización en el borde con Lambda@Edge en la guía para desarrolladores de Amazon CloudFront.
Direcciones IP del punto de acceso de Object Lambda
Las subredes describe-managed-prefix-lists
admiten puntos de conexión de nube privada virtual (VPC) de puerta de enlace y están relacionadas con la tabla de enrutamiento de los puntos de conexión de VPC. Dado que el punto de acceso de Object Lambda no admite la VPC de puerta de enlace, faltan sus rangos de IP. Los rangos que faltan pertenecen a Amazon S3, pero no se admiten en los puntos de conexión de VPC de la puerta de enlace. Para obtener más información acerca de describe-managed-prefix-lists
, consulte DescribeManagedPrefixLists en la Referencia de la API de Amazon EC2 y Rangos de direcciones IP de AWS en la Referencia general de AWS.
Soporte para puntos de acceso de Object Lambda
Cuando S3 Object Lambda recibe una solicitud de un navegador o la solicitud incluye un encabezado Origin
, S3 Object Lambda siempre añade un campo de encabezado “AllowedOrigins":"*"
.
Para obtener más información, consulte Uso compartido de recursos entre orígenes (CORS).