View a markdown version of this page

Apéndice A: Cómo Servicios de AWS usar prefirmado URLs - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Apéndice A: Cómo Servicios de AWS usar prefirmado URLs

Este apéndice proporciona información Servicios de AWS y características que utilizan URLs prefirmados. Esta información tiene dos propósitos:

  • Proporcionar a los ingenieros de seguridad que implementan los controles información sobre los posibles impactos de esos controles.

  • Para crear conciencia sobre las situaciones en las que este riesgo podría ser relevante para las interacciones de registro de URL.

importante

Este apéndice no proporciona una lista completa Servicios de AWS ni su uso de los prefirmados URLs. Tampoco cubre las soluciones personalizadas o de terceros.

Consola de Amazon S3

Principal: usuario de consola

Caducidad predeterminada: 5 minutos

Exención de responsabilidad

En esta sección se documenta el comportamiento actual de la consola Amazon S3. AWS El comportamiento de la consola está sujeto a cambios sin previo aviso.

La consola Amazon S3 admite la descarga y carga de objetos. Las descargas utilizan una URL prefirmada que tiene un tiempo de caducidad de 300 segundos (5 minutos).  La URL se genera mediante una solicitud ahttps://<bucket-region>.console.aws.amazon.com/s3/batchOpsServlet-proxy.

Esa solicitud se inicia cuando el usuario hace clic en un botón de descarga, por lo que la URL no se genera por adelantado ni se envía al cliente hasta que se produce la solicitud explícita de descarga.

Las subidas son similares, con la diferencia de que la consola envía dos solicitudes: OPTIONS una para comprobar el CORS antes del vuelo, y. PUT Ambas solicitudes utilizan la misma firma.

Las credenciales utilizadas para firmar son credenciales temporales que están asociadas al usuario que ha iniciado sesión actualmente. Los detalles sobre el método para obtener esas credenciales temporales están fuera del ámbito de esta guía.

Amazon S3 Object Lambda

Principal: Persona que llama al punto de acceso

Caducidad predeterminada: 61 segundos

nota

A partir del 7 de noviembre de 2025, S3 Object Lambda solo está disponible para los clientes actuales que utilizan el servicio actualmente, así como para algunos socios AWS Partner Network (de APN). Para obtener más información sobre capacidades similares a las de S3 Object Lambda, haga clic aquí: cambio de disponibilidad de Amazon S3 Object Lambda.

Amazon S3 Object Lambda utiliza AWS Lambda funciones para procesar y transformar automáticamente los datos a medida que se recuperan de Amazon S3. Cuando S3 Object Lambda invoca una función, la función recibe una URL prefirmada (inputS3Url) que puede usar para descargar el objeto original desde el punto de acceso compatible.

Estos prefirmados URLs están firmados para el punto de acceso Amazon S3 compatible, que se proporciona al configurar S3 Object Lambda. (No es lo mismo que el punto de acceso Object Lambda). En lugar de utilizar un rol vinculado a la función Lambda, la URL se firma con la identidad de la persona que llama originalmente y los permisos de ese usuario se aplicarán cuando se utilice la URL. Si hay encabezados firmados en la URL, la función Lambda debe incluir estos encabezados en la llamada a Amazon S3.

La URL prefirmada que se devuelve tiene un tiempo de caducidad de 61 segundos (un segundo más que la duración máxima de una función Object Lambda de S3). La URL generada solo se puede usar con el punto de acceso compatible. La persona que llama al punto de acceso S3 Object Lambda debe tener acceso a este punto de acceso. Puede limitar ese acceso al contexto de S3 Object Lambda mediante la condición. "aws:CalledVia": ["s3-object-lambda.amazonaws.com"] Cuando esa condición está asociada a un punto de acceso o depósito de soporte, el usuario no puede acceder directamente al punto de acceso o depósito de soporte.

El valor de este enfoque es que no es necesario conceder a la función Lambda acceso a su bucket o punto de acceso de S3. El rol asociado a la función Lambda necesitará permisos WriteGetObjectResponse, pero no los necesitará. GetObject

Cuando S3 Object Lambda genera un objeto prefirmado URLs, no añade restricciones de red, por lo que se puede utilizar una URL fuera de la función Lambda. Sin embargo, se seguirán aplicando las restricciones impuestas a la persona que llama a S3 Object Lambda. Por ejemplo, si la función Lambda se ejecuta en una VPC y restringe a la persona que llama a usar un punto de enlace de la VPC, cualquier persona que posea la URL prefirmada necesitará poder enviarla a través de ese punto de enlace de la VPC. Esta restricción también se aplica a y. SourceIpVpcSourceIp 

nota

Para utilizar una función Object Lambda de S3 en una VPC, la VPC debe tener una ruta a los puntos finales públicos de S3 a los que pueda llamar. WriteGetObjectResponse Esto no indica que los requisitos de uso de un punto final de VPC no se apliquen a las solicitudes de recuperación de datos del depósito.

