Especificación de Signature Version en la autenticación de solicitudes
Amazon S3 solo es compatible con AWS Signature Version 4 en la mayoría de las Regiones de AWS. En algunas de las Regiones de AWS más antiguas, Amazon S3 admite Signature Version 4 y Signature Version 2. Sin embargo, Signature Version 2 se va a desactivar (esta característica quedará obsoleta). Para obtener más información sobre el final del servicio de soporte de Signature Version 2, consulte AWS Signature Version 2 se va a desactivar (obsoleta) para Amazon S3.
Para ver una lista de todas las regiones de Amazon S3 y las versiones de Signature que admiten, consulte Regiones y puntos de enlace en la Referencia general de AWS.
Para todas las Regiones de AWS, los SDK de AWS utilizan Signature Version 4 de forma predeterminada con el fin de autenticar solicitudes. Si utiliza los SDK de AWS lanzados antes de mayo de 2016, es posible que deba solicitar Signature Version 4, como se muestra en la siguiente tabla.
| SDK | Solicitud de Signature Version 4 para una autenticación de solicitud |
|---|---|
| AWS CLI |
Para el perfil predeterminado, ejecute el siguiente comando:
Para un perfil común, ejecute el siguiente comando:
|
| SDK de Java |
Añada lo siguiente en su código:
O bien, en la línea de comando, especifique lo siguiente:
|
| SDK de JavaScript |
Configure el parámetro
|
| SDK de PHP |
Configure el parámetro
Cuando utilice el SDK de PHP v3, establezca el parámetro
|
| SDK de Python-Boto |
Especifique lo siguiente en el archivo de configuración predeterminado boto:
|
| SDK de Ruby |
SDK de Ruby - Version 1: configure el parámetro
SDK de Ruby - Version 3: configure el parámetro
|
| SDK de .NET |
Añada lo siguiente al código antes de crear el cliente de Amazon S3:
O bien, añada lo siguiente al archivo de configuración:
|
AWS Signature Version 2 se va a desactivar (obsoleta) para Amazon S3
Sin embargo, Signature Version 2 se va a desactivar (quedará obsoleta) en Amazon S3. Amazon S3 solo aceptará solicitudes de API que estén firmadas con Signature Version 4.
En esta sección, se incluyen algunas respuestas a preguntas comunes sobre el final del servicio de soporte de Signature Version 2.
¿Qué es Signature Version 2/4 y qué significa la firma de solicitudes?
El proceso de firma Signature Version 2 o Signature Version 4 se utiliza para autenticar las solicitudes de API de Amazon S3. La firma de solicitudes permite que Amazon S3 pueda identificar quién está enviando la solicitud y ayuda a proteger las solicitudes frente a agentes malintencionados.
Para obtener más información sobre la firma de solicitudes de AWS, consulte Firma de solicitudes de AWS en la Referencia general de AWS.
¿En qué consiste la actualización?
En la actualidad, pueden utilizarse solicitudes de la API de Amazon S3 firmadas con Signature Version 2 y Signature Version 4. Cuando esto suceda, Amazon S3 solamente aceptará solicitudes que estén firmadas con Signature Version 4.
Para obtener más información sobre la firma de solicitudes de AWS, consulte Cambios de Signature Version 4 en la Referencia general de AWS.
¿Por qué se realiza la actualización?
En lugar de utilizar una clave de acceso secreta, Signature Version 4 usa una clave de firma, lo que mejora la seguridad. En la actualidad, Signature Version 4 puede utilizarse en todas las Regiones de AWS, mientras que Signature Version 2 solo se admite en las regiones que se lanzaron antes de enero de 2014. Esta actualización nos permite proporcionar una experiencia más uniforme en todas las regiones.
¿Cómo sé si estoy utilizando Signature Version 4 y qué actualizaciones tengo que hacer?
Normalmente, la versión de Signature que se utiliza para firmar las solicitudes viene determinada por la herramienta o el SDK del lado del cliente. De forma predeterminada, las últimas versiones de los SDK de AWS utilizan Signature Version 4. En el caso del software de terceros, póngase en contacto con el equipo de soporte del software correspondiente para confirmar la versión que necesita. Si envía llamadas REST directas a Amazon S3, debe modificar la aplicación para que utilice el proceso de firma Signature Version 4.
Para obtener información acerca de qué versión de los SDK de AWS debe usarse al pasar a Signature Version 4, consulte Transición de Signature Version 2 a Signature Version 4.
Para obtener información acerca del uso de Signature Version 4 con la API de REST de Amazon S3, consulte Autenticación de solicitudes (AWS Signature Version 4) en la Referencia de la API de Amazon Simple Storage Service.
¿Qué sucede si no realizo la actualización?
Las solicitudes firmadas con Signature Version 2 que se generen cuando esto suceda, no podrán autenticarse con Amazon S3. Los solicitantes recibirán mensajes de error en los que se informará de que la solicitud debe firmarse con Signature Version 4.
¿Debo hacer algún cambio aunque utilice una URL prefirmada que requiera mi firma durante más de siete días?
Si utiliza una URL prefirmada que necesita su firma durante más de siete días, no tiene que hacer nada por el momento. Podrá seguir utilizando AWS Signature Version 2 para firmar y autenticar la URL prefirmada. Seguiremos investigando y le proporcionaremos más detalles sobre la migración a Signature Version 4 con direcciones URL prefirmadas.
Más información
-
Para obtener más información acerca del uso de Signature Version 4, consulte Firma de solicitudes de la API de AWS.
-
Consulte la lista de cambios entre Signature Version 2 y Signature Version 4 en Cambios de Signature Version 4.
-
Consulte la publicación AWS Signature Version 4 to replace AWS Signature Version 2 for signing Amazon S3 API requests
en los foros de AWS. -
Si tiene alguna pregunta o duda, contáctese con Soporte.
Transición de Signature Version 2 a Signature Version 4
Si en la actualidad utiliza Signature Version 2 para autenticar las solicitudes de API de Amazon S3, debe cambiar a Signature Version 4. Tal y como se describe en , el servicio de soporte de Signature Version 2 está a punto de finaliza AWS Signature Version 2 se va a desactivar (obsoleta) para Amazon S3.
Para obtener información acerca del uso de Signature Version 4 con la API de REST de Amazon S3, consulte Autenticación de solicitudes (AWS Signature Version 4) en la Referencia de la API de Amazon Simple Storage Service.
En la tabla siguiente, se muestran los SDK con la versión mínima necesaria para utilizar Signature Version 4 (SigV4). Si utiliza URL prefirmadas con los SDK de AWS para Java, JavaScript (Node.js) o Python (Boto/CLI), debe especificar la Región de AWS apropiada y configurar Signature Version 4 para el cliente. Para obtener información acerca de la configuración de SigV4 en el cliente, consulte Especificación de Signature Version en la autenticación de solicitudes.
| Si utiliza este SDK o producto | Actualice a esta versión del SDK | ¿Es necesario cambiar el código para que el cliente utilice Sigv4? | Enlace a la documentación del SDK |
|---|---|---|---|
|
AWS SDK para Java v1 |
Actualice a Java 1.11.201+ o v2. | Sí | Especificación de Signature Version en la autenticación de solicitudes |
|
AWS SDK para Java v2 |
No es necesario actualizar el SDK. | No | AWS SDK para Java |
|
AWS SDK para .NET v1 |
Actualice a 3.1.10 o versiones posteriores. | Sí | AWS SDK para .NET |
|
AWS SDK para .NET v2 |
Actualice a 3.1.10 o versiones posteriores. | No | AWS SDK para .NET v2 |
|
AWS SDK para .NET v3 |
Actualice a 3.3.0.0 o versiones posteriores. | Sí | AWS SDK para .NET v3 |
|
AWS SDK para JavaScript v1 |
Actualice a 2.68.0 o versiones posteriores. | Sí | AWS SDK para JavaScript |
|
AWS SDK para JavaScript v2 |
Actualice a 2.68.0 o versiones posteriores. | Sí | AWS SDK para JavaScript |
|
AWS SDK para JavaScript v3 |
No tiene que hacer nada por el momento. Actualice a la versión principal V3 en el tercer trimestre de 2019. | No | AWS SDK para JavaScript |
|
AWS SDK para PHP v1 |
Se recomienda actualizar a la versión más reciente de PHP o, al menos, a la v2.7.4 con el parámetro de firma establecido en v4 en la configuración del cliente de S3. | Sí | AWS SDK para PHP |
|
AWS SDK para PHP v2 |
Se recomienda actualizar a la versión más reciente de PHP o, al menos, a la v2.7.4 con el parámetro de firma establecido en v4 en la configuración del cliente de S3. | No | AWS SDK para PHP |
|
AWS SDK para PHP v3 |
No es necesario actualizar el SDK. | No | AWS SDK para PHP |
|
Boto2 |
Actualice a Boto2 v2.49.0. | Sí | Actualización a Boto |
|
Boto3 |
Actualice a 1.5.71 (Botocore), 1.4.6 (Boto3). | Sí | Boto 3: SDK de AWS para Python |
|
AWS CLI |
Actualice a 1.11.108. | Sí | AWS Command Line Interface |
|
AWS CLI v2 (vista previa) |
No es necesario actualizar el SDK. | No | AWS Command Line Interface Versión 2 de la 2 |
|
AWS SDK para Ruby v1 |
Actualice a Ruby V3. | Sí | Ruby V3 para AWS |
|
AWS SDK para Ruby v2 |
Actualice a Ruby V3. | Sí | Ruby V3 para AWS |
|
AWS SDK para Ruby v3 |
No es necesario actualizar el SDK. | No | Ruby V3 para AWS |
|
Go |
No es necesario actualizar el SDK. | No | AWS SDK para Go |
|
C++ |
No es necesario actualizar el SDK. | No | AWS SDK para C++ |
AWS Tools for Windows PowerShell o bien AWS Tools for PowerShell Core
Si utiliza versiones del módulo anteriores a 3.3.0.0, debe actualizar a 3.3.0.0.
Para obtener información sobre la versión, utilice el cmdlet Get-Module:
Get-Module –Name AWSPowershell Get-Module –Name AWSPowershell.NetCore
Para actualizar a la versión 3.3.0.0, utilice el cmdlet Update-Module:
Update-Module –Name AWSPowershell Update-Module –Name AWSPowershell.NetCore
Puede utilizar direcciones URL prefirmadas que sean válidas durante más siete días en las que el tráfico se envíe con Signature Version 2.