Transferencia de archivos mediante la interfaz de Amazon S3 - Guía para desarrolladores de AWS Snowball Edge

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.

Transferencia de archivos mediante la interfaz de Amazon S3

A continuación se presenta una descripción general de la interfaz de Amazon S3, que puede utilizar para transferir datos mediante programación desde el y hacia elAWS Snowball Edgemediante acciones de la API de REST de Amazon S3. Dicho API REST de Amazon S3 admite un subconjunto de acciones limitado. Puede utilizar este subconjunto de acciones con una de lasAWSSDK para transferir datos mediante programación. También puede utilizar el subconjunto de admitidos.AWS Command Line Interface(AWS CLI) para que Amazon S3 transfiera datos mediante programación.

Si la solución utiliza AWS SDK for Java versión 1.11.0 o posterior, debe usar las opciones S3ClientOptions siguientes:

  • disableChunkedEncoding(): indica que la interfaz no admite la codificación fragmentada.

  • setPathStyleAccess(true): configura la interfaz para utilizar el acceso de tipo ruta para todas las solicitudes.

Para obtener más información, consulteClass S3ClientOptions.Builderen laAmazon AppStream SDK para Java.

importante

Recomendamos utilizar un solo método a la vez para leer y escribir datos en un bucket local de unAWS Snowball EdgeDispositivo. Si se utiliza la interfaz de archivos y la interfaz de Amazon S3 en el mismo bucket a la vez puede dar lugar a conflictos de lectura/escritura.

Límites de tasa deAWS Snowball Edgedetalla los límites.

ParaAWSpara funcionar correctamente en Snowball Edge, debe permitir los puertos para los servicios. Para obtener más información, consulte Puertos necesarios para utilizarAWSServicios deAWS Snowballdispositivo Edge.

Descargar e instalar la versión 1.16.14 de la AWS CLI

Actualmente, los dispositivos Snowball Edge solo son compatibles con la versión 1.16.14 y versiones anteriores de laAWS CLI. Puede descargar e instalar esta versión de la AWS CLI desde GitHub. Utilice el siguiente procedimiento para llevar a cabo esta tarea.

nota

No olvide instalar la versión 2.6.5+ o 3.4+ de Python antes de instalar la versión 1.16.14 de la AWS CLI.

Para descargar e instalar la versión 1.16.14 de la AWS CLI

  1. Desinstale las versiones existentes delAWS CLI. Este paso es opcional en las instalaciones de Linux.

    • Windows: para obtener más información, consulte.Desinstalación deAWS CLIen laAWS Command Line InterfaceGuía del usuario de.

    • Linux: este paso es opcional en las instalaciones de Linux. Sin embargo, para desinstalar una instancia existente de la AWS CLI, ejecute los siguientes comandos desde un terminal.

      sudo rm -rf /usr/local/aws sudo rm /usr/local/bin/aws
  2. Descarga deAWS CLIcomoarchivo .zipdesde lasAWS GitHub repositorio donde reside.

  3. Instale la versión 1.16.14 de la AWS CLI desde el archivo 1.16.14.zip mediante uno de los siguientes procedimientos:

    • Windows

      1. Extraiga el archivo en una ubicación del equipo; por ejemplo: C:\Users\username\aws_cli\aws-cli-1.16.14

      2. Abra un símbolo del sistema, vaya a la carpeta donde extrajo el archivo y ejecute el script de configuración con el siguiente comando.

        py setup.py install
      3. Agregue la AWS CLI a la variable de entorno PATH.

      De este modo, se instalará la versión 1.16.14 de laAWS CLI.

    • Linux

      1. Extraiga el archivo en una ubicación del equipo; por ejemplo: /home/username/aws_cli/aws-cli-1.16.14

      2. Abra una ventana del terminal, vaya al directorio donde extrajo el archivo y ejecute el script de configuración con el siguiente comando.

        python setup.py install
        nota

        Es posible que tenga que ejecutar el comando con sudo.

        Este comando instala la versión 1.16.14 de laAWS CLI, y sobrescribe los archivos creados por cualquier instalación anteriorAWS CLIVersión de .

Uso deAWS CLIy operaciones de la API en Snowball Edge

Cuando se utiliza laAWS CLIo operaciones de la API para emitir comandos de IAM, Amazon S3 y Amazon EC2 en Snowball Edge, debe especificar la región como»snow». Puede hacerlo mediante laAWS configureo dentro del propio comando, como en los ejemplos siguientes.

aws configure --profile abc AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: 1234567 Default region name [None]: snow Default output format [None]: json

O bien

aws s3 ls --profile snowballEdge --endpoint http://192.0.2.0:8080 --region snow

Autorización con la interfaz de la API de Amazon S3 paraAWS Snowball

Cuando se utiliza la interfaz de Amazon S3, cada interacción se firma con laAWSAlgoritmo Signature Version 4 de forma predeterminada. Esta autorización solo se usa para verificar los datos en tránsito desde su origen hasta la interfaz. Todas las operaciones de cifrado y descifrado se realizan en el dispositivo. Nunca se almacenan datos sin cifrar en el dispositivo.