AWS Lambda Entre regiones CopyObject

Principal: internoAWS

Caducidad predeterminada: 3600 segundos

Cuando utiliza la UploadPartCopyAPI CopyObjecto para realizar copias Regiones de AWS, Amazon S3 utiliza un código prefirmado URLs internamente. Se APIs pueden llamar directamente desde SDKs o desde los AWS CLI comandos aws s3api copy-object yaws s3api upload-part. APIs No se utilizan para la replicación de Amazon S3, pero los utilizan los aws s3 sync comandos AWS CLI aws s3 cp y cuando el origen y el destino son buckets de S3. También son compatibles con TransferManager implementaciones en varios. AWS SDKs

AWS Lambda GetFunction

Principal: interno AWS

Caducidad predeterminada: 10 minutos

AWS Lambda almacena la versión de usuario en un bucket de S3 propiedad del equipo de Lambda antes de generar los activos desplegados en los contenedores de Lambda. Cuando desee acceder al código de su función, llame a la GetFunctionAPI. Esta API responde con Code.Location una URL prefirmada que es válida durante 10 minutos (este tiempo de caducidad es el comportamiento actual y no un contrato publicado). Si no quieres el código, puedes usar una combinación de GetFunctionConfigurationGetFunctionConcurrency, y ListTagspara recuperar el resto de datos devueltos porGetFunction.

Lambda firma la URL devuelta no con las credenciales del usuario que ha iniciado sesión actualmente, sino en nombre del usuario. Por este motivo, las claves de condición (por ejemploaws:SourceIP) que se aplican al usuario que ha iniciado sesión actualmente o a las credenciales de sesión temporales del usuario no se aplican a la URL generada. Esto es válido tanto si las claves de condición se aplican GetFunctionúnicamente al uso de las API de AWS como si se aplican a todo el uso de las API de AWS para el usuario o la sesión.

La consola Lambda también utiliza GetFunctionla URL prefirmada que devuelve. La consola utiliza las credenciales temporales asociadas al usuario que ha iniciado sesión actualmente para llamar. GetFunction Los detalles sobre la obtención de esas credenciales temporales están fuera del ámbito de este documento.

Amazon ECR

Director: AWS interno

Caducidad predeterminada: 1 hora

Amazon Elastic Container Registry (Amazon ECR) proporciona GetDownloadUrlForLayerla API, que devuelve una URL prefirmada que es válida durante una hora y permite la descarga de una sola capa desde una imagen de Amazon ECR. Sin embargo, el proxy Amazon ECR utiliza esta operación y, por lo general, los usuarios no la utilizan para extraer y empujar imágenes.

Amazon Redshift Spectrum

Principal: El rol pasó a CREATE EXTERNAL SCHEMA a través de IAM_ROLE

Caducidad predeterminada: 1 hora

Amazon Redshift Spectrum usa URLs prefirmados internamente y prohíbe las restricciones en la combinación del bucket y la función de Amazon Redshift que limitarían los prefirmados. URLs Puede utilizar un s3:signatureAge valor de 16 minutos, pero los valores muy bajos no son fiables. El valor mínimo que puede utilizar depende del tiempo y el tamaño de la consulta. Si bien un valor inferior a 16 minutos funciona en muchos escenarios, es necesario probarlo. La función puede y debe restringirse para que la utilice únicamente Redshift Spectrum, que no revela lo que genera, URLs lo que mitiga la típica justificación de valores de caducidad más bajos.

Amazon SageMaker AI Studio

Amazon SageMaker AI Studio admite dos acciones de API: CreatePresignedDomainUrly CreatePresignedNotebookInstanceUrl. Sin embargo, no APIs están relacionadas con la función de URL prefirmada de la versión 4 de Signature. APIs Crean una URL que utiliza un authToken parámetro, pero no admiten ninguno de los parámetros de consulta estándar de la versión 4 de Signature.

authTokenes un mecanismo diferente, pero tiene similitudes con el prefirmado URLs. Se envía como parámetro de cadena de consulta y admite un tiempo de caducidad de 5 minutos.

SageMaker La IA admite las restricciones de red. Si restringes la sagemaker:CreatePresignedDomainUrl acción, esa acción se aplica tanto a la llamada CreatePresignedDomainUrlcomo al uso de la URL generada. Si se genera una URL desde una red válida y, a continuación, se envía desde una red no válida, la llamada a la API para generar la URL se realiza correctamente, pero la solicitud que envía la URL falla. Lo mismo ocurre con la CreatePresignedNotebookInstanceUrlsagemaker:CreatePresignedNotebookInstanceUrlacción.

Para obtener más información, consulte la documentación sobre SageMaker IA.