
De las herramientas para la línea de comando que permiten hacer uso de los servicios de nube de Amazon.
Presentación
Hay dos versiones de las utilerías de AWS1 para la línea de comando del sistema operativo. Estas notas se comenzaron a escribir cuando la versión 2 aún no estaba recomendada para «producción» pero se han venido actualizando a la par de la maduración de dicha versión. La versión 2 no mantiene vínculos con los componentes de la versión 1 y no cuenta con una compatibilidad al 100% con la versión 1, dada la introducción de nuevas características, por lo que es posible hacer convivir ambas versiones (todo es cuestión del PATH
al final y administradores de entornos virtuales como conda pueden ayudar). Por supuesto, lo más recomendable es elegir y trabajar sólo con una, la más nueva, salvo que haya necesidades históricas de peso.
Tiempo después de haber iniciado esta página, en abril de 2021, volviéndola a consultar para revisar como actualizar las utilerías de AWS, leo con dificultad las explicaciones dadas en la instalación para macOS y veo muchas secciones que se quedaron en calidad de borrador. La página inicialmente fue hecha antes de que WordPress cambiara al estilo o sistema de bloques y resulta ya difícil mantener el layout clásico. Así que se ha decidido rehacerla para adaptarla a las modernas tendencias que WordPress ha adoptado. La fecha inicial de creación de la página se mantiene y se da preferencia en la presentación y explicación a la versión 2.
Para macOS y el uso de Homebrew cabe señalar lo siguiente. Todas las operaciones con este administrador de paquetes mostradas aquí se han hecho desde una cuenta privilegiada, ya que Homebrew no permite hacer un sudo
. Así, en lo que respecta a instrucciones de instalación o ejemplos de uso de los comandos de AWS CLI, a menos que se indique el uso de una cuenta privilegiada, se puede asumir que lo presentado puede servir en cualquier cuenta de usuario estándar.
macOS
Instalación
AWS CLI v2
La instalación, para todos los usuarios del equipo, como indica la documentación de AWS4, se hizo y validó como sigue:
$ cd $ cd Downloads $ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 24.2M 100 24.2M 0 0 13.5M 0 0:00:01 0:00:01 --:--:-- 13.5M $ sudo installer -pkg AWSCLIV2.pkg -target / installer: Package name is AWS Command Line Interface installer: Upgrading at base path / installer: The upgrade was successful. $ which aws /usr/local/bin/aws $ aws --version aws-cli/2.1.39 Python/3.8.8 Darwin/19.6.0 exe/x86_64 prompt/off $
AWS CLI v1
La versión 1 de AWS CLI puede ser instalada en al menos dos formas2.
- Mediante el instalador proporcionado por AWS1,2, o
- Haciendo uso de una distribución, como la que mantiene Anaconda3 o python.org, por ejemplo:
$ conda install -c conda-forge awscli
o
$ pip3 install awscli --upgrade --user
Desinstalación
AWS CLI v2
Existen varias formas en las que AWS CLI v2 pueden ser instaladas en macOS4, pero para todas ellas aparentemente aplica el mismo procedimiento de desinstalación. Las instrucciones aquí indicadas son las mismas que la documentación indica en la sección de macOS4., se reproducen nuevamente por diferencias en los resultados esperados que posiblemente se deben a particularidades de esta instalación pero que pueden ser útiles a fin de entender efectos por la forma en que se llevó a cabo la instalación. En este caso se trata de retirar una instalación que aplicó a todos los usuarios del equipo.
Desde una cuenta con permisos administrativos y empleando a BASH como shell:
1. Encontrar y listar los enlaces de los componentes a retirar. En este ejemplo se ilustra lo que podría ser inicialmente considerado como el que se cuente con dos versiones de las utilerías instaladas.
$ which aws /usr/local/bin/aws $ cd /usr/local/bin $ ls -l aws* lrwxr-xr-x 1 root admin 22 Sep 5 2020 aws -> /usr/local/aws-cli/aws lrwxr-xr-x 1 admin admin 45 Apr 29 2020 aws-vault -> /usr/local/Caskroom/aws-vault/5.4.1/aws-vault lrwxr-xr-x 1 root admin 38 Dec 7 2019 aws2 -> /usr/local/aws-cli/v2/current/bin/aws2 lrwxr-xr-x 1 root admin 48 Dec 7 2019 aws2_completer -> /usr/local/aws-cli/v2/current/bin/aws2_completer lrwxr-xr-x 1 root admin 32 Sep 5 2020 aws_completer -> /usr/local/aws-cli/aws_completer
2. La validación de la versión indica que aws
corresponde a la versión esperada pero los enlaces a aws2
y aws2_completer
parecen estar rotos.
$ aws --version aws-cli/2.0.46 Python/3.7.4 Darwin/19.6.0 exe/x86_64 $ aws2 --version -bash: aws2: command not found $ cd /usr/local/aws-cli/v2/ -bash: cd: /usr/local/aws-cli/v2/: No such file or directory
3. Se eliminaron los enlaces, cuidando de no tocar el de aws-vault
.
$ rm aws aws2 aws2_completer aws_completer
4. Se eliminó el directorio de los componentes.
$ sudo rm -rf aws-cli Password: $
Complementos
AWS Vault
AWS Vault es una herramienta para almacenar y acceder de forma segura a las credenciales de AWS en un entorno de desarrollo. AWS Vault almacena las credenciales de IAM en el almacén de llaves del sistema operativo y luego genera credenciales temporales para exponerlas al shell y las aplicaciones. Está diseñado para ser complementario a las herramientas de AWS CLI, y está al tanto de perfiles y configuración en ~/.aws/config
. La instalación de AWS Vault se hace a través de Homebrew.
$ brew cask install aws-vault ==> Downloading https://github.com/99designs/aws-vault/releases/download/v4.7.1/ Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/fcdd225c41944c1e9f8d445fed8958302b373cd4d461fbe1ff97a02ad3b8bbbd--aws-vault-darwin-amd64.dmg ==> Verifying SHA-256 checksum for Cask 'aws-vault'. ==> Installing Cask aws-vault ==> Linking Binary 'aws-vault' to '/usr/local/bin/aws-vault'. 🍺 aws-vault was successfully installed! $
Desinstalación
Para desinstalar AWS Vault (lo que se muestra es asumiendo que es lo único instalado con Homebrew):
$ brew cask list aws-vault $ brew cask remove aws-vault ==> Uninstalling Cask aws-vault ==> Unlinking Binary '/usr/local/bin/aws-vault'. ==> Purging files for version 4.7.1 of Cask aws-vault $
Configuración
Antes de poder hacer uso del AWS CLI es necesario configurar las credenciales de acceso. Considerando las buenas prácticas de seguridad sugeridas por AWS, lo más recomendable es crear un usuario que se destinado para acceso programático, el cual se asigne a un grupo y a dicho grupo las políticas de acceso apropiadas.
Si, como se ha mencionado, el usuario con el que se hará uso para es para uso programático, al momento de su creación claves de acceso y el secreto asociado serán devueltos (en cualquier otro caso, en todo momento se pueden generar— e invalidar —estas claves de acceso desde la consola de AWS. Con dichas credenciales:
$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json
Las credenciales y valores colocados en el ejemplo corresponden al mostrado en la documentación de AWS5, substituirlos por los apropiados.
Referencias
- «Installing the AWS CLI«, Amazon, Inc., Visited: 2019.12.08. URL: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html.
- «Installing the AWS CLI version 1«, Amazon, Inc., Visited: 2019.12.08. URL: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html.
- «how to install AWSCLI on a Anaconda python distribution,» Stackoverflow, web. Asked: 2016.05.17; visited: 2020.08.13. URL: https://stackoverflow.com/questions/37282994/how-to-install-awscli-on-a-anaconda-python-distribution.
- «Installing, updating, and uninstalling the AWS CLI version 2«, Amazon, Inc., Visited: 2021.04.23. URL: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html.
- «AWS Command Line Interface. User Guide», Amazon, Inc., Visited: 2021.04.23. URL: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html.
|
© Todos los derechos reservados. Dr. Eduardo René Rodríguez Avila |
Creación: 2019.07.11 Última actualización: 2021.04.23 |
|||
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto. |