Cuando utilice la interfaz, tenga en cuenta lo siguiente:

  • Para obtener las credenciales locales de Amazon S3 para firmar sus solicitudes alAWS Snowball Edgedispositivo, ejecute elsnowballEdge list-access-keysysnowballEdge get-secret-access-keysLos comandos del cliente de Snowball Edge Para obtener más información, consulte Uso del cliente Snowball Edge. Estas credenciales locales de Amazon S3 incluyen un par de claves: una clave de acceso y una clave secreta. Estas claves únicamente son válidas para los dispositivos asociados con el trabajo. Las no se pueden usar en laNube de AWSporque no tienenAWS Identity and Access Management(IAM) contraparte.

  • La clave de cifrado no cambia por lo queAWScredenciales que usas. Firmar con el algoritmo Signature Version 4 se utiliza únicamente para verificar los datos en tránsito desde su origen hasta la interfaz. Por lo tanto, esta firma no tiene en cuenta nunca las claves de cifrado utilizadas para cifrar los datos en Snowball.

Cómo obtener y usar las credenciales locales de Amazon S3

Cada una de las interacciones con un Snowball Edge se firma con elAWSAlgoritmo Signature Version 4 Para obtener más información sobre el algoritmo, consulteProceso de firma Signature Version 4en laAWSReferencia general de.

Para obtener las credenciales locales de Amazon S3 a fin de firmar sus solicitudes al dispositivo Edge del cliente de Snowball Edge, ejecute elsnowballEdge list-access-keysysnowballEdge get-secret-access-keyInformación del cliente de Snowball Edge, consulte.Obtención de credenciales. Estas credenciales locales de Amazon S3 incluyen un par de claves: un ID de clave de acceso y una clave secreta. Estas credenciales únicamente son válidas para los dispositivos asociados con su trabajo. Las no se pueden usar en laNube de AWSporque no tienen ningún equivalente de IAM.

Puede agregar estas credenciales alAWSarchivo de credenciales en el servidor. El archivo de perfiles de credenciales predeterminado suele estar en ~/.aws/credentials, pero la ubicación puede variar en función de la plataforma. La muchos de los comparten este archivo.AWSSDK y por elAWS CLI. Puede guardar las credenciales locales con un nombre de perfil, como en el ejemplo siguiente:

[snowballEdge] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Especificación de la interfaz S3 comoAWS CLIPunto de enlace

Cuando utiliza laAWS CLIpara emitir un comando a laAWS Snowball Edge, especifica que el endpoint es la interfaz de Amazon S3. Tiene la posibilidad de utilizar el punto de enlace HTTPS o un punto de enlace HTTP no protegido, tal y como se muestra a continuación.

Punto de enlace HTTPS protegido

aws s3 ls --profile snowballEdge --endpoint https://192.0.2.0:8443 --ca-bundle path/to/certificate

Punto de enlace HTTP no protegido

aws s3 ls --profile snowballEdge --endpoint http://192.0.2.0:8080

Si utiliza el punto de enlace HTTPS de8443, los datos se transfieren de forma segura de su servidor al Snowball Edge. Este cifrado está protegido con un certificado generado por Snowball Edge al obtener una nueva dirección IP. Una vez que tenga el certificado, puede guardarlo en un archivo ca-bundle.pem local. A continuación, puede configurar el perfil de la AWS CLI para incluir la ruta a su certificado, tal y como se describe a continuación.

Para asociar el certificado con el punto de enlace de la interfaz

  1. Connect el Snowball Edge a la alimentación eléctrica y a la red y enciéndalo.

  2. En cuanto el dispositivo termine de arrancar, anote su dirección IP en la red local.

  3. En un terminal de la red, asegúrese de que puede hacer ping al Snowball Edge.

  4. Ejecute el comando snowballEdge get-certificate en el terminal. Para obtener más información acerca de este comando, consulte Obtención de su certificado para la transferencia de datos.

  5. Guarde el resultado del comando snowballEdge get-certificate en un archivo, por ejemplo ca-bundle.pem.

  6. Ejecute el siguiente comando desde el terminal.

    aws configure set profile.snowballEdge.ca_bundle /path/to/ca-bundle.pem

Después de realizar este procedimiento, puede ejecutar comandos de la CLI con estas credenciales locales, su certificado y el punto de enlace especificado, como en el siguiente ejemplo.

aws s3 ls --profile snowballEdge --endpoint https://192.0.2.0:8443

Características de Amazon S3 no compatibles para Snowball Edge

Con la interfaz de Amazon S3, puede transferir datos mediante programación desde un Snowball Edge, y hacia él, con acciones de la API de Amazon S3. Sin embargo, no todas las características de transferencia de Amazon S3 y acciones de la API de se pueden usar con un dispositivo Snowball Edge. Por ejemplo, las siguientes características y acciones no se pueden usar con Snowball Edge:

  • TransferManageresta utilidad transfiere archivos de un entorno local a Amazon S3 con el SDK for Java. Considere la posibilidad de utilizar las acciones de la APIAWS CLIcon la interfaz en su lugar.

  • GET Bucket (List Objects) Version 2en esta implementación de la acción GET, se devuelve parte o todos los objetos (hasta 1000), o parte de ellos, de un bucket. Considere la posibilidad de utilizar la acción GET Bucket (List Objects) Version 1 o el comando ls de la AWS CLI.