AWS Command Line Interface: Guía Del Usuario
AWS Command Line Interface: Guía Del Usuario
AWS Command Line Interface: Guía Del Usuario
Las marcas comerciales y la imagen comercial de Amazon no se pueden utilizar en relación con ningún producto o
servicio que no sea de Amazon de ninguna manera que pueda causar confusión entre los clientes y que menosprecie
o desacredite a Amazon. Todas las demás marcas comerciales que no son propiedad de Amazon son propiedad de
sus respectivos propietarios, que pueden o no estar afiliados, conectados o patrocinados por Amazon.
AWS Command Line Interface Guía del usuario
Table of Contents
....................................................................................................................................................... vii
¿Qué es la AWS CLI? ........................................................................................................................ 1
AWS CLIVersiones ..................................................................................................................... 1
Mantenimiento y soporte para las versiones principales del SDK ........................................................ 1
Acerca de Amazon Web Services ................................................................................................. 2
AWS CLIVersiones de ................................................................................................................. 2
AWS CLIVERSION 2 .......................................................................................................... 2
AWS CLIVERSION 1 .......................................................................................................... 2
Uso de los ejemplos ................................................................................................................... 3
Documentación y recursos adicionales .......................................................................................... 4
AWS CLIDocumentación y recursos ...................................................................................... 4
OtrosAWSSDK de .............................................................................................................. 4
Instalación de AWS CLI ...................................................................................................................... 6
AWS CLIVersión 2 ...................................................................................................................... 6
Docker .............................................................................................................................. 6
Linux ............................................................................................................................... 12
macOS ............................................................................................................................ 20
Windows .......................................................................................................................... 25
AWS CLIVersión 1 .................................................................................................................... 26
Amazon Linux .................................................................................................................. 27
Linux ............................................................................................................................... 28
macOS ............................................................................................................................ 35
Windows .......................................................................................................................... 41
Virtualenv ........................................................................................................................ 44
Configuración de la AWS CLI ............................................................................................................. 47
Fundamentos de configuración ................................................................................................... 47
Configuración rápida con aws configure .......................................................................... 48
ID de clave de acceso y clave de acceso secreta .................................................................. 48
Region ............................................................................................................................ 49
Formato de salida ............................................................................................................. 49
Profiles ............................................................................................................................ 50
Ajustes de configuración y precedencia ................................................................................ 50
Opciones de los archivos de configuración y credenciales ............................................................... 51
¿Dónde se almacenan las opciones de configuración? ........................................................... 51
Establecer y ver las opciones de configuración ...................................................................... 52
Configuraciones del archivo config admitidas ...................................................................... 53
Perfiles con nombre .................................................................................................................. 64
Uso de perfiles con la AWS CLI ......................................................................................... 65
Configuración de la AWS CLI para usar AWS Single Sign-On .......................................................... 66
Configuración de un perfil con nombre para que utilice AWS SSO ............................................ 66
Uso de un perfil con nombre habilitado de AWS SSO ............................................................ 69
Variables de entorno ................................................................................................................. 71
Cómo configurar las variables de entorno ............................................................................. 72
Variables de entorno que admite la AWS CLI ....................................................................... 72
Opciones de línea de comandos ................................................................................................. 75
Finalización de comandos .......................................................................................................... 78
Cómo funciona ................................................................................................................. 79
Configuración de la finalización de comandos en Linux o macOS ............................................. 79
Configuración de la finalización de comandos en Windows ...................................................... 82
Verifique la finalización de comandos .................................................................................. 82
Reintentos ............................................................................................................................... 82
Modos de reintentos disponibles ......................................................................................... 83
Configuración de un modo de reintento ................................................................................ 84
Visualización de registros de reintentos ................................................................................ 85
iii
AWS Command Line Interface Guía del usuario
iv
AWS Command Line Interface Guía del usuario
v
AWS Command Line Interface Guía del usuario
vi
AWS Command Line Interface Guía del usuario
Python 2.7, 3.4 y 3.5 están en desuso paraAWS CLIVersión 1. Para obtener más información,
consulteAWS CLISección 1 deAcerca de laAWS CLIversiones.
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.
vii
AWS Command Line Interface Guía del usuario
AWS CLIVersiones
• Conchas de Linux— Utilice programas de shell comunes comobash,zsh, ytcshPara ejecutar comandos
en Linux o MacOS.
• Línea de comandos de Windows: en Windows, ejecute comandos en el símbolo del sistema de Windows
o en PowerShell.
• De forma remota— Ejecute comandos en instancias de Amazon Elastic Compute Cloud (Amazon EC2) a
través de un programa de terminal remoto, como PuTTY o SSH, o conAWS Systems Manager.
La AWS CLI proporciona acceso directo a las API públicas de los servicios de AWS. Puede explorar
las capacidades de un servicio con la AWS CLI y desarrollar scripts de shell para administrar los
recursos. Además de los comandos equivalentes de la API de bajo nivel, varios servicios de AWS ofrecen
personalizaciones para la AWS CLI. Las personalizaciones pueden incluir comandos de un nivel superior
que simplifican el uso de un servicio con una API compleja.
AWS CLIVersiones
La AWS CLI está disponible en dos versiones y la información de esta guía se aplica a ambas versiones a
menos que se indique lo contrario.
• VERSION 2.x— La versión actual, generalmente disponible delAWS CLIque está diseñada para ser
utilizada en entornos de producción.
• VERSION 1.x— La versión anterior deAWS CLIestá disponible para compatibilidad con versiones
anteriores.
Para obtener más información sobre las distintas versiones, consulteAcerca de laAWS CLIVersiones
de (p. 2)
1
AWS Command Line Interface Guía del usuario
Acerca de Amazon Web Services
$ aws --version
aws-cli/2.1.29 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/2.0.0
AWS CLIVERSION 2
LaAWS CLILa versión 2 es la versión principal más reciente deAWS CLIy es compatible con todas las
características más recientes. Algunas características introducidas en la versión 2 no son compatibles con
la versión 1 y debe realizar una actualización para acceder a esas características. Hay algunos cambios
importantes de la versión 1 que pueden requerir que se modifiquen los scripts. Para obtener una lista de
los cambios importantes en la versión 2, consulteRomper cambios: migrar desdeAWS CLIVersión 1 a
versión 2 (p. 218).
LaAWS CLILa versión 2 se puede instalar solo como un instalador empaquetado. Aunque es posible
encontrarlo en los administradores de paquetes, estos son paquetes no compatibles y no oficiales que no
han sido generados ni están administrados porAWS. Le recomendamos que solamente instale la AWS CLI
desde los puntos de distribución oficiales de AWS, tal y como se indica en esta guía.
Para instalar elAWS CLIPara la versión 2 deInstalar, actualizar y desinstalar elAWS CLIVersión
2 (p. 6).
Para ver el historial de versiones, consulte laAWS CLIRegistro de cambios de la versión 2enGitHub.
AWS CLIVERSION 1
Warning
Python 2.7 fue obsoleto por la Python Software Foundation el 1 de enero de 2020. En el futuro, los
clientes que utilizan elAWS CLIversión 1 debería pasar a usar Python 3, con un mínimo de Python
2
AWS Command Line Interface Guía del usuario
Uso de los ejemplos
3.6. El soporte de Python 2.7 está obsoleto para las nuevas versiones de laAWS CLIversión 1 a
partir del 15/7/2021. Python 3.4 y 3.5 está obsoleto a partir del 1/2/2021.
Para seguir utilizandoAWS CLIversión 1 con versiones anteriores de Python, consulte la matriz de
soporte de versiones de Python a continuación.
Para obtener instrucciones de instalación de Python, consulteDescargar Pythonen la página de
PythonGuía para principiantes.
LaAWS CLILa versión 1 es laAWS CLIy seguimos ofreciendo soporte. Sin embargo, no será posible
obtener en laAWS CLIes posible que la versión 2 no se devuelva a laAWS CLIVersión 1. Para utilizar estas
características, debe instalar laAWS CLIVersión 2.
LaAWS CLIversión 1 se crea usando el SDK para Python y, por lo tanto, requiere que instale una versión
compatible de Python.
Para instalar elAWS CLIPara la versión 1 deInstalar, actualizar y desinstalar elAWS CLIVersión
1 (p. 26).
Para ver el historial de versiones, consulte laAWS CLIRegistro de cambios de versión 1enGitHub.
• Pregunta— El símbolo del sistema utiliza el símbolo de Linux y se muestra como ($ ). En los comandos
específicos de Windows, C:\> se utiliza como símbolo del sistema. No incluya el símbolo al escribir
comandos.
• Directory— Cuando los comandos se deben ejecutar desde un directorio específico, el nombre del
directorio se muestra antes del símbolo de comando.
• Entradas de usuario— El texto del comando que usted escriba en la línea de comando se formatea
comouser input.
• Texto reemplazableTexto variable, incluidos los nombres de los recursos que usted elija o los ID
generados porAWSque debe incluir en los comandos, tiene el formato deTexto reemplazable. En
comandos de varias líneas o comandos en los que se requiere una entrada específica desde el teclado,
los comandos de teclado también se pueden mostrar como texto reemplazable.
• Salida— Salida devuelta porAWSse muestra bajo la entrada del usuario, y se formatea comocomputer
output.
Los siguientes ejemplos deaws configureEjemplo de comando muestra la entrada del usuario, el texto
reemplazable y la salida:
3
AWS Command Line Interface Guía del usuario
Documentación y recursos adicionales
2. La AWS CLI devuelve líneas de texto, solicitándole que introduzca información adicional.
3. Introduzca cada una de sus claves de acceso y después pulse Intro.
4. A continuación, especifique el nombre de una región de AWS en el formato que se muestra y pulse
Intro. Después, vuelva a pulsar Intro para omitir la configuración del formato de salida.
5. El comando Intro final se muestra como texto reemplazable porque no hay entrada del usuario para
esa línea.
$ 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]: ENTER
El siguiente ejemplo muestra un comando simple con salida. Para usar este ejemplo, introduzca el texto
completo del comando (el texto resaltado después del símbolo del sistema) y pulse Intro. El nombre
del grupo de seguridad, my-sg, se puede sustituir por el nombre del grupo de seguridad deseado. El
documento JSON, incluidas las llaves, produce una salida. Si configura la CLI para producir la salida
en formado de texto o tabla, se aplicará un formato diferente a la misma. JSON es el formato de salida
predeterminado.
OtrosAWSSDK de
Según su caso de uso, es posible que desee elegir uno de losAWSSDK o enAWS Tools for PowerShell:
4
AWS Command Line Interface Guía del usuario
OtrosAWSSDK de
5
AWS Command Line Interface Guía del usuario
AWS CLIVersión 2
• La versión 2‐ es la versión principal más reciente de laAWS CLIY es compatible con todas las
características más recientes. Para obtener más información sobre laAWS CLIPara la versión 2 deAWS
CLIVERSION 2 (p. 2).
• Versión 1‐ es el originalAWS CLIY seguimos ofreciendo soporte. Sin embargo, las principales
características nuevas introducidas en laAWS CLIes posible que la versión 2 no se pueda retroceder
alAWS CLILanzamiento de versión 1. Para obtener más información sobre laAWS CLIPara la versión 1
deAWS CLIVERSION 1 (p. 2).
Para obtener instrucciones sobre la instalación, actualización y desinstalación deAWS CLI, seleccione su
versión:
Versiones
• Instalar, actualizar y desinstalar elAWS CLIVersión 2 (p. 6)
• Instalar, actualizar y desinstalar elAWS CLIVersión 1 (p. 26)
6
AWS Command Line Interface Guía del usuario
Docker
Las imágenes oficiales de Docker proporcionan aislamiento, portabilidad y seguridad que AWS apoya
y mantiene directamente. Esto le permite utilizar laAWS CLIVersión 2 en un entorno basado en
contenedores sin tener que administrar la instalación usted mismo.
Note
Temas
• Prerequisites (p. 7)
• Ejecute el oficialAWS CLIimagen de Docker de versión 2 (p. 7)
• Uso de versiones y etiquetas específicas (p. 8)
• Actualización a la imagen de Docker más reciente (p. 8)
• Compartir archivos de host, credenciales, variables de entorno y configuración (p. 8)
• Acortamiento del comando Docker (p. 11)
Prerequisites
Debe tener instalado Docker. Para obtener instrucciones de instalación, consulte el sitio web de Docker.
Para verificar la instalación de Docker, ejecute el siguiente comando y confirme que hay un resultado.
$ docker --version
Docker version 19.03.1
• docker run --rm -it amazon/aws-cli— El equivalente de laawsejecutable. Cada vez que
ejecuta este comando, Docker hace girar un contenedor de la imagen amazon/aws-cli descargada y
ejecuta el comando aws. De forma predeterminada, la imagen Docker utiliza la versión más reciente de
laAWS CLIVersión 2
Por ejemplo, para llamar al comando aws --version en Docker, ejecute lo siguiente.
7
AWS Command Line Interface Guía del usuario
Docker
Para obtener más información sobre el comando docker run, consulte la guía de referencia de Docker.
8
AWS Command Line Interface Guía del usuario
Docker
Windows PowerShell
Para obtener más información acerca la etiqueta -v y el montaje, consulte la guía de referencia de Docker.
Windows PowerShell
Puede llamar a variables de entorno del sistema específicas mediante la-eIndicador. Para utilizar una
variable de entorno, llámelo por su nombre.
Windows PowerShell
9
AWS Command Line Interface Guía del usuario
Docker
objeto hello en el directorio /aws del contenedor, el archivo también se guarda en el directorio de trabajo
actual del sistema de host.
Windows
Windows PowerShell
Para confirmar que el archivo descargado existe en el sistema de archivos local, ejecute lo siguiente.
$ cat hello
Hello from Docker!
Windows
$ type hello
Hello from Docker!
Windows
Windows PowerShell
10
AWS Command Line Interface Guía del usuario
Docker
Windows PowerShell
C:\> Set-Alias -Name aws -Value 'docker run --rm -it amazon/aws-cli: $*'
• Para acceder al sistema de archivos host y a las opciones de configuración cuando se utilizan comandos
de aws, ejecute lo siguiente.
Linux and macOS
Windows PowerShell
C:\> Set-Alias -Name aws -Value 'docker run --rm -it -v $env:userprofile\.aws:/
root/.aws -v %cd%\aws amazon/aws-cli $*'
• Para asignar una versión específica para usarla en su alias de aws, agregue la etiqueta de versión.
Linux and macOS
Windows PowerShell
C:\> Set-Alias -Name aws -Value 'docker run --rm -it -v $env:userprofile\.aws:/
root/.aws -v %cd%\aws amazon/aws-cli:2.0.6 $*'
11
AWS Command Line Interface Guía del usuario
Linux
Una vez configurado el alias, podrá ejecutar laAWS CLIVersión 2 desde dentro de un contenedor Docker
como si estuviera instalado en su sistema host.
$ aws --version
aws-cli/2.1.29 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.0.0dev10
Las versiones 1 y 2 de la AWS CLI utilizan el mismo nombre de comando de aws. Si tiene ambas
versiones instaladas, el equipo utiliza la primera que encuentra en la ruta de búsqueda. Si ya
instalóAWS CLIPara usar la versión 1, le recomendamos que realice una de las siguientes
acciones para usarAWS CLIVersión 2:
Para obtener información sobre cómo romper cambios entre la versión 1 y 2, consulteRomper
cambios: migrar desdeAWS CLIVersión 1 a versión 2 (p. 218).
Temas
• Requisitos previos para Linux (p. 12)
• Instalación delAWS CLIVersión 2 de Linux (p. 13)
• Actualizar elAWS CLIVersión 2 de Linux (p. 15)
• Desinstalación deAWS CLIVersión 2 de Linux (p. 17)
• Verificación de la integridad y autenticidad de los archivos de instalador descargados (p. 18)
12
AWS Command Line Interface Guía del usuario
Linux
Proporcionamos los pasos en un grupo fácil de copiar y pegar basado en si usa Linux de 64 bits o Linux
ARM. Consulte las descripciones de cada línea en los pasos que se indican a continuación.
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre del
archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-linux-
x86_64-2.0.30.zipSe obtiene el siguiente resultado:
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o
"awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
Linux ARM
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre del
archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-linux-
aarch64-2.0.30.zipSe obtiene el siguiente resultado:
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip" -o
"awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
13
AWS Command Line Interface Guía del usuario
Linux
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o
"awscliv2.zip"
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-
linux-x86_64-2.0.30.zipSe obtiene el siguiente resultado:
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o
"awscliv2.zip"
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
Linux ARM
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o
"awscliv2.zip"
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-
linux-aarch64-2.0.30.zipSe obtiene el siguiente resultado:
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip"
-o "awscliv2.zip"curl "https://awscli.amazonaws.com/awscli-exe-linux-
x86_64-2.0.30.zip" -o "awscliv2.zip"
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
• Descargue desde la URL: para descargar el instalador con su navegador, utilice una de las
direcciones URL siguientes. Puede verificar la integridad y autenticidad del archivo de instalación
descargado antes de extraer (descomprimir) el paquete. Para obtener más información, consulte
Verificación de la integridad y autenticidad de los archivos de instalador descargados (p. 18).
Linux x86 (64-bit)
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-
linux-x86_64-2.0.30.zipSe obtiene el siguiente resultado:https://awscli.amazonaws.com/
awscli-exe-linux-x86_64-2.0.30.zip
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
Linux ARM
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-
exe-linux-aarch64-2.0.30.zipSe obtiene el siguiente resultado:https://
awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip
14
AWS Command Line Interface Guía del usuario
Linux
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
2. (Opcional) Verifique la integridad del archivo zip siguiendo los pasos dethe section called “Verificación
de la integridad y autenticidad de los archivos de instalador descargados” (p. 18).
3. Descomprima el instalador. Si su distribución de Linux no tiene un comando unzip integrado, use un
equivalente para descomprimirlo. El siguiente comando de ejemplo descomprime el paquete y crea un
directorio denominado aws en el directorio actual.
$ unzip awscliv2.zip
$ sudo ./aws/install
Puede realizar la instalación sin sudo si especifica directorios en los que ya tiene permisos de
escritura. Utilice las siguientes instrucciones en el comando install para especificar la ubicación de
instalación:
• Asegúrese de que las rutas que proporcione a los parámetros -i y -b no contengan nombres
de volumen ni nombres de directorio que contengan caracteres de espacio u otros caracteres de
espacio en blanco. Si hay un espacio, la instalación falla.
• --install-diror-i: esta opción especifica el directorio en el que se copiarán todos los archivos.
5. Confirme la instalación.
$ aws --version
aws-cli/2.1.29 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/2.0.0
Mediante lacurlComando de la— Las opciones del comando de ejemplo siguiente escriben el archivo
descargado en el directorio actual con el nombre localawscliv2.zip.
15
AWS Command Line Interface Guía del usuario
Linux
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-
linux-x86_64-2.0.30.zipSe obtiene el siguiente resultado:
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o
"awscliv2.zip"
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
Linux ARM
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o
"awscliv2.zip"
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-
linux-aarch64-2.0.30.zipSe obtiene el siguiente resultado:
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip" -o
"awscliv2.zip"
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
Descargue desde la URLPara descargar el instalador con su navegador, utilice una de las direcciones
URL siguientes. Puede verificar la integridad y autenticidad del archivo de instalación después de
descargarlo. Para obtener más información antes de descomprimir el paquete, consulte Verificación de
la integridad y autenticidad de los archivos de instalador descargados (p. 18).
Para una versión específica de laAWS CLI: Añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-
linux-x86_64-2.0.30.zipSe obtiene el siguiente resultado:https://awscli.amazonaws.com/
awscli-exe-linux-x86_64-2.0.30.zip. Para obtener una lista de las versiones, consulte elAWS
CLIRegistro de cambios de versión 2enGitHub.
Linux ARM
Para una versión específica de laAWS CLI: Añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-
16
AWS Command Line Interface Guía del usuario
Linux
$ unzip awscliv2.zip
3. Para asegurarse de que la actualización se instala en la misma ubicación que la actualAWS CLI,
busque el enlace simbólico y el directorio de instalación existentes.
• Utilice el comando which para buscar el enlace simbólico. Esto le dará la ruta que puede utilizar
con el parámetro --bin-dir.
$ which aws
/usr/local/bin/aws
• Utilice el comando ls para buscar el directorio al que apunta el enlace simbólico. Esto le dará la
ruta que puede utilizar con el parámetro --install-dir.
$ ls -l /usr/local/bin/aws
lrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/aws -> /usr/local/aws-
cli/v2/current/bin/aws
4. Utilice la información del enlace simbólico y del instalador para construir el comando install con el
parámetro --update.
5. Confirme la instalación.
$ aws --version
aws-cli/2.1.29 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/2.0.0
• Utilice el comando which para encontrar el enlace simbólico. Se muestra la ruta que utilizó con el
parámetro --bin-dir.
$ which aws
/usr/local/bin/aws
• Utilice el comando ls para buscar el directorio al que apunta el enlace simbólico. Esto le da la ruta
que utilizó con el parámetro --install-dir.
$ ls -l /usr/local/bin/aws
lrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/aws -> /usr/local/aws-
cli/v2/current/bin/aws
2. Elimine los dos enlaces simbólicos del directorio --bin-dir. Si su cuenta de usuario tiene permiso
de escritura en estos directorios, no es necesario que utilice sudo.
17
AWS Command Line Interface Guía del usuario
Linux
$ sudo rm /usr/local/bin/aws
$ sudo rm /usr/local/bin/aws_completer
1. Descargue e instale el comando gpg usando su administrador de paquetes. Para obtener más
información acerca de GnuPG, consulte el sitio web de GnuPG.
2. Para crear el archivo de clave pública, cree un archivo de texto y pegue el siguiente texto en él:
mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUG
ZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzx
PqGl0mkxImLNbGWoi6Lto0LYxqHN2iQtzlwTVmq9733zd3XfcXrZ3+LblHAgEt5G
TfNxEKJ8soPLyWmwDH6HWCnjZ/aIQRBTIQ05uVeEoYxSh6wOai7ss/KveoSNBbYz
gbdzoqI2Y8cgH2nbfgp3DSasaLZEdCSsIsK1u05CinE7k2qZ7KgKAUIcT/cR/grk
C6VwsnDU0OUCideXcQ8WeHutqvgZH1JgKDbznoIzeQHJD238GEu+eKhRHcz8/jeG
94zkcgJOz3KbZGYMiTh277Fvj9zzvZsbMBCedV1BTg3TqgvdX4bdkhf5cH+7NtWO
lrFj6UwAsGukBTAOxC0l/dnSmZhJ7Z1KmEWilro/gOrjtOxqRQutlIqG22TaqoPG
fYVN+en3Zwbt97kcgZDwqbuykNt64oZWc4XKCa3mprEGC3IbJTBFqglXmZ7l9ywG
EEUJYOlb2XrSuPWml39beWdKM8kzr1OjnlOm6+lpTRCBfo0wa9F8YZRhHPAkwKkX
XDeOGpWRj4ohOx0d2GWkyV5xyN14p2tQOCdOODmz80yUTgRpPVQUtOEhXQARAQAB
tCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4WIQT7
Xbd/1cEYuAURraimMQrMRnJHXAUCXYKvtQIbAwUJB4TOAAULCQgHAgYVCgkICwIE
FgIDAQIeAQIXgAAKCRCmMQrMRnJHXJIXEAChLUIkg80uPUkGjE3jejvQSA1aWuAM
yzy6fdpdlRUz6M6nmsUhOExjVIvibEJpzK5mhuSZ4lb0vJ2ZUPgCv4zs2nBd7BGJ
MxKiWgBReGvTdqZ0SzyYH4PYCJSE732x/Fw9hfnh1dMTXNcrQXzwOmmFNNegG0Ox
au+VnpcR5Kz3smiTrIwZbRudo1ijhCYPQ7t5CMp9kjC6bObvy1hSIg2xNbMAN/Do
ikebAl36uA6Y/Uczjj3GxZW4ZWeFirMidKbtqvUz2y0UFszobjiBSqZZHCreC34B
hw9bFNpuWC/0SrXgohdsc6vK50pDGdV5kM2qo9tMQ/izsAwTh/d/GzZv8H4lV9eO
tEis+EpR497PaxKKh9tJf0N6Q1YLRHof5xePZtOIlS3gfvsH5hXA3HJ9yIxb8T0H
QYmVr3aIUes20i6meI3fuV36VFupwfrTKaL7VXnsrK2fq5cRvyJLNzXucg0WAjPF
RrAGLzY7nP1xeg1a0aeP+pdsqjqlPJom8OCWc1+6DWbg0jsC74WoesAqgBItODMB
rsal1y/q+bPzpsnWjzHV8+1/EtZmSc8ZUGSJOPkfC7hObnfkl18h+1QtKTjZme4d
H17gsBJr+opwJw/Zio2LMjQBOqlm3K1A4zFTh7wBC7He6KPQea1p2XAMgtvATtNe
YLZATHZKTJyiqA==
=vYOk
-----END PGP PUBLIC KEY BLOCK-----
18
AWS Command Line Interface Guía del usuario
Linux
3. Importe la clave pública de la AWS CLI con el siguiente comando, sustituyendo public-key-file-
name por el nombre del archivo de la clave pública que ha creado.
4. Descargue el archivo de firma de la AWS CLI del paquete que descargó. Tiene la misma ruta y el
mismo nombre que el archivo .zip al que corresponde, pero con la extensión .sig. En los siguientes
ejemplos, lo guardaremos en el directorio actual como un archivo llamado awscliv2.sig.
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-
linux-x86_64-2.0.30.zip.sigSe obtiene el siguiente resultado:
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
Linux ARM
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión2.0.30Seríaawscli-exe-
linux-aarch64-2.0.30.zip.sigSe obtiene el siguiente resultado:
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
5. Verifique la firma pasando los nombres de archivo .sig y .zip como parámetros al comando gpg.
19
AWS Command Line Interface Guía del usuario
macOS
Important
Las versiones 1 y 2 de la AWS CLI utilizan el mismo nombre de comando de aws. Si tiene ambas
versiones instaladas, el equipo utiliza la primera que encuentra en la ruta de búsqueda. Si ya
instalóAWS CLIPara usar la versión 1, le recomendamos que realice una de las siguientes
acciones para usarAWS CLIVersión 2:
Para obtener información sobre cómo romper cambios entre la versión 1 y 2, consulteRomper
cambios: migrar desdeAWS CLIVersión 1 a versión 2 (p. 218).
Temas
• Prerequisites (p. 20)
• Instalar y actualizar laAWS CLIVersión 2 con la interfaz de usuario de macOS (p. 21)
• Instalar y actualizar laAWS CLIVersión 2 con la línea de comandos de macOS (p. 22)
• Verificar la instalación de (p. 24)
• Desinstalación deAWS CLIVersión 2 (p. 24)
Prerequisites
• Apoyamos laAWS CLIEn versiones compatibles de Apple de macOS de 64 bits.
20
AWS Command Line Interface Guía del usuario
macOS
• Debido a que AWS no mantiene repositorios de terceros, no podemos garantizar que contengan la
última versión de AWS CLI.
1. En el navegador, descarmacOSpkgfile:
Note
Puede ver los registros de depuración de la instalación si presiona Cmd+L en cualquier lugar
del instalador. Esto abre un panel de registro que le permite filtrar y guardar el registro. El
archivo de registro también se guarda automáticamente en /var/log/install.log.
4. Para comprobar elAWS CLIPara ello, siga los pasos descritos enVerificar la instalación de (p. 24).
21
AWS Command Line Interface Guía del usuario
macOS
Para efectuar la instalación y la actualización para todos los usuarios mediante la línea de
comandos de macOS
Si tienesudoSi lo desea, puede instalar elAWS CLIVersión 2 para todos los usuarios del equipo.
Proporcionamos los pasos agrupados para que resulte sencillo copiarlos y pegarlos. Consulte las
descripciones de cada línea en los pasos siguientes.
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre del archivo.
Para este ejemplo, el nombre de archivo de la versión2.0.30SeríaAWSCLIV2-2.0.30.pkgSe obtiene el
siguiente resultado:
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión 2enGitHub.
1. Descargar el archivo con el comando curl. En este ejemplo, la opción -o especifica el nombre
de archivo en el que se escribe el paquete descargado. En este ejemplo, el archivo se escribe
AWSCLIV2.pkg en la carpeta actual.
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
2. Ejecute el programa installer de macOS estándar, especificando el archivo .pkg descargado
como fuente. Utilice el parámetro -pkg para especificar el nombre del paquete que se va a instalar
y el parámetro -target / para indicar la unidad en la que se instalará el paquete. Los archivos se
instalan en /usr/local/aws-cli y se crea automáticamente un symlink en /usr/local/bin.
Debe incluir sudo en el comando para conceder permisos de escritura a esas carpetas.
22
AWS Command Line Interface Guía del usuario
macOS
Instalar y actualizar solo para el usuario actual mediante la línea de comandos de macOS
1. Para especificar en qué carpeta se instala AWS CLI, debe crear un archivo XML. Es un archivo con
formato XML que se parece al siguiente ejemplo. Deje todos los valores como se muestra, excepto
que debe reemplazar la ruta/Usuarios/MiNombre de usuarioen la línea 9 con la ruta a la
carpeta que deseaAWS CLIversión 2 instalada en. La carpeta ya debe existir o se producirá un error
en el comando. En este ejemplo XML se especifica que el instalador realiza la instalación de la AWS
CLI en la carpeta /Users/myusername, donde se crea una carpeta denominada aws-cli.
2. Descargue el instalador pkg con el comando curl. En este ejemplo, la opción -o especifica el
nombre de archivo en el que se escribe el paquete descargado. En este ejemplo, el archivo se escribe
AWSCLIV2.pkg en la carpeta actual.
3. Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para obtener una lista de las versiones, consulte elAWS CLIRegistro de cambios de versión
2enGitHub.
4. Ejecute el programa installer de macOS estándar con las siguientes opciones:
• Especifique el nombre del paquete que desea instalar mediante el parámetro -pkg.
• Especifique la instalación en unsólo usuario actualEstablece el-
targetParaCurrentUserHomeDirectory.
• Especifique la ruta de acceso (relativa a la carpeta actual) y el nombre del archivo XML que creó en
el parámetro -applyChoiceChangesXML.
23
AWS Command Line Interface Guía del usuario
macOS
5. Dado que los permisos de usuario estándar normalmente no permiten escribir en las carpetas de
$PATH, el instalador en este modo no intenta agregar los enlaces simbólicos a los programas aws
y aws_completer. Para que la AWS CLI se ejecute correctamente, debe crear manualmente los
enlaces simbólicos una vez finalizado el instalador. Si su $PATH incluye una carpeta en la que puede
escribir y especifica la carpeta como la ruta de destino, puede ejecutar el siguiente comando sin
sudo. Si no tiene una carpeta en la que se pueda escribir en $PATH, debe usar sudo para obtener
permisos para escribir en la carpeta de destino especificada. La ubicación predeterminada de un
enlace simbólico es /usr/local/bin/.
Verificar la instalación de
Para comprobar que el shell puede encontrar y ejecutar el comando aws en $PATH, utilice los siguientes
comandos.
$ which aws
/usr/local/bin/aws
$ aws --version
aws-cli/2.1.29 Python/3.7.4 Darwin/18.7.0 botocore/2.0.0
1. Busque la carpeta que contiene los enlaces simbólicos al programa principal y al completer.
$ which aws
/usr/local/bin/aws
2. Con esa información, ejecute el siguiente comando para buscar la carpeta de instalación a la que
apuntan los enlaces simbólicos.
$ ls -l /usr/local/bin/aws
lrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/aws -> /usr/local/aws-
cli/aws
3. Elimine los dos enlaces simbólicos de la primera carpeta. Si su cuenta de usuario ya tiene permisos de
escritura en estas carpetas, no es necesario que utilice sudo.
$ sudo rm /usr/local/bin/aws
24
AWS Command Line Interface Guía del usuario
Windows
$ sudo rm /usr/local/bin/aws_completer
4. Elimine la carpeta de instalación principal. Use sudo para obtener acceso de escritura a la carpeta /
usr/local.
Para obtener información sobre cómo romper cambios entre la versión 1 y 2, consulteRomper
cambios: migrar desdeAWS CLIVersión 1 a versión 2 (p. 218).
Temas
• Prerequisites (p. 25)
• Instalar o actualizar laAWS CLIVersión 2 en Windows con el instalador MSI (p. 25)
• Desinstalación deAWS CLIVersión 2 de Windows (p. 26)
Prerequisites
Antes de instalar o actualizar elAWS CLIEn Windows, asegúrese de que dispone de lo siguiente:
25
AWS Command Line Interface Guía del usuario
AWS CLIVersión 1
• Para obtener una versión específica de laAWS CLI: Añada un guión y el número
de versión al nombre del archivo. Para este ejemplo, el nombre de archivo de la
versión2.0.30SeríaAWSCLIV2-2.0.30.msiSe obtiene el siguiente resultado:https://
awscli.amazonaws.com/AWSCLIV2-2.0.30.msi. Para obtener una lista de las versiones, consulte
elAWS CLIRegistro de cambios de versión 2enGitHub.
No incluya el símbolo de comando (C:\>) al escribir un comando. Estos símbolos se incluyen en los
listados del programa para diferenciar los comandos introducidos de los que devuelve la AWS CLI. En
el resto de esta guía se utiliza el símbolo del sistema genérico ($) excepto en los casos en los que un
comando es específico de Windows. Para obtener más información sobre cómo damos formato a los
ejemplos de código, consulte Mediante laAWS CLIEjemplos de (p. 3).
Si Windows no puede encontrar el programa, es posible que tenga que cerrar y volver a abrir la
ventana del símbolo del sistema para actualizar la ruta o agregar el directorio de instalación a la
variable de entorno PATH (p. 43) manualmente.
C:\> appwiz.cpl
2. Seleccione la entrada denominada AWS Command Line Interface y elija Desinstalar para iniciar el
desinstalador.
3. Confirme que desea desinstalar la AWS CLI.
Le recomendamos que utiliceAWS CLIEn su lugar, versión 2. Para obtener información acerca de cómo
instalar la versión 2, consulte Instalar, actualizar y desinstalar elAWS CLIVersión 2 (p. 6).
26
AWS Command Line Interface Guía del usuario
Amazon Linux
$ aws --version
aws-cli/1.19.3 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13
Secciones
• Prerequisites (p. 27)
• Instalar o actualizar laAWS CLIversión 1 en Amazon Linux usando pip (p. 27)
• Desinstalación deAWS CLIVersión 1 con pip (p. 28)
Prerequisites
Debe tener Python 2 versión 2.7 o posterior, o Python 3 versión 3.6 o posterior. Para obtener instrucciones
de instalación, consulte la página Downloading Python en la Guía para principiantes de Python.
Warning
1. Si tiene instalada la versión 3 o posterior de Python, recomendamos que utilice pip3. Usarpip3
installPara instalar o actualizar la última versión de laAWS CLIVersión 1 de Si ejecuta el comando
desde un entorno virtual de Python (venv), no necesita utilizar la opción --user.
27
AWS Command Line Interface Guía del usuario
Linux
$ ls -a ~
. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
• Bash–.bash_profile,.profile, o bien.bash_login
• Zsh: .zshrc
• Tcsh–.tcshrc,.cshrcor.login
b. Añada un comando de exportación al final del script de su perfil igual que en el siguiente ejemplo.
export PATH=$HOME/.local/bin:$PATH
Este comando inserta la ruta, $HOME/.local/bin en este ejemplo, delante de la variable $PATH
existente.
c. Vuelva a cargar el perfil en la sesión actual para que esos cambios surtan efecto.
$ source ~/.bash_profile
3. Para comprobar que está ejecutando la nueva versión, utilice el comando aws --version.
$ aws --version
aws-cli/1.19.3 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13
Aunque el paquete awscli está disponible en los repositorios de otros administradores de paquetes,
como apt y yum, estos no han sido generados ni están administrados ni admitidos por AWS. Le
recomendamos que solamente instale la AWS CLI desde los puntos de distribución oficiales de AWS, tal y
como se indica en esta guía.
Secciones
• Prerequisites (p. 28)
• Instalación y desinstalación de laAWS CLIVersión 1 en Linux con el instalador incluido (p. 29)
• Instalación y desinstalación de laAWS CLIVersión 1 con pip (p. 32)
Prerequisites
Debe tener Python 2 versión 2.7 o posterior, o Python 3 versión 3.6 o posterior. Para obtener instrucciones
de instalación, consulte la página Downloading Python en la Guía para principiantes de Python.
28
AWS Command Line Interface Guía del usuario
Linux
Warning
A partir del 1/2/2021 Python 3.4 y 3.5 está en desuso.
Python 2.7 fue obsoleto por elPython Software FoundationEl 1 de enero de 2020. En el futuro, los
clientes que utilizan elAWS CLIversión 1 debería pasar a usar Python 3, con un mínimo de Python
3.6. El soporte de Python 2.7 está obsoleto para las nuevas versiones de laAWS CLIversión 1 a
partir del 15/7/2021.
Para utilizar laAWS CLILa versión 1 con una versión previa de Python, debe instalar una versión
previa de laAWS CLIVersión 1 de
Para ver elAWS CLIversión 1 de la matriz de soporte de la versión de Python, consulteAcerca de
laAWS CLIVersiones de (p. 2).
Temas
• Instalación delAWS CLIVersión 1 con el instalador incluido consudo (p. 29)
• Instalación delAWS CLIVersión 1 con el instalador incluido sinsudo (p. 30)
• Desinstalación deAWS CLIInstalador incluido de la versión 1 de la (p. 32)
A continuación, se muestra un resumen de los comandos de instalación que puede cortar y pegar para que
se ejecuten como un único conjunto de comandos.
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-
bundle-1.16.312.zipSe obtiene el siguiente resultado:
Siga estos pasos desde la línea de comandos para instalar laAWS CLIVersión 1 con el instalador incluido.
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
29
AWS Command Line Interface Guía del usuario
Linux
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-
bundle-1.16.312.zipSe obtiene el siguiente resultado:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre del
archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-exe-
linux-aarch64-2.0.30.zipSe obtiene el siguiente resultado:https://s3.amazonaws.com/aws-cli/
awscli-bundle-2.0.30.zip
2. Extraiga los archivos del paquete. Si no tiene unzip para extraer los archivos, utilice el administrador
de paquetes integrado de la distribución de Linux para instalarlo.
$ unzip awscli-bundle.zip
$ aws --version
aws-cli/1.19.3 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
30
AWS Command Line Interface Guía del usuario
Linux
./awscli-bundle/install -b ~/bin/aws
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-
bundle-1.16.312.zipSe obtiene el siguiente resultado:
1. Descarga deAWS CLILa versión 1 incluye el instalador de una de las siguientes maneras.
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-
bundle-1.16.312.zipSe obtiene el siguiente resultado:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre del
archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-exe-
linux-aarch64-2.0.30.zipSe obtiene el siguiente resultado:https://s3.amazonaws.com/aws-cli/
awscli-bundle-2.0.30.zip
2. Extraiga los archivos del paquete mediante unzip. Si no tiene unzip, utilice el administrador de
paquetes integrado de la distribución de Linux para instalarlo.
$ unzip awscli-bundle.zip
$ ./awscli-bundle/install -b ~/bin/aws
$ echo $PATH | grep ~/bin // See if $PATH contains ~/bin (output will be empty if
it doesn't)
$ export PATH=~/bin:$PATH // Add ~/bin to $PATH if necessary
31
AWS Command Line Interface Guía del usuario
Linux
a. Busque el script de perfil de su shell en su carpeta de usuario. Si no está seguro de cuál es el shell
que tiene, ejecute echo $SHELL.
$ ls -a ~
. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
• Bash–.bash_profile,.profile, o bien.bash_login
• Zsh: .zshrc
• Tcsh–.tcshrc,.cshrcor.login
b. Añada un comando de exportación al final del script de su perfil igual que en el siguiente ejemplo.
export PATH=~/.local/bin:$PATH
Este comando inserta la ruta, ~/.local/bin en este ejemplo, delante de la variable PATH
existente.
c. Vuelva a cargar el perfil en la sesión actual para que esos cambios surtan efecto.
$ source ~/.bash_profile
$ aws --version
aws-cli/1.19.3 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13
Instalar pip
Si aún no ha instalado pip, puede hacerlo con el script proporcionado por Python Packaging Authority.
Ejecute pip --version para saber si su versión de Linux ya incluye Python y pip. Si tiene instalada la
versión 3 o posterior de Python, recomendamos que utilice el comando pip3.
32
AWS Command Line Interface Guía del usuario
Linux
1. Utilice el comando curl para descargar el script de instalación. El comando siguiente utiliza el
parámetro -O (letra "O" mayúscula) para especificar que el archivo descargado debe almacenarse en
el directorio actual con el mismo nombre que tiene en el host remoto.
$ curl -O https://bootstrap.pypa.io/get-pip.py
2. Ejecute el script con el comando python o python3 para descargar e instalar la versión más reciente
de pip y otros paquetes de soporte necesarios. Cuando se incluye el modificador --user, el script
instala pip en la ruta ~/.local/bin.
a. Busque el script de perfil de su shell en su carpeta de usuario. Si no está seguro de cuál es el shell
que tiene, ejecute echo $SHELL.
$ ls -a ~
. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
• Bash–.bash_profile,.profile, o bien.bash_login
• Zsh: .zshrc
• Tcsh–.tcshrc,.cshrcor.login
b. Añada un comando de exportación al final del script de su perfil igual que en el siguiente ejemplo.
export PATH=~/.local/bin:$PATH
Este comando inserta la ruta, ~/.local/bin en este ejemplo, delante de la variable PATH
existente.
c. Vuelva a cargar el perfil en la sesión actual para que esos cambios surtan efecto.
$ source ~/.bash_profile
4. Para comprobar que pip o pip3 se ha instalado correctamente, ejecute el siguiente comando.
$ pip3 --version
pip 19.2.3 from ~/.local/lib/python3.7/site-packages (python 3.7)
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,anexar un símbolo menor que<y el número
de versión al nombre del archivo. Para este ejemplo, el nombre de archivo de la
versión1.16.312Sería<1.16.312Se obtiene el siguiente resultado:
33
AWS Command Line Interface Guía del usuario
Linux
$ aws --version
aws-cli/1.19.3 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13
Para comprobar en qué carpeta instaló pip la AWS CLI, ejecute este comando.
$ which aws
/home/username/.local/bin/aws
Puede hacer referencia a esto como ~/.local/bin/ ya que /home/username se corresponde con ~ en
Linux.
Si omitió el modificador --user y, por tanto, no realizó la instalación en modo de usuario, el archivo
ejecutable podría estar en la carpeta bin de la instalación de Python. Si no sabe dónde se ha instalado
Python, ejecute este comando.
$ which python
/usr/local/bin/python
La salida puede ser la ruta a un symlink, no el archivo ejecutable real. Ejecute ls -al para ver adónde
apunta.
$ ls -al /usr/local/bin/python
/usr/local/bin/python -> ~/.local/Python/3.6/bin/python3.6
pip instala los programas en la misma carpeta que contiene la aplicación de Python. Añada esta carpeta a
la variable PATH.
1. Busque el script de perfil de su shell en su directorio de usuario. Si no está seguro de cuál es el shell
que tiene, ejecute echo $SHELL.
$ ls -a ~
. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
• Bash–.bash_profile,.profile, o bien.bash_login
• Zsh: .zshrc
• Tcsh–.tcshrc,.cshrc, o bien.login
2. Añada un comando de exportación al script de su perfil.
export PATH=~/.local/bin:$PATH
34
AWS Command Line Interface Guía del usuario
macOS
Este comando añade una ruta, ~/.local/bin en este ejemplo, a la variable PATH actual.
3. Cargue el perfil actualizado en su sesión actual.
$ source ~/.bash_profile
Secciones
• Prerequisites (p. 35)
• Instalación, actualización y desinstalación de laAWS CLIVersión 1 en macOS con el instalador
incluido (p. 35)
• Instalación, actualización y desinstalación de laAWS CLIVersión 1 con pip (p. 39)
Prerequisites
Para poder instalar laAWS CLILa versión 1 en macOS, asegúrese de tener Python 2 versión 2.7 o
posterior, o Python 3 versión 3.6 o posterior. Para obtener instrucciones de instalación, consulte la página
Downloading Python en la Guía para principiantes de Python.
Warning
A partir del 1/2/2021 Python 3.4 y 3.5 está en desuso.
Python 2.7 fue obsoleto por elPython Software FoundationEl 1 de enero de 2020. En el futuro, los
clientes que utilizan elAWS CLIversión 1 debería pasar a usar Python 3, con un mínimo de Python
3.6. El soporte de Python 2.7 está obsoleto para las nuevas versiones de laAWS CLIversión 1 a
partir del 15/7/2021.
Para utilizar laAWS CLILa versión 1 con una versión previa de Python, debe instalar una versión
previa de laAWS CLIVersión 1 de
Para ver elAWS CLIversión 1 de la matriz de soporte de la versión de Python, consulteAcerca de
laAWS CLIVersiones de (p. 2).
35
AWS Command Line Interface Guía del usuario
macOS
Temas
• Instalación delAWS CLIVersión 1 con el instalador incluido consudo (p. 36)
• Instalación delAWS CLIVersión 1 con el instalador incluido sinsudo (p. 37)
• Desinstalación deAWS CLIInstalador incluido de la versión 1 de la (p. 39)
A continuación, se muestra un resumen de los comandos de instalación que puede cortar y pegar para que
se ejecuten como un único conjunto de comandos.
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-
bundle-1.16.312.zipSe obtiene el siguiente resultado:
1. Descarga deAWS CLILa versión 1 incluye el instalador de la de una de las siguientes maneras:
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-
bundle-1.16.312.zipSe obtiene el siguiente resultado:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre del
archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-exe-
linux-aarch64-2.0.30.zipSe obtiene el siguiente resultado:https://s3.amazonaws.com/aws-cli/
awscli-bundle-2.0.30.zip
2. Extraiga (descomprima) los archivos del paquete. Si no tiene unzip, utilice el administrador de
paquetes integrado de la distribución de macOS para instalarlo.
36
AWS Command Line Interface Guía del usuario
macOS
$ unzip awscli-bundle.zip
$ aws --version
aws-cli/1.19.3 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-
bundle-1.16.312.zipSe obtiene el siguiente resultado:
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
37
AWS Command Line Interface Guía del usuario
macOS
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre
del archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-
bundle-1.16.312.zipSe obtiene el siguiente resultado:
Para una versión específica de laAWS CLI,añada un guión y el número de versión al nombre del
archivo. Para este ejemplo, el nombre de archivo de la versión1.16.312Seríaawscli-exe-
linux-aarch64-2.0.30.zipSe obtiene el siguiente resultado:https://s3.amazonaws.com/aws-cli/
awscli-bundle-2.0.30.zip
2. Extraiga los archivos del paquete. Si no tiene unzip, utilice el administrador de paquetes integrado de
la distribución de Linux para instalarlo.
$ unzip awscli-bundle.zip
$ ./awscli-bundle/install -b ~/bin/aws
$ echo $PATH | grep ~/bin // See if $PATH contains ~/bin (output will be empty if
it doesn't)
$ export PATH=~/bin:$PATH // Add ~/bin to $PATH if necessary
a. Busque el script de perfil de su shell en su carpeta de usuario. Si no está seguro de cuál es el shell
que tiene, ejecute echo $SHELL.
$ ls -a ~
. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
• Bash–.bash_profile,.profile, o bien.bash_login
• Zsh: .zshrc
• Tcsh–.tcshrc,.cshrcor.login
b. Añada un comando de exportación al final del script de su perfil igual que en el siguiente ejemplo.
export PATH=~/.local/bin:$PATH
Este comando inserta la ruta, ~/.local/bin en este ejemplo, delante de la variable PATH
existente.
38
AWS Command Line Interface Guía del usuario
macOS
c. Vuelva a cargar el perfil en la sesión actual para que esos cambios surtan efecto.
$ source ~/.bash_profile
$ aws --version
aws-cli/1.19.3 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13
Temas
• Instalar pip (p. 39)
• Instalación y actualización de la AWS CLI con pip (p. 39)
• Añada laAWS CLIVersión 1 ejecutable en la ruta de la línea de comandos de macOS (p. 40)
• Desinstalación de la AWS CLI con pip (p. 41)
Instalar pip
Si aún no ha instalado pip, puede hacerlo con el script proporcionado por Python Packaging Authority.
Ejecute pip --version para saber si su versión de Linux ya incluye Python y pip. Si tiene instalada la
versión 3 o posterior de Python, recomendamos que utilice el comando pip3.
1. Utilice el comando curl para descargar el script de instalación. El comando siguiente utiliza el
parámetro -O (letra «O» mayúscula) para especificar que el archivo descargado debe almacenarse en
la carpeta actual con el mismo nombre que tiene en el host remoto.
$ curl -O https://bootstrap.pypa.io/get-pip.py
2. Ejecute el script con el comando python o python3 para descargar e instalar la versión más reciente
de pip y otros paquetes de soporte necesarios. Cuando se incluye el modificador --user, el script
instala pip en la ruta ~/.local/bin.
39
AWS Command Line Interface Guía del usuario
macOS
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,anexar un símbolo menor que<y el número
de versión al nombre del archivo. Para este ejemplo, el nombre de archivo de la
versión1.16.312Sería<1.16.312Se obtiene el siguiente resultado:
$ aws --version
aws-cli/1.19.3 Python/3.7.4 Darwin/18.7.0 botocore/1.13
Example Ubicación de instalación de la AWS CLI: macOS con Python 3.6 y pip (modo usuario)
~/Library/Python/3.7/bin
Sustituya la versión de Python que tiene con la versión del ejemplo anterior.
$ which python
/usr/local/bin/python
La salida puede ser la ruta a un symlink, no el programa real. Ejecute ls -al para ver adónde apunta.
$ ls -al /usr/local/bin/python
~/Library/Python/3.7/bin/python3.7
pip instala los programas en la misma carpeta que contiene la aplicación de Python. Añada esta carpeta a
la variable PATH.
1. Busque el script de perfil de su shell en su directorio de usuario. Si no está seguro de cuál es el shell
que tiene, ejecute echo $SHELL.
$ ls -a ~
. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
• Bash–.bash_profile,.profile, o bien.bash_login
• Zsh: .zshrc
40
AWS Command Line Interface Guía del usuario
Windows
• Tcsh–.tcshrc,.cshrc, o bien.login
2. Añada un comando de exportación al script de su perfil.
export PATH=~/.local/bin:$PATH
Este comando añade una ruta, ~/.local/bin en este ejemplo, a la variable PATH actual.
3. Cargue el perfil actualizado en su sesión actual.
$ source ~/.bash_profile
No incluya el símbolo de comando (C:\>) al escribir un comando. Estos símbolos se incluyen en los
listados del programa para diferenciar los comandos introducidos de los que devuelve la AWS CLI. En
el resto de esta guía se utiliza el símbolo del sistema genérico ($) excepto en los casos en los que un
comando es específico de Windows.
Temas
• Instalación, actualización y desinstalación de laAWS CLIVersión 1 con el instalador MSI (p. 41)
• Instalación, actualización y desinstalación de laAWS CLIVersión 1 con Python y pip en
Windows (p. 42)
• Añada laAWS CLIVersión 1 ejecutable a la ruta de la línea de comandos (p. 43)
41
AWS Command Line Interface Guía del usuario
Windows
Si Windows no puede encontrar el programa, es posible que tenga que cerrar y volver a abrir el
símbolo del sistema para actualizar la ruta o añadir el directorio de instalación a la variable de entorno
PATH (p. 43) manualmente.
C:\> appwiz.cpl
2. Seleccione la entrada denominada AWS Command Line Interface y elija Desinstalar para iniciar el
desinstalador.
3. Confirme que desea desinstalar la AWS CLI.
Prerequisites
Debe tener Python 2 versión 2.7 o posterior, o Python 3 versión 3.6 o posterior. Para obtener instrucciones
de instalación, consulte la página Downloading Python en la Guía para principiantes de Python.
Warning
42
AWS Command Line Interface Guía del usuario
Windows
Para obtener la versión más reciente de laAWS CLI,Utilice el siguiente bloque de comandos:
Para una versión específica de laAWS CLI,anexar un símbolo menor que<y el número
de versión al nombre del archivo. Para este ejemplo, el nombre de archivo de la
versión1.16.312Sería<1.16.312Se obtiene el siguiente resultado:
2. Verifique que laAWS CLILa versión 1 está instalada correctamente. Si no hay respuesta, consulte la
sección Añada laAWS CLIVersión 1 ejecutable a la ruta de la línea de comandos (p. 43).
Es posible que deba reiniciar la ventana del símbolo del sistema o el equipo para eliminar todos los
archivos.
1. Utilice el comando where para buscar la ubicación del archivo aws. De forma predeterminada, el
comando where muestra dónde se encuentra un programa especificado en la variable PATH del
sistema.
Las rutas que aparecen dependen de la plataforma y del método utilizado para instalar la AWS CLI.
Los nombres de carpeta que incluyen los números de versión puede variar. Estos ejemplos reflejan el
uso de Python versión 3.7. Reemplace la versión por el número de versión que está utilizando, según
sea necesario. Las rutas típicas son las siguientes:
43
AWS Command Line Interface Guía del usuario
Virtualenv
Para encontrar dónde está instalado el programa de aws, ejecute el siguiente comando.
Si el comando where devuelve el siguiente error, no está en la variable PATH del sistema y no
puede ejecutarse simplemente escribiendo su nombre.
En ese caso, ejecute el comando where con el parámetro /R path para indicarle que busque
en todas las carpetas y agregue después la ruta manualmente. Utilice la línea de comandos o el
Explorador de archivos para averiguar en qué lugar del equipo está instalado.
Temas
• Prerequisites (p. 45)
44
AWS Command Line Interface Guía del usuario
Virtualenv
Prerequisites
• La versión 2.7 o posterior de Python 2, o la versión 3.6 o posterior de Python 3. Para obtener
instrucciones de instalación, consulte la página Downloading Python en la Guía para principiantes de
Python.
Warning
$ virtualenv ~/cli-ve
También puede utilizar la opción -p para especificar una versión de Python distinta de la
predeterminada.
Linux o macOS
$ source ~/cli-ve/bin/activate
Windows
$ %USERPROFILE%\cli-ve\Scripts\activate
El símbolo del sistema cambia para mostrar que el entorno virtual está activo.
(cli-ve)~$
$ aws --version
aws-cli/1.19.3 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13
6. Puede utilizar el comando deactivate para salir del entorno virtual. Siempre que inicie una sesión
nueva, debe activar el entorno de nuevo.
46
AWS Command Line Interface Guía del usuario
Fundamentos de configuración
AWS requiere que todas las solicitudes entrantes estén firmadas criptográficamente. El AWS
CLI lo hace automáticamente. La "firma" incluye una marca temporal de fecha/hora. Por lo tanto,
debe asegurarse de que la fecha y la hora de su equipo se haya establecido correctamente.
De lo contrario, si la fecha y la hora de la firma difieren en gran medida de la fecha y la hora
reconocidas por el servicio de AWS, AWS rechazará la solicitud.
Temas
• Fundamentos de configuración (p. 47)
• Opciones de los archivos de configuración y credenciales (p. 51)
• Perfiles con nombre (p. 64)
• Configuración de la AWS CLI para usar AWS Single Sign-On (p. 66)
• Variables de entorno para configurar la AWS CLI (p. 71)
• Opciones de línea de comandos (p. 75)
• Finalización de comandos (p. 78)
• AWS CLIretries (p. 82)
• Obtención de credenciales con un proceso externo (p. 86)
• Uso de credenciales para metadatos de instancias de Amazon EC2 (p. 87)
• Uso de un proxy HTTP (p. 89)
• Uso de un rol de IAM en laAWS CLI (p. 90)
Fundamentos de configuración
En esta sección, se explica cómo se configuran las opciones básicas que utiliza AWS Command Line
Interface (AWS CLI) para interactuar con AWS. Entre ellos, se incluyen las credenciales de seguridad, el
formato de salida predeterminado y la región de AWS predeterminada.
Note
AWS requiere que todas las solicitudes entrantes estén firmadas criptográficamente. El AWS
CLI lo hace automáticamente. La "firma" incluye una marca temporal de fecha/hora. Por lo tanto,
debe asegurarse de que la fecha y la hora de su equipo se haya establecido correctamente.
De lo contrario, si la fecha y la hora de la firma difieren en gran medida de la fecha y la hora
reconocidas por el servicio de AWS, AWS rechazará la solicitud.
Temas
• Configuración rápida con aws configure (p. 48)
• ID de clave de acceso y clave de acceso secreta (p. 48)
• Region (p. 49)
• Formato de salida (p. 49)
47
AWS Command Line Interface Guía del usuario
Configuración rápida con aws configure
La AWS CLI almacena esta información en un perfil (una colección de opciones) con el nombre default
en el archivo credentials. De forma predeterminada, la información de este perfil se utiliza cuando
se ejecuta unAWS CLIque no especifique explícitamente un perfil que se va a utilizar. Para obtener
más información sobre el archivo credentials, consulte Opciones de los archivos de configuración y
credenciales (p. 51)
En el ejemplo siguiente se muestran los valores de ejemplo. Remplácelos con sus propios valores, tal y
como se describe en las siguientes secciones.
$ 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
El único momento en el que puede ver o descargar la clave de acceso secreta es cuando crea las claves.
No puede recuperarlas más adelante. Sin embargo, puede crear nuevas claves de acceso en cualquier
momento. También debe tener permisos para realizar las acciones de IAM requeridas. Para obtener más
información, consultePermisos obligatorios para obtener acceso a recursos de IAMen laIAM User Guide.
48
AWS Command Line Interface Guía del usuario
Region
Mantenga la confidencialidad de las claves para proteger su Cuenta de AWS Y no las envíe nunca por
correo electrónico. No las comparta fuera de su organización, aunque reciba una petición que parezca
provenir de AWS o Amazon.com. Nadie que represente legítimamente a Amazon le pedirá nunca su
clave secreta.
7. Después de descargar el.csv, elijaClose. Cuando cree una clave de acceso, el par de claves se
activa de forma predeterminada, y puede utilizar el par de inmediato.
Temas relacionados
Region
Default region name identifica la región de AWS a cuyos servidores desea enviar las solicitudes de
forma predeterminada. Suele ser la región más cercana a usted, pero puede ser cualquier región. Por
ejemplo, puede escribirus-west-2Para utilizar EE.UU. Oeste (Oregón). Esta es la región a la que se
envían todas las solicitudes posteriores, a menos que especifique lo contrario en un comando concreto.
Note
Cuanto utilice la AWS CLI, debe especificar una región de AWS, ya sea de forma explícita o
estableciendo una región predeterminada. Para obtener una lista de las regiones disponibles,
consulte Regiones y puntos de enlace. Los designadores de región que la AWS CLI utiliza
son los mismos nombres que aparecen en las URL y los puntos de enlace de servicio de AWS
Management Console.
Formato de salida
El Default output format especifica el formato de los resultados. El valor puede ser cualquiera
de los incluidos en la lista siguiente. Si no especifica un formato de salida, se utiliza json de forma
predeterminada.
49
AWS Command Line Interface Guía del usuario
Profiles
Profiles
Una colección de opciones se denomina perfil. De forma predeterminada, la AWS CLI utiliza el perfil
default. Puede crear y utilizar perfiles con nombre adicionales con credenciales y opciones variables
especificando la opción --profile y asignando un nombre.
A continuación, puede especificar un --profile profilename y utilizar las credenciales y las opciones
almacenadas con dicho nombre.
Para actualizar cualquiera de las opciones, ejecute aws configure de nuevo (con o sin el parámetro
--profile, en función del perfil que desee actualizar) y escriba los valores nuevos que desee. En las
secciones siguientes, aparece más información sobre los archivos que crea aws configure y sobre los
ajustes adicionales y los perfiles con nombre.
Para obtener más información sobre los perfiles con nombre, consulte Perfiles con nombre (p. 64).
1. Opciones de línea de comandos (p. 75)— Anula la configuración en cualquier otra ubicación. Puede
especificar --region, --output y --profile como parámetros en la línea de comandos.
2. Environment variables (Variables de entorno): (p. 71)— Puede almacenar valores en las variables de
entorno de su sistema.
3. Archivo de credenciales de CLI (p. 51)— Elcredentialsyconfigarchivo se actualizan al ejecutar
el comandoaws configure. LacredentialsEste archivo se encuentra en.~/.aws/credentialsen
Linux o macOS, o enC:\Users\USERNAME\.aws\credentialsen Windows. Este archivo contiene
las credenciales del perfil default y de todos los perfiles con nombre.
4. Archivo de configuración de CLI (p. 51)— Elcredentialsyconfigarchivo se actualizan al ejecutar
el comandoaws configure. LaconfigEste archivo se encuentra en.~/.aws/configen Linux o
macOS, o enC:\Users\USERNAME\.aws\configen Windows. Este archivo contiene las opciones de
configuración del perfil predeterminado y de los perfiles con nombre.
5. Credenciales contenedor: puede asociar un rol de IAM a cada una de las definiciones de tareas de
Amazon Elastic Container Service (Amazon ECS). Las credenciales temporales de ese rol estarán
disponibles para los contenedores de esa tarea. Para obtener más información, consulte Roles de IAM
para tareas en la Guía para desarrolladores de Amazon Elastic Container Service.
6. Perfiles de instancia de credenciales: puede asociar un rol de IAM a cada una de las instancias de
Amazon Elastic Compute Cloud (Amazon EC2). Las credenciales temporales de ese rol estarán
disponibles para el código que se ejecute en la instancia. Las credenciales se entregan a través del
servicio de metadatos de Amazon EC2 de. Para obtener más información, consulteRoles de IAM
para Amazon EC2en laGuía del usuario de Amazon EC2 para instancias de LinuxyUso de perfiles de
instanciaen laIAM User Guide.
50
AWS Command Line Interface Guía del usuario
Opciones de los archivos de configuración y credenciales
Los archivos se dividen en profiles. De forma predeterminada, elAWS CLIutiliza la configuración que se
encuentra en el perfil denominadodefault. Para utilizar una configuración diferente, puede crear y hacer
referencia a perfiles adicionales. Para obtener más información sobre los perfiles con nombre, consulte
Perfiles con nombre (p. 64).
También es posible anular una opción individual estableciendo una de las variables de entorno
compatibles o utilizando un parámetro de la línea de comandos. Para obtener más información sobre la
prioridad de opciones de configuración, consulte Ajustes de configuración y precedencia (p. 50).
Temas
• ¿Dónde se almacenan las opciones de configuración? (p. 51)
• Establecer y ver las opciones de configuración (p. 52)
• Configuraciones del archivo config admitidas (p. 53)
Puede mantener todas las opciones de perfil en un solo archivo, ya que la AWS CLI puede leer
las credenciales del archivo config. Si hay credenciales en ambos archivos para un perfil que
comparte el mismo nombre, las claves del archivo de credenciales tienen prioridad.
Los kits de desarrollo de software (SDK) de varios lenguajes también utilizan estos archivos. Si
utiliza uno de los SDK además de la AWS CLI, confirme si las credenciales deben almacenarse
en su propio archivo.
La ubicación del directorio principal varía en función del sistema operativo, pero se hace referencia a
él mediante las variables de entorno %UserProfile% en Windows y $HOME o ~ (tilde) en los sistemas
basados en Unix. Es posible especificar una ubicación no predeterminada para el archivo config
estableciendo la variable de entorno AWS_CONFIG_FILE en otra ruta local. Para obtener más información,
consulte Variables de entorno para configurar la AWS CLI (p. 71).
Por ejemplo, los archivos generados porAWS CLIpara un perfil predeterminado configurado conaws
configuretiene un aspecto similar al siguiente.
~/.aws/credentials
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
~/.aws/config
[default]
51
AWS Command Line Interface Guía del usuario
Establecer y ver las opciones de configuración
region=us-west-2
output=json
Para ver ejemplos de archivos con varios perfiles con nombre, consulte Perfiles con nombre (p. 64).
Cuando se utiliza un perfil compartido que especifica unAWS Identity and Access Management(IAM),
la funciónAWS CLIllama a laAWS STS AssumeRolepara recuperar las credenciales temporales. A
continuación, se almacenan estas credenciales (en ~/.aws/cli/cache). Los comandos de la AWS CLI
posteriores utilizan las credenciales temporales almacenadas en caché hasta que caducan, momento en el
cual la AWS CLI las actualiza automáticamente.
Vea y edite las opciones editando directamente los archivos config y credentials en un
editor de texto. Para obtener más información, consulte ¿Dónde se almacenan las opciones de
configuración? (p. 51)
Para eliminar una opción, elimine la opción correspondiente en sus archivos config y credentials.
aws configure
Ejecute este comando para establecer y ver rápidamente las credenciales, la región y el formato de
salida. En el ejemplo siguiente se muestran los valores de ejemplo.
$ 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
Para obtener más información, consulte Configuración rápida con aws configure (p. 48)
aws configure set
Puede establecer las credenciales o las opciones de configuración mediante aws configure set.
Especifique el perfil que desea ver o modificar con la opción --profile.
Para quitar una opción, utilice una cadena vacía como valor o elimine manualmente la opción de los
archivos config y credentials en un editor de texto.
Puede recuperar las credenciales o las opciones de configuración que haya establecido utilizando aws
configure get. Especifique el perfil que desea ver o modificar con la opción --profile.
Por ejemplo, el siguiente comando recupera la opción region en el perfil denominado integ.
52
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
us-west-2
Si la salida está vacía, significa que la configuración no está establecida de forma explícita y se utiliza
el valor predeterminado.
aws configure import
Esta característica solo está disponible conAWS CLIVersión 2.
La característica siguiente está disponible solo si usa solo si usaAWS CLIVersión 2. No está
disponible si ejecutaAWS CLIVersión 1. Para obtener información sobre cómo instalar la
versión 2, consulte Instalar, actualizar y desinstalar elAWS CLIVersión 2 (p. 6).
Importe las credenciales de CSV generadas desde la consola web de AWS. Se importa un archivo
CSV con el nombre de perfil que coincide con el nombre de usuario de IAM. El archivo CSV debe
contener los siguientes encabezados.
• Nombre de usuario
• ID de clave de acceso
• Clave de acceso secreta
Para enumerar todos los datos de configuración, utilice el comando aws configure list. Este
comando muestra el nombre de la AWS CLI de todas las opciones que ha configurado, sus valores y
desde dónde se recuperó la configuración.
La característica siguiente está disponible solo si usa solo si usaAWS CLIVersión 2. No está
disponible si ejecutaAWS CLIVersión 1. Para obtener información sobre cómo instalar la
versión 2, consulte Instalar, actualizar y desinstalar elAWS CLIVersión 2 (p. 6).
Para enumerar todos los nombres de perfil, utilice el comando aws configure list-profiles.
53
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
Se admiten las siguientes opciones en el archivo config. Se utilizan los valores enumerados en el
perfil especificado (o predeterminado) a menos que queden anulados por la presencia de una variable
de entorno con el mismo nombre o una opción de línea de comandos con el mismo nombre. Para
obtener más información sobre las opciones que tienen prioridad, consulte Ajustes de configuración y
precedencia (p. 50)
Algunos servicios de AWS mantienen varias versiones de la API que son compatibles con versiones
anteriores. De forma predeterminada,AWS CLIutilizan la última versión de API disponible. Puede
especificar la versión de la API que se va a utilizar para un perfil mediante la inclusión de la
configuración api_versions en el archivo config.
Se trata de una configuración "anidada" que va seguida de una o varias líneas con sangría; cada
una de ellas identifica un servicio de AWS y la versión de la API que se va a utilizar. Consulte la
documentación de cada servicio para saber qué versiones de API están disponibles.
En el siguiente ejemplo, se muestra cómo especificar una versión de API para dos servicios de AWS.
Estas versiones de API se utilizan únicamente para los comandos que se ejecutan bajo el perfil que
contiene estos ajustes.
api_versions =
ec2 = 2015-03-01
cloudfront = 2015-09-017
Este ajuste no tiene una variable de entorno ni un parámetro de línea de comandos equivalente.
Especifica la clave de acceso de AWS que se utiliza como parte de las credenciales para autenticar
la solicitud del comando. Aunque puede estar almacenada en el archivo config, recomendamos
almacenar esta información en el archivo credentials.
aws_access_key_id = 123456789012
Especifica la clave secreta de AWS que se utiliza como parte de las credenciales para autenticar
la solicitud del comando. Aunque puede estar almacenada en el archivo config, recomendamos
almacenar esta información en el archivo credentials.
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token
54
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT
+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/
IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
ca_bundle
Especifica un paquete de certificados de CA (un archivo con la extensión .pem) que se utiliza para
verificar certificados SSL.
ca_bundle = dev/apps/ca-certs/cabundle-2019mar05.pem
cli_auto_prompt
Esta característica solo está disponible conAWS CLIVersión 2.
La característica siguiente está disponible solo si usa solo si usaAWS CLIVersión 2. No está
disponible si ejecutaAWS CLIVersión 1. Para obtener información sobre cómo instalar la
versión 2, consulte Instalar, actualizar y desinstalar elAWS CLIVersión 2 (p. 6).
Habilita el mensaje automático para elAWS CLIVersión 2. Hay dos configuraciones que se pueden
usar:
• onutiliza el modo de mensaje automático completo cada vez que intenta ejecutar unawscomando.
Esto incluye presionarESCRIBAdespués de un comando completo o un comando incompleto.
cli_auto_prompt = on
cli_auto_prompt = on-partial
Puede invalidar este valor con laaws_cli_auto_prompt (p. 73)o la variable de entorno--cli-
auto-prompt (p. 76)y--no-cli-auto-prompt (p. 77)Parámetros de línea de comandos.
Para obtener información sobre laAWS CLIfunción de petición automática de la versión 2, consulteCon
laAWS CLIsolicitarle comandos (p. 120).
cli_binary_format
Esta característica solo está disponible conAWS CLIVersión 2.
La característica siguiente está disponible solo si usa solo si usaAWS CLIVersión 2. No está
disponible si ejecutaAWS CLIVersión 1. Para obtener información sobre cómo instalar la
versión 2, consulte Instalar, actualizar y desinstalar elAWS CLIVersión 2 (p. 6).
Especifica el modo en que elAWS CLILa versión 2 interpreta los parámetros de entrada binarios.
Puede ser uno de los siguientes valores:
• base64: es el valor predeterminado. Un parámetro de entrada escrito como un objeto binario grande
(BLOB) acepta una cadena codificada en base64. Para pasar verdadero contenido binario, coloque
55
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
el contenido en un archivo y proporcione la ruta y el nombre del archivo con el prefijo fileb://
como valor del parámetro. Para pasar el texto codificado en base64 incluido en un archivo,
proporcione la ruta y el nombre del archivo con el prefijo file:// como valor del parámetro.
• RAW-in-base64-out— Proporciona compatibilidad con versiones anteriores con elAWS
CLIComportamiento de la versión 1, donde los valores binarios deben pasarse literalmente.
Esta entrada no tiene una variable de entorno equivalente. Puede especificar el valor en un solo
comando mediante el parámetro --cli-binary-format raw-in-base64-out.
cli_binary_format = raw-in-base64-out
Si hace referencia a un valor binario en un archivo mediante la notación del prefijo fileb://, la AWS
CLI siempre espera que el archivo incluya contenido binario sin codificar y no intenta convertir el valor.
Si hace referencia a un valor binario en un archivo mediante la notación del prefijo file://, la AWS
CLI tratará el archivo de acuerdo con el valor de cli_binary_format actual. Si el valor de esa
configuración esbase64(el valor predeterminado cuando no se establece explícitamente), elAWS
CLIespera que el archivo incluya texto codificado en base64. Si el valor de esa configuración esraw-
in-base64-out, elAWS CLIespera que el archivo incluya contenido binario sin codificar.
cli_follow_urlparam
Esta característica solo está disponible conAWS CLIVersión 1.
La característica siguiente está disponible solo si usa solo si usaAWS CLIVersión 1. No está
disponible si ejecutaAWS CLIVersión 2.
Esta entrada no tiene una variable de entorno equivalente ni una opción de línea de comandos.
cli_follow_urlparam = false
cli_pager
Esta característica solo está disponible conAWS CLIVersión 2.
La característica siguiente está disponible solo si usa solo si usaAWS CLIVersión 2. No está
disponible si ejecutaAWS CLIVersión 1. Para obtener información sobre cómo instalar la
versión 2, consulte Instalar, actualizar y desinstalar elAWS CLIVersión 2 (p. 6).
cli_pager=less
Para deshabilitar todo el uso de un programa de paginación externo, establezca la variable en una
cadena vacía como se muestra en el siguiente ejemplo.
56
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
cli_pager=
cli_timestamp_format
Especifica el formato de los valores de la marca temporal incluidos en la salida. Puede especificar
cualquiera de los siguientes valores:
• iso8601— El valor predeterminado de laAWS CLIVersión 2. Si se especifica, la AWS CLI cambia el
formato de todas las marcas temporales conforme a ISO 8601.
• alambre— El valor predeterminado de laAWS CLIVersión 1. Si se especifica, la AWS CLI muestra
todos los valores de las marcas temporales exactamente como se recibieron en la respuesta de la
consulta HTTP.
Esta entrada no tiene una variable de entorno equivalente ni una opción de línea de comandos.
cli_timestamp_format = iso8601
Especifica un comando externo queAWS CLISe ejecuta para generar o recuperar las credenciales de
autenticación que se van a utilizar para este comando. El comando debe devolver las credenciales
en un formato específico. Para obtener más información sobre el uso de esta configuración, consulte
Obtención de credenciales con un proceso externo (p. 86).
Esta entrada no tiene una variable de entorno equivalente ni una opción de línea de comandos.
Se utiliza dentro de las instancias o contenedores de Amazon EC2 para especificar dónde está
elAWS CLIPuede encontrar las credenciales que va a utilizar para asumir el rol especificado con
larole_arnParámetro. No puede especificar source_profile y credential_source en el
mismo perfil.
credential_source = Ec2InstanceMetadata
duration_seconds
Especifica la duración máxima de la sesión de rol, en segundos. Este valor puede oscilar entre
900 segundos (15 minutos) y el valor de la duración máxima de la sesión para el rol (que puede ser
43200 como máximo). Se trata de un parámetro opcional y, de forma predeterminada, el valor se
establece en 3600 segundos.
external_id (p. 94)
Especifica un identificador único utilizado por terceros para adoptar un rol en las cuentas de los
clientes. Se asigna al parámetro ExternalId en la operación AssumeRole. Este parámetro solo es
57
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
necesario si la política de confianza del rol especifica un valor para ExternalId. Para obtener más
información, consulteCómo utilizar una puerta de enlace externa al otorgar acceso aAWSRecursos a
tercerosen laGuía del usuario de IAM.
max_attempts (p. 82)
Especifica un valor de los intentos de reintento máximos deAWS CLIutiliza el controlador de retry,
donde la llamada inicial cuenta para elmax_attemptsque proporciona.
max_attempts = 3
El número de identificación del dispositivo MFA que se debe utilizar al asumir un rol. Este valor solo
es obligatorio si la política de confianza del rol que se ha asumido incluye una condición que requiere
autenticación MFA. El valor puede ser un número de serie de un dispositivo de hardware (como
GAHT12345678) o un nombre de recurso de Amazon (ARN) de un dispositivo MFA virtual (como
arn:aws:iam::123456789012:mfa/user).
salida (p. 49)
Especifica el formato de la salida predeterminado para los comandos solicitados con este perfil. Puede
especificar cualquiera de los siguientes valores:
• json (p. 125)— La salida se formatea comoJSONCadena.
• yaml (p. 125)— La salida se formatea comoYAMLCadena. (está disponible en.AWS CLIVersión 2)
• yaml-stream (p. 126)— La salida es transmitida y formateada comoYAMLCadena. La
transmisión permite un manejo más rápido de tipos de datos de gran tamaño. (está disponible
en.AWS CLIVersión 2)
• text (p. 127)— La salida tiene el formato de varias líneas de valores de cadena separados por
tabuladores. Esto puede ser útil para pasar la salida a un procesador de texto, comogrep,sed, o
bienawk.
• table (p. 129)— el resultado tiene el formato de una tabla en la que se usan los caracteres +|-
para los bordes de celda. Normalmente, la información se presenta en un formato que es más fácil
de leer que los demás formatos, pero que no es útil para programar.
output = table
parameter_validation
Especifica si el cliente de la AWS CLI intenta validar parámetros antes de enviarlos al punto de enlace
de servicio de AWS.
• true: es el valor predeterminado. Si se especifica, elAWS CLIrealiza la validación local de
parámetros de línea de comandos.
• false— Si se especifica, elAWS CLIno valida los parámetros de línea de comandos antes de
enviarlos alAWSpunto de enlace de servicio.
Esta entrada no tiene una variable de entorno equivalente ni una opción de línea de comandos.
parameter_validation = false
58
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
Especifica la región de AWS a la que se envían solicitudes para los comandos solicitados con este
perfil.
• Puede especificar cualquiera de los códigos de región disponibles para el servicio elegido tal y como
se enumera en laAWSRegiones y puntos de enlace deen laReferencia general de Amazon Web
Services.
• aws_globalle permite especificar el punto de enlace global para los servicios que admiten un
punto de enlace global además de los puntos de enlace regionales, comoAWS Security Token
Service(AWS STS) y Amazon Simple Storage Service (Amazon S3).
region = us-west-2
Especifica qué modo de volver a intentarloAWS CLIUsos. Hay tres modos de reintento disponibles:
heredado (predeterminado), estándar y adaptativo. Para obtener más información acerca de los
reintentos, consulte AWS CLIretries (p. 82).
retry_mode = standard
Especifica el nombre de recurso de Amazon (ARN) del rol de IAM que desea utilizar para ejecutar
elAWS CLIcommands. También debe especificar uno de los siguientes parámetros para identificar las
credenciales que tienen permiso para asumir este rol:
• source_profile
• credential_source
role_arn = arn:aws:iam::123456789012:role/role-name
role_session_name = maria_garcia_role
Especifica un perfil con nombre con credenciales duraderas que la AWS CLI puede utilizar
para asumir el rol que ha especificado con el parámetro role_arn. No puede especificar
source_profile y credential_source en el mismo perfil.
source_profile = production-profile
59
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
Especifica elAWSID de la cuenta de que contiene el rol de IAM con el permiso que desea conceder
alAWS SSOUsuario.
Esta configuración no tiene ninguna variable de entorno ni ninguna opción de línea de comandos.
sso_account_id = 123456789012
Especifica la región de AWS que contiene el host del portal de AWS SSO. Esto es independiente (y
puede ser una región diferente) del parámetro region predeterminado de la CLI.
Esta configuración no tiene ninguna variable de entorno ni ninguna opción de línea de comandos.
aws_sso_region = us_west-2
Especifica el nombre descriptivo del rol de IAM que define los permisos que tiene el usuario cuando
utiliza este perfil.
Esta configuración no tiene ninguna variable de entorno ni ninguna opción de línea de comandos.
sso_role_name = ReadAccess
Especifica la URL que apunta al portal de usuarios de AWS SSO de la organización. La AWS CLI
utiliza esta dirección URL para establecer una sesión con el servicio AWS SSO para autenticar a sus
usuarios.
Esta configuración no tiene ninguna variable de entorno ni ninguna opción de línea de comandos.
sso_start_url = https://my-sso-portal.awsapps.com/start
sts_regional_endpoints
Especifica cómo la AWS CLI determina el punto de enlace del servicio de AWS que el cliente de la
AWS CLI utiliza para comunicarse con AWS Security Token Service (AWS STS).
• El valor predeterminado deAWS CLILa versión 1 eslegacy.
• El valor predeterminado deAWS CLILa versión 2 esregional.
60
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
Especifica la ruta de un archivo que contiene un token de acceso de OAuth 2.0 o un token de
ID de OpenID Connect proporcionado por un proveedor de identidades. La AWS CLI carga
el contenido de este archivo y lo pasa como argumento WebIdentityToken a la operación
AssumeRoleWithWebIdentity.
tcp_keepalive
Esta entrada no tiene una variable de entorno equivalente ni una opción de línea de comandos.
tcp_keepalive = false
Para configurar todas estas opciones, especifique la configuración s3 anidada en su archivo config. A
continuación, se introduce con sangría cada configuración en su propia línea.
Note
Estos ajustes son completamente opcionales. Debe poder utilizar los comandos de transferencia
de aws s3 sin configurar ninguno de estos ajustes. Estas opciones se ofrecen para afinar el
rendimiento o para tener en cuenta el entorno específico en el que se ejecutan estos comandos
de aws s3.
addressing_style
Especifica qué estilo de direccionamiento debe usarse. Esto controla si el nombre del bucket está
en el hostname o es parte de la URL. Los valores válidos son path, virtual y auto. El valor
predeterminado es auto.
Hay dos estilos para crear un punto enlace de Amazon S3. El primero se llama
virtual e incluye el nombre del bucket como parte del nombre de host. Por ejemplo:
https://bucketname.s3.amazonaws.com. Para otras opciones, consulte lapath,
tratará el nombre del bucket como si fuera una ruta del URI; por ejemplo,https://
s3.amazonaws.com/bucketname. El valor predeterminado en la CLI es utilizar auto, que intenta
utilizar el estilo virtual siempre que puede, pero usará el estilo path cuando sea necesario.
Por ejemplo, si el nombre del bucket no es compatible con DNS, el nombre del bucket no puede
formar parte del nombre de host y debe estar en la ruta. Con auto, la CLI detectará esta condición y
61
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
Especifica si firma con SHA256 cargas de sigv4. De forma predeterminada, esta opción está
deshabilitada para cargas de streaming (UploadPart y PutObject) cuando se utiliza https. De
forma predeterminada, la opción está configurada en false para cargas de streaming (UploadPart
y PutObject), pero solo si está presente un ContentMD5 (se genera de forma predeterminada) y el
punto de enlace utiliza HTTPS.
Si se establece en «true», elAWS CLIdirige todas las solicitudes de Amazon S3 al punto de enlace
IPv4/IPv6 doble de la región configurada.
use_accelerate_endpoint
Estos ajustes de configuración solo se aplican a los comandos del conjunto de comandos del espacio de
nombres de s3:
max_bandwidth
Especifica el ancho de banda máximo que puede ser consumido para cargar y descargar datos de
Amazon S3. El valor predeterminado es sin límite.
Esto limita el ancho de banda máximo que los comandos de S3 pueden utilizar para transferir datos
desde y hacia Amazon S3. Este valor se aplica únicamente a cargas y descargas; no se aplica a
copias o eliminaciones. El valor se expresa como bytes por segundo. El valor puede especificarse
como:
• Un número entero. Por ejemplo, 1048576 establece el uso de ancho de banda máximo en 1
megabyte por segundo.
• Un número entero seguido de un sufijo de velocidad. Puede especificar sufijos de velocidad
mediante: KB/s, MB/s o GB/s. Por ejemplo, 300KB/s, 10MB/s.
62
AWS Command Line Interface Guía del usuario
Configuraciones del archivo config admitidas
En general, se recomienda intenta reducir primero el consumo de ancho de banda, disminuyendo las
max_concurrent_requests. Si así no se reduce el consumo de ancho de banda lo suficiente para
conseguir la velocidad deseada, puede utilizar la opción max_bandwidth para limitar más el consumo
de ancho de banda. Esto se debe a que max_concurrent_requests controla la cantidad de
subprocesos se están ejecutando en este momento. Si en su lugar reduce primero max_bandwidth
pero deja max_concurrent_requests en un valor alto, puede provocar que los subprocesos tengan
que esperar innecesariamente. Esto puede provocar un consumo excesivo de recursos y que se
agoten los tiempos de espera de conexión.
max_concurrent_requests
Es posible que tenga que cambiar este valor por varios motivos:
• Reducir el valor: en algunos entornos, el valor predeterminado de 10 solicitudes simultáneas puede
ser demasiado para un sistema. Esto puede provocar tiempos de espera de conexión o ralentizar
la capacidad de respuesta del sistema. Al reducir este valor, los comandos de transferencia de S3
consumen menos recursos. La desventaja es que las transferencias de S3 puede tardar más en
completarse. Puede ser necesario reducir este valor si utiliza una herramienta para limitar el ancho
de banda.
• Aumentar este valor: en algunos casos, puede ser conveniente que las transferencias de Amazon
S3 se completen lo más rápido posible, con el mayor ancho de banda de red según sea necesario.
En este caso, el número predeterminado de solicitudes simultáneas podría no ser suficiente para
utilizar todo el ancho de banda de red disponible. Aumentar este valor puede mejorar el tiempo que
se tarda en completar una transferencia de Amazon S3.
max_queue_size
LaAWS CLILa utiliza internamente un modelo que pone en cola las tareas de Amazon S3 que luego
ejecutan los consumidores, cuyo número está limitado pormax_concurrent_requests. Una tarea,
por lo general, se asigna a una sola operación de Amazon S3. Por ejemplo, una tarea puede ser
PutObjectTask, GetObjectTask o UploadPartTask. La velocidad a la que se añaden tareas a
la cola puede ser mucho más rápida que la velocidad en la que los consumidores finalizan las tareas.
Para evitar el crecimiento ilimitado, el tamaño de la cola de tareas se limita a un tamaño específico.
Esta configuración cambia el valor de ese número máximo.
Por lo general, no tendrá que cambiar este ajuste. Esta configuración también se corresponde con el
número de tareas que laAWS CLIes consciente de que tiene que ejecutarse. Esto significa que, de
forma predeterminada, laAWS CLISolo puede ver 1000 tareas. Aumentar este valor significa queAWS
CLIPuede saber con mayor rapidez el número total de tareas necesario, suponiendo que la velocidad
de la cola sea más rápida que la velocidad de finalización de la tarea. La desventaja es que un valor
mayor en max_queue_size, exige también más memoria.
multipart_chunksize
Especifica el tamaño del fragmento que la AWS CLI utiliza en las transferencias multiparte de archivos
individuales. El valor predeterminado es 8 MB, con un mínimo de 5 MB.
63
AWS Command Line Interface Guía del usuario
Perfiles con nombre
multipart_threshold
Especifica el umbral de tamaño que la AWS CLI utiliza en las transferencias multiparte de archivos
individuales. El valor predeterminado es 8 MB.
S3 puede imponer restricciones en los valores válidos que se pueden utilizar para las
operaciones multiparte. Para obtener más información, consulte laCargas multiparte de
S3en laAmazon Simple Storage Service Developer Guide.
Estos ajustes se establecen con una clave de s3 de alto nivel en el archivo config, tal y como se muestra
en el siguiente ejemplo del perfil development.
[profile development]
s3 =
max_concurrent_requests = 20
max_queue_size = 10000
multipart_threshold = 64MB
multipart_chunksize = 16MB
max_bandwidth = 50MB/s
use_accelerate_endpoint = true
addressing_style = path
La AWS CLI admite el uso de cualquiera de los perfiles con nombre almacenados en los archivos config
y credentials. Puede configurar perfiles adicionales utilizando aws configure con la opción --
profile o añadiendo entradas a los archivos config y credentials.
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[user1]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
64
AWS Command Line Interface Guía del usuario
Uso de perfiles con la AWS CLI
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
Cada perfil puede especificar credenciales diferentes (puede que sean de usuarios de IAM diferentes) y
también puede especificar diferentesAWSRegiones y formatos de salida.
[default]
region=us-west-2
output=json
[profile user1]
region=us-east-1
output=text
Important
LacredentialsEl archivo usa un formato de denominación diferente que elAWS CLI
configpara perfiles con nombre. Incluya el prefijo "profile" únicamente cuando configure un
perfil con nombre en el archivo config. no utilice la palabra profile cuando cree una entrada
en el archivo credentials.
Si desea utilizar un perfil con nombre para varios comandos, puede evitar especificar el perfil en cada
comando configurando la variable de entorno AWS_PROFILE en la línea de comandos.
Linux o macOS
$ export AWS_PROFILE=user1
Windows
El uso de set para configurar una variable de entorno cambia el valor usado hasta que finalice la sesión
de símbolo de sistema actual o hasta que otorgue a la variable un valor diferente.
El uso de setx para establecer una variable de entorno cambia el valor de todos los shells de comandos
que cree después de ejecutar el comando. No afecta a ningún shell de comandos que ya se esté
ejecutando en el momento en que ejecuta el comando. Cierre y reinicie el shell de comandos para ver los
efectos del cambio.
La configuración de la variable de entorno cambia el perfil predeterminado hasta que finalice la sesión
del shell, o hasta que otorgue a la variable a un valor diferente. Puede hacer que las variables de entorno
persistan en sesiones futuras poniéndolas en el script de inicio del shell. Para obtener más información,
consulte Variables de entorno para configurar la AWS CLI (p. 71).
Note
Si especifica un perfil con --profile en un comando individual, eso anula la configuración
especificada en la variable de entorno sólo para ese comando.
65
AWS Command Line Interface Guía del usuario
Configuración de la AWS CLI
para usar AWS Single Sign-On
Si su organización utilizaAWS Single Sign-On(AWS SSO), los usuarios pueden iniciar sesión en Active
Directory, unAWS SSOootro iDP conectado aAWS SSOy se asignan a unAWS Identity and Access
Management(IAM) que le permite ejecutarAWS CLIcommands. Independientemente del iDP que utilice,
AWS SSO abstrae esas distinciones y todas funcionan con la AWS CLI como se describe a continuación.
Por ejemplo, puede conectar Microsoft Azure AD como se describe en el artículo del blogLa próxima
evolución enAWSInicio de sesión único
Para obtener más información acerca de AWS SSO, consulte la Guía del usuario de AWS Single Sign-On.
En este tema, se describe cómo se configura la AWS CLI para autenticar al usuario con AWS SSO y
obtener credenciales a corto plazo para ejecutar comandos de la AWS CLI. Contiene las secciones
siguientes:
• Configuración de un perfil con nombre para que utilice AWS SSO (p. 66)- Cómo crear y configurar
perfiles que usenAWS SSOpara la autenticación y asignación a un rol de IAM paraAWSpermisos.
• Uso de un perfil con nombre habilitado de AWS SSO (p. 69): cómo iniciar sesión en AWS SSO desde
la CLI y utilizar las credenciales temporales de AWS proporcionadas para ejecutar comandos de la AWS
CLI.
Configuración automática
Puede añadir a la AWS CLI un perfil habilitado para AWS SSO. Para ello, ejecute el siguiente comando y
proporcione la URL de inicio de AWS SSO y la región de AWS en que se aloja el directorio de AWS SSO.
La AWS CLI intenta abrir su navegador predeterminado e iniciar el proceso de inicio de sesión de su
cuenta de AWS SSO.
66
AWS Command Line Interface Guía del usuario
Configuración de un perfil con
nombre para que utilice AWS SSO
SSO authorization page has automatically been opened in your default browser.
Follow the instructions in the browser to complete this authorization request.
Si la AWS CLI no puede abrir el navegador, aparece el siguiente mensaje con instrucciones sobre cómo
iniciar manualmente el proceso de inicio de sesión.
https://my-sso-portal.awsapps.com/verify
AWS SSO utiliza el código para asociar la sesión de AWS SSO con la sesión de la AWS CLI actual. La
página del navegador de AWS SSO le pide que inicie sesión con las credenciales de su cuenta de AWS
SSO. De este modo, la AWS CLI (a través de los permisos asociados a su cuenta de AWS SSO) puede
recuperar y mostrar las cuentas y roles de AWS que tiene permiso para usar con AWS SSO.
A continuación, la AWS CLI muestra las cuentas de AWS disponibles para su uso. Si solo tiene
autorización para usar una única cuenta, la AWS CLI selecciona esa cuenta automáticamente y omite el
mensaje. Las cuentas de AWS que están disponibles para su uso están determinadas por su configuración
de usuario en AWS SSO.
Utilice las teclas de flecha para seleccionar la cuenta que desea utilizar con este perfil. El carácter «>» de
la izquierda apunta a la opción actual. Pulse INTRO para realizar la selección.
A continuación, laAWS CLIconfirma la elección de cuenta y muestra los roles de IAM que están
disponibles en la cuenta seleccionada. Si la cuenta seleccionada solo muestra un rol, la AWS CLI
selecciona automáticamente ese rol y omite el mensaje. Los roles que están disponibles para su uso están
determinados por su configuración de usuario en AWS SSO.
Al igual que antes, utilice las teclas de flecha para seleccionar el rol de IAM que desea utilizar con este
perfil. El carácter «>» de la izquierda apunta a la opción actual. Pulse <INTRO> para realizar la selección.
67
AWS Command Line Interface Guía del usuario
Configuración de un perfil con
nombre para que utilice AWS SSO
Note
Si especifica default como nombre de perfil, este perfil será el que se utilice cada vez que se
ejecute un comando de la AWS CLI y no se especifique ningún nombre de perfil.
Para utilizar este perfil, especifique el nombre del perfil mediante —profile, como se muestra:
Las entradas de ejemplo anteriores darían como resultado un perfil con nombre alojado en ~/.aws/
config parecido al del siguiente ejemplo:
[profile my-dev-profile]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-east-1
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json
En este punto, tiene un perfil que puede utilizar para solicitar credenciales temporales. Debe utilizar el
comando aws sso login para solicitar y recuperar realmente las credenciales temporales necesarias
para ejecutar comandos. Para obtener instrucciones, consulte Uso de un perfil con nombre habilitado de
AWS SSO (p. 69).
Note
También puede ejecutar un comando de la AWS CLI utilizando el perfil especificado. Si en estos
momentos no ha iniciado sesión en el portal de AWS SSO, este comienza automáticamente
el proceso de inicio de sesión, como si hubiera ejecutado manualmente el comando aws sso
login.
Configuración manual
Para agregar manualmente compatibilidad con AWS SSO a un perfil con nombre, debe agregar las
siguientes claves y valores a la definición del perfil en el archivo ~/.aws/config (Linux o macOS) o
%USERPROFILE%/.aws/config (Windows).
sso_start_url
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region
LaAWSRegión que contiene elAWS SSOhost del portal Esto es independiente (y puede ser una región
diferente) del parámetro de region de la CLI predeterminado.
sso_region = us-west-2
sso_account_id
LaAWSID de cuenta de que contiene el rol de IAM que desea utilizar con este perfil.
68
AWS Command Line Interface Guía del usuario
Uso de un perfil con nombre habilitado de AWS SSO
sso_account_id = 123456789011
sso_role_name
El nombre de la función de IAM que define los permisos que tiene el usuario cuando utiliza este perfil.
sso_role_name = ReadAccess
La presencia de estas claves identifica este perfil como uno que utiliza AWS SSO para autenticar al
usuario.
También puede incluir otras claves y valores válidos en el archivo .aws/config, como region, output
o s3. Sin embargo, no puede incluir ningún valor relacionado con credenciales, como role_arn (p. 59) o
aws_secret_access_key (p. 54). Si lo hace, la AWS CLI produce un error.
Por lo tanto, un perfil típico de AWS SSO en .aws/config podría ser similar al del siguiente ejemplo:
[profile my-dev-profile]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-east-1
sso_account_id = 123456789011
sso_role_name = readOnly
region = us-west-2
output = json
En este punto, tiene un perfil que puede utilizar para solicitar credenciales temporales. Sin embargo,
aún no puede ejecutar un comando de servicio de la AWS CLI. En primer lugar, debe utilizar el comando
aws sso login para solicitar y recuperar realmente las credenciales temporales necesarias para
ejecutar comandos. Para obtener instrucciones, consulte la siguiente sección Uso de un perfil con nombre
habilitado de AWS SSO (p. 69).
La AWS CLI abre el navegador predeterminado y verifica su inicio de sesión de AWS SSO.
SSO authorization page has automatically been opened in your default browser.
Follow the instructions in the browser to complete this authorization request.
Successully logged into Start URL: https://my-sso-portal.awsapps.com/start
Si no hay ninguna sesión iniciada en su cuenta de AWS SSO en esos momentos, deberá proporcionar el
nombre de usuario y la contraseña de AWS SSO.
Si la AWS CLI no puede abrir el navegador, se le pedirá que lo abra usted y que introduzca el código
especificado.
69
AWS Command Line Interface Guía del usuario
Uso de un perfil con nombre habilitado de AWS SSO
https://my-sso-portal.awsapps.com/verify
La AWS CLI abre el navegador predeterminado (o usted abre manualmente el navegador de su elección)
en la página especificada e introduce el código proporcionado. A continuación, la página web le pedirá sus
credenciales de AWS SSO.
Las credenciales de sesión de AWS SSO se almacenan en caché y contienen una marca temporal de
vencimiento. Cuando las credenciales caduquen, la AWS CLI solicitará que inicie sesión de nuevo en AWS
SSO.
Si las recetasAWS SSOson válidas, las credencialesAWS CLIlos utiliza para recuperar de forma
seguraAWScredenciales temporales para el rol de IAM especificado en el perfil.
Siempre que haya iniciado sesión en AWS SSO y las credenciales almacenadas en caché no hayan
caducado, la AWS CLI renueva automáticamente las credenciales temporales caducadas de AWS cuando
sea necesario. Sin embargo, si sus credenciales de AWS SSO caducan, debe renovarlas explícitamente
iniciando sesión de nuevo en la cuenta de AWS SSO.
Puede crear varios perfiles con nombre habilitados de AWS SSO que apunten a una cuenta o rol de AWS
diferente. También puede utilizar el comando aws sso login en más de un perfil a la vez. Si alguno de
ellos comparte la misma cuenta de usuario de AWS SSO, debe iniciar sesión en esa cuenta de usuario de
AWS SSO una sola vez y así todos compartirán un único conjunto de credenciales de AWS SSO que se
almacenarán en la caché.
# The following command retrieves temporary credentials for the AWS account and role
# specified in one named profile. If you are not yet signed in to AWS SSO or your
# cached credentials have expired, it opens your browser and prompts you for your
# AWS SSO user name and password. It then retrieves AWS temporary credentials for
# the IAM role associated with this profile.
$ aws sso login --profile my-first-sso-profile
70
AWS Command Line Interface Guía del usuario
Variables de entorno
# The next command retrieves a different set of temporary credentials for the AWS
# account and role specified in the second named profile. It does not overwrite or
# in any way compromise the first profile's credentials. If this profile specifies the
# same AWS SSO portal, then it uses the SSO credentials that you retrieved in the
# previous command. The AWS CLI then retrieves AWS temporary credentials for the
# IAM role associated with the second profile. You don't have to sign in to
# AWS SSO again.
$ aws sso login --profile my-second-sso-profile
# The following command lists the Amazon EC2 instances accessible to the role
# identified in the first profile.
$ aws ec2 describe-instances --profile my-first-sso-profile
# The following command lists the Amazon EC2 instances accessible to the role
# identified in the second profile.
$ aws ec2 describe-instances --profile my-second-sso-profile
Si más adelante desea ejecutar comandos con uno de sus perfiles habilitados de AWS SSO, deberá volver
a ejecutar el comando aws sso login (consulte la sección anterior) y especificar el perfil que desea
utilizar.
No se puede especificar la autenticación de AWS Single Sign-On (AWS SSO) mediante variables
de entorno. En su lugar, debe utilizar un perfil con nombre en el archivo de configuración
compartido .aws/config. Para obtener más información, consulte Configuración de la AWS CLI
para usar AWS Single Sign-On (p. 66).
• Si especifica una opción mediante una de las variables de entorno que se describen en este tema, se
invalidará cualquier valor carga desde un perfil en el archivo de configuración.
• Si especifica una opción mediante un parámetro en el cuadro de diálogoAWS CLI, se invalidará
cualquier valor de la variable de entorno correspondiente o un perfil en el archivo de configuración.
Para obtener más información acerca de la prioridad y de cómo la AWS CLI determina la credenciales que
debe utilizar, consulte Ajustes de configuración y precedencia (p. 50).
Temas
71
AWS Command Line Interface Guía del usuario
Cómo configurar las variables de entorno
Linux or macOS
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_DEFAULT_REGION=us-west-2
La configuración de la variable de entorno cambia el valor usado hasta el finalice la sesión del shell
o hasta que otorgue a la variable un valor diferente. Puede hacer que las variables persistan en
sesiones futuras configurándolas en el script de inicio del shell.
Windows Command Prompt
El uso de set para configurar una variable de entorno cambia el valor usado hasta que finalice la
sesión de símbolo de sistema actual o hasta que otorgue a la variable un valor diferente. El uso
de setx para establecer una variable de entorno cambia el valor usado en la sesión de símbolo
del sistema actual y en todas las sesiones de símbolo del sistema que cree después de ejecutar
el comando. La operación no afecta a otros comandos del shell que ya se están ejecutando en el
momento de ejecutar el comando.
PowerShell
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
PS C:\> $Env:AWS_DEFAULT_REGION="us-west-2"
Si establece una variable de entorno en el símbolo del sistema de PowerShell, tal y como se muestra
en los ejemplos anteriores, el valor se guarda únicamente durante la sesión actual. Para que el valor
de la variable de entorno persista en todas las sesiones de PowerShell y del símbolo del sistema,
guárdelo mediante la aplicación Sistema en el Panel de control. También puede definir la variable
para todas las sesiones de PowerShell futuras añadiéndolo a su perfil de PowerShell. Consulte la
documentación de PowerShell para obtener más información sobre el almacenamiento de variables de
entorno o su persistencia entre sesiones.
AWS_ACCESS_KEY_ID
72
AWS Command Line Interface Guía del usuario
Variables de entorno que admite la AWS CLI
AWS_CA_BUNDLE
Especifica la ruta a un paquete de certificados que desea utilizar para la validación de certificados
HTTPS.
Si se define, esta variable de entorno anula el valor de la configuración del perfil ca_bundle. Puede
anular esta variable de entorno mediante el parámetro de la línea de comandos --ca-bundle.
AWS_CLI_AUTO_PROMPT
Esta característica solo está disponible conAWS CLIVersión 2.
Habilita el mensaje automático para elAWS CLIVersión 2. Hay dos configuraciones que se pueden
usar:
• onutiliza el modo de mensaje automático completo cada vez que intenta ejecutar unawsComando
de. Esto incluye presionarESCRIBAdespués de un comando completo o un comando incompleto.
aws_cli_auto_prompt=on
aws_cli_auto_prompt=on-partial
AWS CLIVersión 2. Especifica la codificación utilizada para los archivos de texto. De forma
predeterminada, la codificación coincide con su configuración regional. Para establecer
que una codificación distinta de la configuración regional, utilice la variable de entorno
aws_cli_file_encoding. Por ejemplo, si utiliza Windows con codificación predeterminada
CP1252, la configuración de aws_cli_file_encoding=UTF-8 establece la CLI para que abra
archivos de texto mediante UTF-8.
AWS_CONFIG_FILE
Especifica la ubicación del archivo que la AWS CLI utiliza para almacenar perfiles de configuración. La
ruta predeterminada es ~/.aws/config.
No puede especificar este valor en una configuración de perfil con nombre o mediante un parámetro
de la línea de comandos.
AWS_DEFAULT_OUTPUT (p. 49)
Si se define, esta variable de entorno anula el valor de la configuración del perfil output. Puede
anular esta variable de entorno mediante el parámetro de la línea de comandos --output.
73
AWS Command Line Interface Guía del usuario
Variables de entorno que admite la AWS CLI
Si se define, esta variable de entorno anula el valor de la configuración del perfil region. Puede
anular esta variable de entorno mediante el parámetro de la línea de comandos --region.
AWS_EC2_METADATA_DISABLED
Especifica un valor máximo de intentos de reintento deAWS CLIutiliza el controlador de retry, donde
la llamada inicial cuenta para el valor que proporciona. Para obtener más información acerca de los
reintentos, consulte AWS CLIretries (p. 82).
Para deshabilitar todo el uso de un programa de paginación externo, establezca la variable en una
cadena vacía.
Si se define, esta variable de entorno anula el valor de la configuración del perfil cli_pager.
AWS_PROFILE (p. 64)
Especifica el nombre delAWS CLIcon las credenciales y las opciones que se van a utilizar. Puede ser
el nombre de un perfil almacenado en un archivo credentials o config, o el valor default para
utilizar el perfil predeterminado.
Si se define, esta variable de entorno anula el comportamiento de utilizar el perfil llamado [default]
en el archivo de configuración. Puede anular esta variable de entorno mediante el parámetro de la
línea de comandos --profile.
AWS_RETRY_MODE (p. 59)
Especifica qué modo de volver a intentarloAWS CLIUsos. Hay tres modos de reintento disponibles:
heredado (predeterminado), estándar y adaptativo. Para obtener más información acerca de los
reintentos, consulte AWS CLIretries (p. 82).
Especifica un nombre para asociarlo a la sesión de rol. Este valor aparece en los registros de
CloudTrail para los comandos realizados por el usuario de este perfil.
74
AWS Command Line Interface Guía del usuario
Opciones de línea de comandos
Especifica el valor del token de sesión que se requiere si utiliza credenciales de seguridad temporales
que ha recuperado directamente de las operaciones de AWS STS. Para obtener más información,
consulte laSección de salida del comando assume-roleen laAWS CLIReferencia de los comandos de
la.
Especifica la ubicación del archivo que la AWS CLI utiliza para almacenar claves de acceso. La ruta
predeterminada es ~/.aws/credentials.
No puede especificar este valor en una configuración de perfil con nombre o mediante un parámetro
de la línea de comandos.
AWS_STS_REGIONAL_ENDPOINTS (p. 60)
Especifica cómo la AWS CLI determina el punto de enlace del servicio de AWS que el cliente de la
AWS CLI utiliza para comunicarse con AWS Security Token Service (AWS STS).
• El valor predeterminado deAWS CLILa versión 1 eslegacy.
• El valor predeterminado deAWS CLILa versión 2 esregional.
Los tipos de argumento (por ejemplo, cadena, booleano, etcétera) de cada opción de línea de comandos
se describen en detalle en Especificación de valores de parámetros para la AWS CLI (p. 103).
--ca-bundle <cadena>
75
AWS Command Line Interface Guía del usuario
Opciones de línea de comandos
—cli-auto-prompt
Esta característica solo está disponible conAWS CLIVersión 2.
Habilita el modo de solicitud automática para un solo comando. Como muestran los ejemplos
siguientes, puede especificarlo en cualquier momento.
$ aws --cli-auto-prompt
$ aws dynamodb --cli-auto-prompt
$ aws dynamodb describe-table --cli-auto-prompt
Especifica el máximo tiempo de conexión del conector en segundos. Si el valor se establece en cero
(0), la conexión del socket espera de forma indefinida (bloqueo) y no se agota el tiempo de espera.
--cli-read-timeout <número entero>
Especifica el máximo tiempo de lectura del conector en segundos. Si el valor se establece en cero (0),
la lectura del socket espera de forma indefinida (bloqueo) y no se agota el tiempo de espera.
--color <cadena>
Especifica la compatibilidad con el color de salida. Los valores válidos son on, off y auto. El valor
predeterminado es auto.
--debug
Modificador booleano que permite registrar la depuración. LaAWS CLIde forma predeterminada
proporciona información limpia con respecto a los éxitos o fallas con respecto a los resultados de los
comandos en la salida del comando. La--debugproporciona los registros completos de Python. Esto
incluyestderrPara obtener información de diagnóstico sobre el funcionamiento del comando, que
puede ser útil para solucionar problemas por qué un comando proporciona resultados inesperados.
Para ver fácilmente los registros de depuración, sugerimos enviar los registros a un archivo para
buscar más fácilmente la información. Para ello, puede realizar una de las siguientes opciones.
--endpoint-url <cadena>
76
AWS Command Line Interface Guía del usuario
Opciones de línea de comandos
específica de la cuenta. También puede configurar algunos servicios de AWS para alojar un punto de
enlace directamente dentro de la VPC privada, que entonces debería especificarse.
Para obtener una lista de los puntos de enlace de servicio estándar disponibles en cada región,
consulteAWSRegiones y puntos de enlace deen laReferencia general de Amazon Web Services.
—no-cli-auto-prompt
Esta característica solo está disponible conAWS CLIVersión 2.
Modificador booleano que desactiva el uso de un localizador para la salida del comando.
--no-paginate
Un conmutador booleano que desactiva las múltiples llamadas deAWS CLIhace para recibir todos
los resultados de comandos que crea la paginación de la salida. Esto significa que sólo se muestra la
primera página de su salida.
--no-sign-request
Modificador booleano que deshabilita la firma de las solicitudes HTTP para el punto de enlace de
servicio de AWS. Impide que se carguen las credenciales.
--output <cadena>
Especifica el formato de salida que se va a utilizar con este comando. Puede especificar cualquiera de
los siguientes valores:
• json (p. 125)— La salida se formatea como unaJSONCadena.
• yaml (p. 125)— La salida se formatea como unaYAMLCadena. (está disponible en.AWS
CLIÚnicamente la versión 2.
• yaml-stream (p. 126)— La salida es transmitida y formateada comoYAMLCadena. La
transmisión permite un manejo más rápido de tipos de datos de gran tamaño. (está disponible
en.AWS CLIÚnicamente la versión 2.
• text (p. 127)— La salida tiene el formato de varias líneas de valores de cadena separados por
tabuladores. Esto puede ser útil para pasar la salida a un procesador de texto, comogrep,sed, o
bienawk.
• table (p. 129)— La salida se formatea como una tabla con los caracteres +|- para los bordes
de celda. Normalmente, la información se presenta en un formato que es más fácil de leer que los
demás formatos, pero que no es útil para programar.
--profile <cadena>
Especifica el perfil con nombre (p. 64) que se va a utilizar con este comando. Para configurar
perfiles con nombre adicionales, puede utilizar el comando aws configure con la opción --
profile.
77
AWS Command Line Interface Guía del usuario
Finalización de comandos
--query <cadena>
Especifica una consulta de JMESPath que se usa para filtrar los datos de la respuesta. Para obtener
más información, consulte FiltradoAWS CLIsalida (p. 134).
--region <cadena>
Especifica a qué región de AWS se va a enviar la solicitud de AWS de este comando. Para obtener
una lista de todas las regiones que se pueden especificar, consulteAWSRegiones y puntos de enlace
deen laReferencia general de Amazon Web Services.
--version
Modificador booleano que muestra la versión actual del programa de la AWS CLI que se está
ejecutando.
Entre los usos habituales de las opciones de la línea de comandos se incluyen la comprobación de sus
recursos en varias regiones de AWS y el cambio del formato de salida para obtener una mayor legibilidad o
facilidad de uso al generar scripts. Por ejemplo, si no está seguro de en qué región se ejecuta su instancia,
puede ejecutar el comando describe-instances en cada región hasta que la encuentre, del modo siguiente.
Los tipos de argumento (por ejemplo, cadena, booleano, etcétera) de cada opción de línea de comandos
se describen en detalle en Especificación de valores de parámetros para la AWS CLI (p. 103).
Finalización de comandos
LaAWS Command Line Interface(AWS CLI) incluye una característica de finalización de comandos
compatible con bash-que le permite utilizar laTabpara completar un comando introducido parcialmente. En
la mayoría de los sistemas, debe configurarlo manualmente.
Para obtener información sobre lasAWS CLIversión 2 función de petición automática en su lugar,
consulteCon laAWS CLIsolicitarle comandos (p. 120).
78
AWS Command Line Interface Guía del usuario
Cómo funciona
Temas
• Cómo funciona (p. 79)
• Configuración de la finalización de comandos en Linux o macOS (p. 79)
• Configuración de la finalización de comandos en Windows (p. 82)
• Verifique la finalización de comandos (p. 82)
Cómo funciona
Cuando se introduce parcialmente un comando, parámetro u opción, la función de finalización de
comandos completa automáticamente el comando o muestra una lista sugerida de comandos. Para
solicitar que se complete el comando, escriba parcialmente un comando y pulse Tab (Tabulador).
• Introduzca parcialmente un comando y pulse Tab (Tabulador) para mostrar una lista sugerida de
comandos.
• Introduzca parcialmente un parámetro y pulse Tab (Tabulador) para mostrar una lista sugerida de
parámetros.
• Introduzca un parámetro y pulse Tab (Tabulador) para mostrar una lista sugerida de valores de recursos.
Esta característica solo está disponible en laAWS CLIVersión 2.
79
AWS Command Line Interface Guía del usuario
Configuración de la finalización
de comandos en Linux o macOS
Temas
• Confirme que la carpeta del finalizador está en su ruta (p. 80)
• Habilitar la finalización de comandos (p. 81)
$ which aws_completer
/usr/local/bin/aws_completer
Si el comando qué no puede encontrar el completador, siga los pasos siguientes para agregar la carpeta
del completador a su ruta de acceso.
Si no funciona nada más, puede utilizar lafindpara buscar en su sistema de archivos elAWSCompleter.
• echo $SHELL: muestra el nombre de archivo de programa del shell. Normalmente coincide con el
nombre del shell en uso, a menos que haya iniciado otro shell tras iniciar sesión.
$ echo $SHELL
/bin/bash
• ps: muestra los procesos en ejecución para el usuario actual. Uno de ellos es el shell.
$ ps
PID TTY TIME CMD
2148 pts/1 00:00:00 bash
8756 pts/1 00:00:00 ps
80
AWS Command Line Interface Guía del usuario
Configuración de la finalización
de comandos en Linux o macOS
$ ls -a ~/
. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
• Bash–.bash_profile,.profile, o bien.bash_login
• Zsh–.zshrc
• Tcsh–.tcshrc,.cshrc, o bien.login
2. Añada un comando de exportación al final del script de su perfil igual que en el siguiente ejemplo.
Reemplace /usr/local/bin/ por el nombre de la carpeta que ha creado en la sección anterior.
export PATH=/usr/local/bin/:$PATH
3. Vuelva a cargar el perfil en la sesión actual para que esos cambios surtan efecto. Reemplace
.bash_profile por el nombre del script de shell que ha creado en la primera sección.
$ source ~/.bash_profile
Añada el comando a ~/.bashrc para que se ejecute cada vez que abra un nuevo shell.
~/.bash_profile debe obtener ~/.bashrc para asegurarse de que el comando también se ejecuta
en los shells de inicio de sesión.
• zsh— Para ejecutar la finalización de comandos, es necesario ejecutarbashcompinitAñada la
siguiente línea de carga automática al final de la~/.zshrcscript de perfil.
Añada el comando a ~/.zshrc para que se ejecute cada vez que abra un nuevo shell.
• tcsh— completo paratcshrequiere un tipo de palabra y un patrón para definir el comportamiento de
finalización.
Añada el comando a ~/.tschrc para que se ejecute cada vez que abra un nuevo shell.
81
AWS Command Line Interface Guía del usuario
Configuración de la finalización de comandos en Windows
Para obtener más información sobre los perfiles de PowerShell, consulte.Cómo utilizar perfiles en ISE
de Windows PowerShellen elDocumentos de MicrosoftSitio web.
2. Para habilitar la finalización de comandos, agregue el siguiente bloque de código a su perfil, guarde y, a
continuación, cierre el archivo.
$ aws sTAB
s3 ses sqs sts swf
s3api sns storagegateway support
AWS CLIretries
En este tema se describe cómo se encuentra elAWS CLIpodría ver llamadas aAWSLos servicios de fallan
debido a problemas inesperados. Estos problemas pueden ocurrir en el lado del servidor o pueden fallar
debido a la limitación de velocidad de laAWSal que está intentando llamar. Este tipo de fallos generalmente
no requieren un manejo especial y la llamada se realiza de nuevo automáticamente, a menudo después
de un breve período de espera. LaAWS CLIproporciona muchas características para ayudar a reintentar
llamadas de cliente aAWScuando se experimentan este tipo de errores o excepciones.
82
AWS Command Line Interface Guía del usuario
Modos de reintentos disponibles
Temas
• Modos de reintentos disponibles (p. 83)
• Configuración de un modo de reintento (p. 84)
• Visualización de registros de reintentos (p. 85)
• Un valor predeterminado de 4 para los intentos máximos de reintento, lo que hace un total de 5 intentos
de llamada. Este valor se puede sobrescribir a través delmax_attemptsParámetro de configuración.
• Vuelva a intentar el siguiente número limitado de errores/excepciones:
• Errores generales de conexión:
• ConnectionError
• ConnectionClosedError
• ReadTimeoutError
• EndpointConnectionError
• Errores y excepciones de limitación/limitación del lado del servicio:
• Throttling
• ThrottlingException
• ThrottledException
• RequestThrottledException
• ProvisionedThroughputExceededException
• Reintente los intentos de varios códigos de estado HTTP, incluidos 429, 500, 502, 502, 503, 504 y 509.
• Cualquier intento de reintento incluirá un retroceso exponencial por un factor base de 2.
• Un valor predeterminado de 2 para los intentos máximos de reintento, haciendo un total de 3 intentos de
llamada. Este valor se puede sobrescribir a través delmax_attemptsParámetro de configuración.
• Vuelva a intentar la siguiente lista ampliada de errores/excepciones:
• Errores/excepciones transitorios
• RequestTimeout
• RequestTimeoutException
• PriorRequestNotComplete
83
AWS Command Line Interface Guía del usuario
Configuración de un modo de reintento
• ConnectionError
• HTTPClientError
• Errores y excepciones de limitación/limitación del lado del servicio:
• Throttling
• ThrottlingException
• ThrottledException
• RequestThrottledException
• TooManyRequestsException
• ProvisionedThroughputExceededException
• TransactionInProgressException
• RequestLimitExceeded
• BandwidthLimitExceeded
• LimitExceededException
• RequestThrottled
• SlowDown
• EC2ThrottledException
• Vuelva a intentar con códigos de error transitorios y no descriptivos. Específicamente, estos códigos de
estado HTTP: 500, 502, 503, 504.
• Cualquier intento de reintento incluirá un retroceso exponencial por un factor base de 2 para un tiempo
máximo de retroceso de 20 segundos.
El modo adaptativo es un modo experimental y está sujeto a cambios, tanto en las características
como en el comportamiento.
El modo de reintento adaptativo es un modo de reintento experimental que incluye todas las características
del modo estándar. Además de las características del modo estándar, el modo adaptativo también
introduce la limitación de la velocidad del lado del cliente mediante el uso de un depósito de token y
variables de límite de velocidad que se actualizan dinámicamente con cada intento de reintento. Este modo
ofrece flexibilidad en los reintentos del lado del cliente que se adapta a la respuesta de estado de error/
excepción desde unAWSServicio de.
Con cada nuevo intento de reintento, el modo adaptativo modifica las variables de límite de velocidad en
función del error, la excepción o el código de estado HTTP presentado en la respuesta delAWSServicio de.
Estas variables de límite de velocidad se utilizan para calcular una nueva tasa de llamada para el cliente.
Cada excepción/error o respuesta HTTP no exitosa (proporcionada en la lista anterior) de unAWSactualiza
las variables de límite de velocidad a medida que se producen reintentos hasta que se alcanza el éxito, se
agota el depósito de token o se alcanza el valor máximo de intentos configurado.
84
AWS Command Line Interface Guía del usuario
Visualización de registros de reintentos
• Variables de entorno
• AWS CLIArchivo de configuración
• Modo de reintento: especifica qué modo de reintento se utiliza elAWS CLIUso de. Como se describió
anteriormente, hay tres modos de reintento disponibles: heredado, estándar y adaptativo. El valor
predeterminado deAWS CLILa versión 1 es heredada y paraAWS CLIversión 2 es estándar.
• Máx. intentos: especifica el valor de los intentos de reintento máximos deAWS CLIutiliza el controlador
de retry, donde la llamada inicial cuenta para el valor que proporciona. El valor predeterminado es 5.
• AWS_RETRY_MODE
• AWS_MAX_ATTEMPTS
Para obtener más información acerca de las variables de entorno, consulteVariables de entorno para
configurar la AWS CLI (p. 71).
[default]
retry_mode = standard
max_attempts = 6
Para obtener más información sobre los archivos de configuración, consulteOpciones de los archivos de
configuración y credenciales (p. 51).
85
AWS Command Line Interface Guía del usuario
Obtención de credenciales con un proceso externo
Si busca «reintento» en sus registros de depuración, encontrará la información de reintento que necesita.
Las entradas del registro del cliente para los intentos de reintento dependen del modo de reintento que
haya habilitado.
Modo heredado:
Los mensajes de reintento son generados por botocore.retryhandler. Verá uno de los tres mensajes:
• No retry needed
• Retry needed, action of: <action_name>
• Reached the maximum number of retry attempts: <attempt_number>
Los mensajes de reintento son generados por botocore.retries.standard. Verá uno de los tres mensajes:
• No retrying request
• Retry needed, retrying request after delay of: <delay_value>
• Retry needed but retry quota reached, not retrying request
Si tiene un método para generar o buscar credenciales que no es directamente compatible con laAWS CLI,
puede configurar elAWS CLIpara utilizarlo configurando elcredential_processen elconfigfile.
Por ejemplo, puede incluir una entrada similar a la siguiente en el archivo config:
[profile developer]
credential_process = /opt/bin/awscreds-custom --username helen
Syntax
Para crear esta cadena de forma que sea compatible con cualquier sistema operativo, siga estas reglas:
• Si la ruta de acceso o el nombre del archivo contienen un espacio, rodee la ruta completa y el nombre
del archivo con comillas dobles (" "). La ruta y el nombre de archivo solo pueden constar de los
caracteres: A-Z a-z 0-9 - _. espacio
• Si un nombre de parámetro o un valor de parámetro contienen un espacio, rodee ese elemento con
comillas dobles (" "). Incluya solo el nombre o el valor, no el par.
86
AWS Command Line Interface Guía del usuario
Uso de credenciales para metadatos
de instancias de Amazon EC2
• No incluya ninguna variable de entorno en las cadenas. Por ejemplo, no puede incluir $HOME ni
%USERPROFILE%.
• No especifique la carpeta de inicio como ~. Debe especificar la ruta completa.
La AWS CLI ejecuta el comando tal y como se especifica en el perfil y, a continuación, lee datos de
STDOUT. El comando que especifique debe generar una salida JSON en STDOUT que se ajuste a la
siguiente sintaxis.
{
"Version": 1,
"AccessKeyId": "an AWS access key",
"SecretAccessKey": "your AWS secret access key",
"SessionToken": "the AWS session token for temporary credentials",
"Expiration": "ISO8601 timestamp when the credentials expire"
}
Note
La clave Expiration es una marca temporal con formato ISO8601. Si la clave Expiration no está
presente en la salida de la herramienta, la CLI da por hecho que las credenciales son credenciales a
largo plazo que no se actualizan. De otro modo, las credenciales se consideran credenciales temporales
y se actualizan automáticamente volviendo a ejecutar el comando credential_process antes de que
caduquen.
Note
La AWS CLI no almacena en caché credenciales de procesos externos de la forma que lo hace
con las credenciales de asunción de rol. Si se requiere el almacenamiento en caché, debe
implementarlo en el proceso externo.
El proceso externo puede devolver un código de devolución distinto de cero para indicar que se ha
producido un error al intentar recuperar las credenciales.
87
AWS Command Line Interface Guía del usuario
Prerequisites
Cuando se adjunta un rol de IAM a la instancia, elAWS CLIRecupera las credenciales de los metadatos de
la instancia de forma automática y segura.
Prerequisites
Para utilizar las credenciales de Amazon EC2 con elAWS CLIDebe completar lo siguiente:
• Para lanzar la instancia Amazon EC2AWS CLIYa está instalado. Si el archivo deAWS CLISi no está
instalado, instale laAWS CLI. Para obtener más información, consulte Instalar, actualizar y desinstalar
elAWS CLI (p. 6).
• Comprende los archivos de configuración. Para obtener más información, consulte Opciones de los
archivos de configuración y credenciales (p. 51).
• Entiendes los perfiles con nombre. Para obtener más información, consulte Perfiles con
nombre (p. 64).
• Ha creado unAWS Identity and Access ManagementEl rol de IAM que tiene acceso a los recursos
necesarios y asoció ese rol a la instancia de Amazon EC2 al lanzarla. Para obtener más información,
consultePolíticas de IAM para Amazon EC2en laGuía del usuario de Amazon EC2 para instancias de
LinuxyConceder acceso a aplicaciones que se ejecutan en instancias Amazon EC2AWSRecursosen
laGuía del usuario de IAM.
[profile profilename]
role_arn = arn:aws:iam::123456789012:role/rolename
credential_source = Ec2InstanceMetadata
region = region
[profile profilename]
2. Agregue su rol arn de IAM que tenga acceso a los recursos necesarios.
role_arn = arn:aws:iam::123456789012:role/rolename
credential_source = Ec2InstanceMetadata
4. Establezca su región.
region = region
Ejemplo
88
AWS Command Line Interface Guía del usuario
Uso de un proxy HTTP
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
region = us-west-2
En los ejemplos siguientes, se muestra el nombre de la variable de entorno con todas las letras
en mayúscula. Sin embargo, si especifica una variable dos veces, una vez con letras mayúsculas
y otra vez con letras minúsculas, la variable con letras minúsculas tiene valor. Recomendamos
que defina cada variable solo una vez para evitar la confusión de los clientes y un comportamiento
inesperado.
Los siguientes ejemplos muestran cómo puede utilizar la dirección IP explícita de su proxy o un nombre
de DNS que se resuelve en la dirección IP de su proxy. Cualquiera puede ir seguido de dos puntos y el
número de puerto al que se deben enviar las consultas.
Linux o macOS
$ export HTTP_PROXY=http://10.15.20.25:1234
$ export HTTP_PROXY=http://proxy.example.com:1234
$ export HTTPS_PROXY=http://10.15.20.25:5678
$ export HTTPS_PROXY=http://proxy.example.com:5678
Windows
Autenticación en un proxy
La AWS CLI admite la autenticación básica de HTTP. Especifique el nombre de usuario y la contraseña en
la URL del proxy como se indica a continuación.
Linux o macOS
$ export HTTP_PROXY=http://username:[email protected]:1234
$ export HTTPS_PROXY=http://username:[email protected]:5678
Windows
89
AWS Command Line Interface Guía del usuario
Uso de un proxy en instancias Amazon EC2
Note
La AWS CLI no admite servidores proxy NTLM. Si utiliza un proxy del protocolo NTLM o Kerberos,
es posible que pueda conectarse a través de un proxy de autenticación como Cntlm.
Linux o macOS
$ export NO_PROXY=169.254.169.254
Windows
Puede configurar laAWS Command Line Interface(AWS CLIPara utilizar un rol de IAM mediante la
definición un perfil para el rol en la.~/.aws/configfile.
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
source_profile = user1
Para ejecutar unAWS CLIDesde una instancia de Amazon Elastic Compute Cloud (Amazon EC2) o en un
contenedor de Amazon Elastic Container Service (Amazon ECS), puede utilizar un rol de IAM asociado
90
AWS Command Line Interface Guía del usuario
Configuración y uso de un rol
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
Cuando invoca un rol, tiene otras opciones que puede exigir; por ejemplo, el uso de la autenticación
multifactor y de un ID externo (que compañías externas utilizan para acceder a los recursos de sus
clientes). También puede especificar nombres de sesión de roles únicos que puedan auditarse más
fácilmente en registros AWS CloudTrail.
Secciones
• Configuración y uso de un rol (p. 91)
• Uso de la autenticación multifactor (p. 93)
• Roles entre cuentas e ID externo (p. 94)
• Especificación de un nombre de sesión de rol para simplificar las auditorías (p. 94)
• Adopción de un rol con una identidad web (p. 95)
• Borrado de las credenciales almacenadas en memoria caché (p. 96)
Puede crear un rol en IAM con los permisos que quiera que asuman los usuarios siguiendo el
procedimiento deCreación de un rol para delegar permisos a un usuario de IAMen laAWS Identity and
Access ManagementGuía del usuario. Si el rol y el usuario de IAM del perfil de origen se encuentran en la
misma cuenta, puede introducir su propio ID de cuenta al configurar la relación de confianza del rol.
Después de crear el rol, modifique la relación de confianza para permitir que el usuario de IAM (o los
usuarios de la.AWS) para asumirlo.
En el siguiente ejemplo se muestra una política de confianza que puede asociarse a un rol. Esta política
permite asumir el rol a cualquier usuario de IAM en la cuenta 123456789012,ifel administrador de esa
cuenta otorga explícitamente elsts:assumerolepermiso para el usuario de.
{
"Version": "2012-10-17",
91
AWS Command Line Interface Guía del usuario
Configuración y uso de un rol
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "sts:AssumeRole"
}
]
}
La política de confianza no concede permisos. El administrador de la cuenta debe delegar el permiso para
asumir el rol a usuarios individuales asociando una política a los permisos adecuados. En el siguiente
ejemplo se muestra una política que puede asociarse a un usuario de IAM que permite al usuario asumir
únicamente lamarketingadminroleRol de . Para obtener más información acerca de cómo conceder
acceso a un usuario para asumir un rol, consulteConceder permisos de usuario para cambiar de rolen
laGuía del usuario de IAM.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::123456789012:role/marketingadminrole"
}
]
}
El usuario de IAM no necesita tener permisos adicionales para ejecutar laAWS CLIusando el perfil
de rol. En cambio, los permisos para ejecutar el comando proceden de los asociados al rol. Puede
asociar políticas de permisos al rol para especificar qué acciones pueden realizarse en relación con qué
recursos de AWS. Para obtener más información acerca de cómo asociar permisos a un rol (que funciona
exactamente igual que en un usuario de IAM), consulteCambio de los permisos de un usuario de IAMen
laGuía del usuario de IAM.
Ahora que ya tiene el perfil del rol, los permisos del rol, la relación de confianza del rol y los permisos de
usuario configurados correctamente, puede utilizar el rol en la línea de comandos invocando la opción
--profile. Por ejemplo, el siguiente comando Amazon S3 a lalsusando los permisos adjuntos al
comandomarketingadminDescribe cómo se define en el ejemplo al principio de este tema.
Si desea utilizar el rol para varias llamadas, puede configurar la variable de entorno AWS_PROFILE para la
sesión actual desde la línea de comandos. Siempre que esa variable de entorno se haya definido, no será
necesario especificar la opción --profile en cada comando.
Linux o macOS
$ export AWS_PROFILE=marketingadmin
Windows
Para obtener más información acerca de cómo configurar los usuarios y roles de IAM, consulteUsuarios y
grupos deyRoles deen laGuía del usuario de IAM.
92
AWS Command Line Interface Guía del usuario
Uso de MFA
En primer lugar, puede elegir modificar la relación de confianza del rol de IAM para exigir MFA. Esto impide
que una persona utilice el rol sin autenticarse primero mediante MFA. A modo de ejemplo, vea la línea
Condition en el siguiente ejemplo. Esta directiva permite al usuario de IAM llamadoanikaPara asumir el
rol al que la política está asociado, pero solo si se autentica mediante MFA.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::123456789012:user/anika" },
"Action": "sts:AssumeRole",
"Condition": { "Bool": { "aws:multifactorAuthPresent": true } }
}
]
}
A continuación, añada una línea al perfil del rol que especifique el ARN del dispositivo MFA del usuario. La
siguiente muestraconfigLas entradas de archivo muestran dos perfiles de rol que utilizan las claves de
acceso del usuario de IAManikaPara solicitar credenciales temporales para el rolcli-role. El usuario
anika tiene permisos para asumir el rol, concedidos por la política de confianza del rol.
[profile role-without-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile=cli-user
[profile role-with-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile = cli-user
mfa_serial = arn:aws:iam::128716708097:mfa/cli-user
[profile anika]
region = us-west-2
output = json
El valor mfa_serial puede ser un ARN, tal como se muestra, o el número de serie de un token de MFA
de hardware.
El primer perfil, role-without-mfa, no requiere MFA. Sin embargo, como la política de confianza
asociada al rol del ejemplo anterior requiere MFA, cualquier intento de ejecutar un comando con este perfil
produce un error.
An error occurred (AccessDenied) when calling the AssumeRole operation: Access denied
La segunda entrada del perfil, role-with-mfa, identifica el dispositivo MFA que se va a utilizar.
Cuando el usuario intenta ejecutar unAWS CLIcon este perfil, el comandoAWS CLISolicita al usuario
que introduzca la contraseña de un solo uso (OTP) proporcionada a través del dispositivo MFA. Si la
93
AWS Command Line Interface Guía del usuario
Roles entre cuentas e ID externo
Si utiliza un ID externo para ofrecer mayor control sobre quién puede utilizar un rol entre cuentas, también
debe añadir el parámetro external_id al perfil del rol. Esto se utiliza normalmente solo cuando la otra
cuenta la controla alguien ajeno a su empresa u organización.
[profile crossaccountrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/saanvi
external_id = 123456
Puede simplificar este proceso especificando nombres de sesión de rol únicos cuando los usuarios
asumen un rol. Para ello, añada un parámetro role_session_name a cada perfil con nombre en el
archivo config que especifica un rol. El valor role_session_name se pasa a la operación AssumeRole
y pasa a formar parte del ARN de la sesión de rol. También se incluye en los registros de AWS CloudTrail
de todas las operaciones registradas.
[profile namedsessionrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
role_session_name = Session_Maria_Garcia
arn:aws:iam::234567890123:assumed-role/SomeRole/Session_Maria_Garcia
Además, todos los registros de AWS CloudTrail incluyen el nombre de la sesión del rol en la información
obtenida para cada operación.
94
AWS Command Line Interface Guía del usuario
Adopción de un rol con una identidad web
Cuando especifica un perfil que utiliza un rol de IAM, laAWS CLIRealiza las llamadas
correspondientes para recuperar las credenciales temporales. Estas credenciales se guardan en
~/.aws/cli/cache. Los comandos de la AWS CLI posteriores que especifican el mismo perfil
utilizan las credenciales temporales almacenadas en caché hasta que caducan. En ese momento,
la AWS CLI actualiza automáticamente las credenciales.
Para recuperar y utilizar credenciales temporales utilizando identidades federadas web, puede especificar
los siguientes valores de configuración en un perfil compartido:
# In ~/.aws/config
[profile web-identity]
role_arn=arn:aws:iam:123456789012:role/RoleNameToAssume
web_identity_token_file=/path/to/a/token
También puede establecer esta configuración utilizando variables de entorno (p. 71):
AWS_ROLE_ARN
Note
Actualmente, estas variables de entorno solo se aplican al rol que se va a adoptar con un
proveedor de identidades web. No se aplican a la configuración general del proveedor de roles de
adopción.
95
AWS Command Line Interface Guía del usuario
Borrado de las credenciales
almacenadas en memoria caché
Linux o macOS
$ rm -r ~/.aws/cli/cache
Windows
96
AWS Command Line Interface Guía del usuario
Obtener ayuda
De forma predeterminada, la AWS CLI envía solicitudes a los servicios de AWS mediante HTTPS
en el puerto TCP 443. Para utilizar la AWS CLI correctamente, debe poder realizar conexiones
salientes en el puerto TCP 443.
Por ejemplo, el siguiente comando muestra la ayuda de las opciones generales de la AWS CLI generales y
los comandos de nivel superior.
$ aws help
En el siguiente comando se muestran los comandos específicos de Amazon Elastic Compute Cloud
(Amazon EC2) disponibles.
Nombre
97
AWS Command Line Interface Guía del usuario
Obtener ayuda
NAME
describe-instances -
Descripción
DESCRIPTION
Describes one or more of your instances.
If you specify one or more instance IDs, Amazon EC2 returns information
for those instances. If you do not specify instance IDs, Amazon EC2
returns information for all relevant instances. If you specify an
instance ID that is not valid, an error is returned. If you specify an
instance that you do not own, it is not included in the returned
results.
...
Sinopsis
La sintaxis básica para utilizar el comando y sus opciones. Si una opción aparece entre corchetes,
significa que es opcional, que tiene un valor predeterminado o que existe una opción alternativa que
puede utilizarse en su lugar.
SYNOPSIS
describe-instances
[--dry-run | --no-dry-run]
[--instance-ids <value>]
[--filters <value>]
[--cli-input-json <value>]
[--starting-token <value>]
[--page-size <value>]
[--max-items <value>]
[--generate-cli-skeleton]
OPTIONS
--dry-run | --no-dry-run (boolean)
Checks whether you have the required permissions for the action,
without actually making the request, and provides an error response.
If you have the required permissions, the error response is DryRun-
Operation . Otherwise, it is UnauthorizedOperation .
--instance-ids (list)
One or more instance IDs.
98
AWS Command Line Interface Guía del usuario
Obtener ayuda
Ejemplos
Ejemplos que ilustran el uso del comando y sus opciones. Si no se proporciona un ejemplo de un
comando o un caso de uso que necesite, solicítelo a través del enlace de comentarios de esta página
o de la referencia de comandos de la AWS CLI en la página de ayuda del comando.
EXAMPLES
To describe an Amazon EC2 instance
Command:
Command:
Command:
Salida
Descripciones de cada uno de los campos y tipos de datos incluidos en la respuesta de AWS.
Para describe-instances, la salida es una lista de objetos de reserva, cada uno de los cuales
contiene varios campos y objetos con información acerca de las instancias asociadas al mismo.
Esta información proviene de laDocumentación de API para el tipo de datos de reservaUtilizado por
Amazon EC2.
OUTPUT
Reservations -> (list)
One or more reservations.
(structure)
Describes a reservation.
(structure)
Describes a security group.
99
AWS Command Line Interface Guía del usuario
Documentación de AWS CLI
(structure)
Describes an instance.
Cuando la AWS CLI proporciona la salida en formato JSON, se convierte en una matriz de objetos de
reserva, similar a la del siguiente ejemplo.
{
"Reservations": [
{
"OwnerId": "012345678901",
"ReservationId": "r-4c58f8a0",
"Groups": [],
"RequesterId": "012345678901",
"Instances": [
{
"Monitoring": {
"State": "disabled"
},
"PublicDnsName": "ec2-52-74-16-12.us-west-2.compute.amazonaws.com",
"State": {
"Code": 16,
"Name": "running"
},
...
Cada objeto de reserva tiene campos que describen la reserva y una matriz de objetos de instancia,
cada uno de ellos con sus propios campos (por ejemplo, PublicDnsName) y objetos (por ejemplo
State) que los describen.
Usuarios de Windows
Puede añadir una barra vertical (|) a la salida del comando de ayuda al comando more para
ver las páginas del archivo de ayuda una a una. Pulse la barra espaciadora o AvPág para
avanzar por el documento y q para salir.
100
AWS Command Line Interface Guía del usuario
Documentación de la API
Note
Los archivos de ayuda contienen enlaces que no se pueden ver o visitar desde la línea de
comandos. Puede ver e interactuar con estos enlaces a través de laAWS CLIReferencia de los
comandos de la.
Documentación de la API
Todos los comandos de la AWS CLI corresponden a solicitudes realizadas a la API pública de un servicio
de AWS. Cada servicio con una API pública tiene una referencia de API que puede encontrarse en la
página de inicio del servicio en laAWSSitio web Documentación. El contenido de una referencia de API
varía en función de cómo se construye la API y del protocolo utilizado. Normalmente, las referencias de
API contienen información detallada sobre las acciones compatibles con la API, los datos enviados al
servicio y desde este, y cualquier posible situación de error que pueda detectar el sistema.
• Actions— Información detallada de cada operación y sus parámetros (incluidas las restricciones de
longitud o contenido y valores predeterminados). Muestra los errores que pueden ocurrir con esta
operación. Cada operación se corresponde con un subcomando de la AWS CLI.
• Tipos de datos— Información detallada sobre las estructuras que un comando puede requerir como
parámetro o devolver en respuesta a una solicitud.
• Parámetros comunes: información detallada sobre los parámetros compartidos por toda la acción para el
servicio.
• Errores comunes: información detallada sobre los errores que pueden ser devueltos por cualquiera de
las operaciones del servicio.
Algunos servicios tienen una CLI distinta que existía antes de que se creara una única AWS CLI
para funcionar con todos los servicios. Las CLI específicas de los servicios tienen documentación
aparte, a la que se accede con un enlace a la página de documentación del servicio. La
documentación de las CLI específicas de los servicios no se aplica a la AWS CLI.
Temas
• Estructura de comandos (p. 101)
• Wait (p. 102)
Estructura de comandos
LaAWS CLILa utiliza una estructura multiparte en la línea de comandos que deben especificarse en el
siguiente orden:
101
AWS Command Line Interface Guía del usuario
Wait
Los parámetros pueden tomar varios tipos de valores de entrada, como números, cadenas, listas, mapas y
estructuras JSON. Los valores admitidos dependen del comando y los subcomandos que especifique.
Examples
Amazon S3
$ aws s3 ls
2018-12-11 17:08:50 my-bucket
2018-12-14 14:55:44 my-bucket2
Para obtener más información sobre los comandos de Amazon S3, consulte.aws s3en laAWS
CLIReferencia de los comandos de la.
aws s3
AWS CloudFormation
Wait
AlgunoAWSlos servicios tienenwaitdisponibles. Cualquier comando que useaws waitPor lo general,
espera hasta que un comando se completa antes de ir al siguiente paso. Esto es especialmente útil para
comandos multiparte o secuencias de comandos, ya que puede utilizar un comando wait para evitar pasar
a pasos posteriores si el comando wait falla.
LaAWS CLILa usa una estructura multiparte en la línea de comandos para lawaitque deben especificarse
en el siguiente orden:
102
AWS Command Line Interface Guía del usuario
Especificación de valores de parámetros
Los parámetros pueden tomar varios tipos de valores de entrada, como números, cadenas, listas, mapas y
estructuras JSON. Los valores admitidos dependen del comando y los subcomandos que especifique.
Note
No todos los servicios de AWS admitenwaitcommands. Consulte laAWS CLIGuía de referencia
depara ver si su servicio admitewaitcommands.
Examples
AWS CloudFormation
Para obtener más información sobre lasAWS CloudFormation waitconsultewaiten laAWS CLIReferencia
de los comandos de la.
AWS CodeDeploy
Para obtener más información sobre lasAWS CodeDeploy waitconsultewaiten laAWS CLIReferencia de
los comandos de la.
Puede entrecomillar o no cadenas que no contengan caracteres de espacio. Sin embargo, las cadenas que
incluyen uno o varios caracteres de espacio deben entrecomillarse. Para obtener más información sobre
el uso de comillas alrededor de parámetros complejos, consulte Entrecomillado de cadenas en la AWS
CLI (p. 106).
103
AWS Command Line Interface Guía del usuario
Tipos de parámetros comunes
La ayuda para cada subcomando describe su función, opciones, resultado y ejemplos. La sección de
opciones incluye el nombre y la descripción de cada una de las opciones con el tipo de parámetro de la
opción entre paréntesis.
String
Los parámetros de cadena pueden contener caracteres alfanuméricos, símbolos y espacios en blanco del
conjunto de caracteres ASCII. Las cadenas que contienen espacios en blanco deben entrecomillarse. Le
recomendamos que no utilice símbolos ni espacios en blanco diferentes del carácter de espacio estándar,
ya que se podrían producir resultados inesperados.
Algunos parámetros de cadena pueden aceptar datos binarios de un archivo. Consulte Archivos
binarios (p. 109) para ver un ejemplo.
Timestamp
Las marcas temporales tienen un formato conforme a la norma ISO 8601. A veces se les denomina
parámetros "DateTime" o "Date".
(está disponible en.AWS CLIVersión 2) De forma predeterminada, laAWS CLILa versión 2 traduce todos
losresponseValores DateTime al formato ISO 8601.
List
Una o varias cadenas separadas por espacios. Si cualquiera de los elementos de cadena contiene un
espacio, debe escribir dicho elemento entre comillas.
Boolean
Marcador binario que activa o desactiva una opción. Por ejemplo, ec2 describe-spot-price-
history tiene con un parámetro --dry-run booleano que, cuando se especifica, valida la consulta con
el servicio sin ejecutar realmente una consulta.
104
AWS Command Line Interface Guía del usuario
Tipos de parámetros comunes
El resultado indica si el comando tenía el formato correcto o no. Este comando también incluye una
versión --no-dry-run del parámetro que puede utilizarse para indicar de forma explícita que el comando
debe ejecutarse con normalidad, aunque no es necesario incluirlo, ya que este es el comportamiento
predeterminado.
Integer
Un número entero sin firma.
(está disponible en.AWS CLIVersión 2) En el navegadorAWS CLILa versión 2, puede pasar un valor
binario como una cadena codificada en base64 directamente en la línea de comandos. Además, de forma
predeterminada en el cuadro de diálogoAWS CLIversión 2, los archivos a los que se hace referencia con
elfile://se tratan como texto codificado en base64.
Puede revertir elAWS CLIversión 2 para ser compatible conAWS CLIversión 1 configurando la
propiedadcli-binary-format (p. 55)Configuración de :
• Si el valor del parámetro es raw-in-base64-out, los archivos a los que se hace referencia utilizando
el prefijo file:// se tratan como binarios sin codificar y sin procesar.
• Si el valor del parámetro es base64 (el valor predeterminado), los archivos a los que se hace referencia
mediante el prefijo file:// se tratan como texto codificado en base64.
Los archivos a los que se hace referencia utilizando el prefijo fileb:// siempre se tratan como binarios
sin codificar, independientemente del valor de cli_binary_format.
Map
Un conjunto de pares de clave-valor especificado en JSON o mediante la sintaxis abreviada (p. 118)
de la CLI. En el siguiente ejemplo de JSON, se lee un elemento de una tabla de Amazon DynamoDB
denominadamy-tablecon un parámetro de mapa,--key. El parámetro especifica la clave principal
denominada id con un valor numérico de 1 en una estructura JSON anidada.
Para un uso más avanzado de JSON en una línea de comandos, considere usar un procesador JSON
de línea de comandos, comojq, para crear cadenas JSON. Para obtener más información sobre lasjq,
consulte lajq repositoriosenGitHub.
105
AWS Command Line Interface Guía del usuario
Comillas con cadenas
{
"Item": {
"name": {
"S": "John"
},
"id": {
"N": "1"
}
}
}
• Usar comillas alrededor de cadenas que contienen espacios en blanco (p. 106)
• Usar comillas dentro de cadenas (p. 107)
Para obtener más información acerca del uso de comillas, consulte la documentación del usuario de
su shell preferido.
PowerShell
Comillas dobles
Para obtener más información acerca del uso de comillas, consulteAcerca de las reglas de
cotizaciónen laDocumentos de Microsoft PowerShell.
Windows command prompt
106
AWS Command Line Interface Guía del usuario
Comillas con cadenas
Si lo desea, puede separar el nombre del parámetro del valor con un signo de igual=en lugar de un
espacio. Normalmente, esto solo es necesario si el valor del parámetro comienza con un guion.
Para un uso más avanzado de JSON en la línea de comandos, considere usar un procesador JSON de
línea de comandos, comojq, para crear cadenas JSON. Para obtener más información sobre lasjq,
consulte lajq repositoriosenGitHub.
Para que Linux y macOS interpreten cadenas, literalmente, use comillas simples' 'Para entrecomillar
la estructura de datos JSON, como en el siguiente ejemplo. No necesita escapar comillas dobles
incrustadas en la cadena JSON, ya que se tratan literalmente. Dado que el JSON está encerrado entre
comillas simples, cualquier comilla simple en la cadena tendrá que ser escapada, esto generalmente
se logra usando una barra diagonal inversa antes de la comilla simple\'.
Para obtener más información acerca del uso de comillas, consulte la documentación del usuario de
su shell preferido.
PowerShell
Dado que las estructuras de datos JSON incluyen comillas dobles, sugerimosSINGLEComillas'
'para adjuntarlo. Si usaSINGLEcomillas, no necesita escapardoublecomillas incrustadas en la cadena
JSON. Sin embargo, debe escapar de cadaSINGLEcomillas con una marca de retroceso`dentro de la
estructura JSON.
Comillas dobles
107
AWS Command Line Interface Guía del usuario
Parámetros de archivos
Para obtener más información acerca del uso de comillas, consulteAcerca de las reglas de
cotizaciónen laDocumentos de Microsoft PowerShell.
Warning
Para omitir las reglas de cita de PowerShell para la entrada de datos JSON, use Blobs para
pasar los datos JSON directamente alAWS CLI. Para obtener más información acerca de los
blobs, consulteBinario/Blob (objeto binario grande) (p. 105).
Para obtener más información sobre lasCommandLineToArgvWEn PowerShell,
consulte¿Qué pasa con el extraño tratamiento de comillas y barras invertidas por
CommandLineToArgVWen laMicrosoft DevBlogs,Todos citan argumentos de línea de
comandos de manera incorrectaen laMicrosoft Docs, yfunción CommandLineToArgvwen
laDocumentos de Microsoft.
Windows command prompt
El símbolo del sistema de Windows requiere comillas dobles" "Para incluir la estructura de datos
JSON. Además, para evitar que el procesador de comandos malinterprete las comillas dobles
incrustadas en el JSON, también debe escapar (ir precedido por una barra invertida\Comillas
dobles"En la propia estructura de datos JSON, como en el siguiente ejemplo.
El único caso en el que no se utiliza el carácter de escape es con las comillas dobles de los extremos.
De forma predeterminada, Windows PowerShell genera texto como UTF-16, lo que está en
conflicto con la codificación UTF-8 utilizada por muchos sistemas Linux. Le recomendamos que
utilice -Encoding ascii con los comandos Out-File de PowerShell para asegurarse de que
la AWS CLI puede leer el archivo resultante.
108
AWS Command Line Interface Guía del usuario
Parámetros de archivos
En ocasiones, resulta conveniente cargar el valor de un parámetro desde un archivo en lugar de intentar
escribirlo como un valor de parámetro de la línea de comandos, como, por ejemplo, cuando el parámetro
es una cadena JSON compleja. Para especificar un archivo que contenga el valor, especifique la URL del
archivo con el siguiente formato.
file://complete/path/to/file
Los dos primeros caracteres de barra inclinada "/" forman parte de la especificación. Si la ruta requerida
comienza con '/', el resultado será tres caracteres de barra inclinada: file:///folder/file.
La dirección URL proporciona la ruta al archivo que incluye el contenido del parámetro real.
Note
Este comportamiento se deshabilita de forma automática en los parámetros que ya esperan una
URL, como el parámetro que identifica una URL de plantilla de AWS CloudFormation.
También puede deshabilitar este comportamiento añadiendo la siguiente línea a suAWS
CLIArchivo de configuración.
cli_follow_urlparam = false
Las rutas de archivo en los siguientes ejemplos se interpretan como rutas relativas al directorio de trabajo
actual.
Linux o macOS
Windows
La opción de prefijo file:// admite ampliaciones tipo Unix, incluidas "~/", "./" y "../". En Windows, la
expresión "~/" se amplía a su directorio de usuarios, guardado en la variable de entorno %USERPROFILE%.
Por ejemplo, en Windows 10 normalmente tendría un directorio de usuarios en C:\Users\User Name\.
Debe añadir el carácter de escape a los documentos JSON que están integrados como valor de otro
documento JSON.
attributes.json
{
"RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-
west-2:0123456789012:deadletter\", \"maxReceiveCount\":\"5\"}"
}
Archivos binarios
Para los comandos que toman datos binarios como un parámetro, especifique que los datos son contenido
binario utilizando el prefijo fileb://. Los comandos que aceptan datos binarios son:
109
AWS Command Line Interface Guía del usuario
Generar una plantilla de esqueleto de la CLI
En el siguiente ejemplo, se genera una clave AES binaria de 256 bits utilizando una herramienta de línea
de comandos de Linux y después se proporciona dicha clave a Amazon S3 para cifrar un archivo cargado
en el lado del servidor.
Archivos remotos
La AWS CLI también permite cargar parámetros desde un archivo ubicado en Internet con una URL
http:// o https://. En el siguiente ejemplo, se hace referencia a un archivo almacenado en un bucket
de Amazon S3. Esto le permite obtener acceso a archivos de parámetros desde cualquier equipo, pero
requiere que el contenedor sea de acceso público.
En el ejemplo anterior se presupone que el archivo filename.json contiene los siguientes datos JSON.
[
{
"DeviceName": "/dev/sdb",
"Ebs": {
"VolumeSize": 20,
"DeleteOnTermination": false,
"VolumeType": "standard"
}
}
]
Para ver otro ejemplo que haga referencia a un archivo que contenga parámetros con formato JSON,
consulteAsociación de una política administrada por IAM a un usuario de IAM (p. 182).
Puede crear y consumir plantillas de esqueleto de entrada YAML sólo con la versión 2 de laAWS
CLI. Si usaAWS CLILa versión 1, solo podrá crear y consumir plantillas de esqueleto de entrada
JSON.
110
AWS Command Line Interface Guía del usuario
Generar una plantilla de esqueleto de la CLI
La mayoría de los comandos de AWS Command Line Interface (AWS CLI) pueden aceptar toda la entrada
de parámetros desde un archivo con los parámetros --cli-input-json y --cli-input-yaml.
Esos mismos comandos cuentan con el parámetro --generate-cli-skeleton, que permite generar
un archivo con todos los parámetros en formato YAML o JSON que se pueden editar y rellenar. A
continuación, puede ejecutar el comando con el parámetro --cli-input-json o --cli-input-yaml
correspondiente y apuntar al archivo cumplimentado.
Important
El resultado incluye una sección Synopsis que muestra los parámetros que admite el comando
especificado.
• inputLa plantilla generada incluye todos los parámetros de entrada con formato JSON. Este es el valor
predeterminado.
• yaml-inputLa plantilla generada incluye todos los parámetros de entrada con formato YAML.
• outputLa plantilla generada incluye todos los parámetros de salida con formato JSON. Actualmente, no
puede solicitar los parámetros de salida en formato YAML.
Como la AWS CLI es esencialmente un "encapsulador" de la API del servicio, el archivo de esqueleto
espera que el usuario haga referencia a todos los parámetros utilizando los nombres de parámetro de
la API subyacente. Es probable que este nombre sea distinto al nombre del parámetro de la AWS CLI.
Por ejemplo, un parámetro de la AWS CLI llamado user-name podría corresponderse con un parámetro
de la API de servicio de AWS llamado UserName (observe cómo se usan las mayúsculas y que falta un
guion). Le recomendamos que utilice la opción --generate-cli-skeleton para generar la plantilla
con los nombres de parámetros "correctos" con el fin de evitar errores. También puede consultar la Guía
de referencia de la API del servicio para ver los nombres de los parámetros esperados. Puede eliminar
cualquier parámetro de la plantilla que no sea necesario y para el que no desee proporcionar un valor.
Por ejemplo, si ejecuta el siguiente comando, se genera la plantilla de parámetros para el comando de
Amazon Elastic Compute Cloud (Amazon EC2)run-instances.
111
AWS Command Line Interface Guía del usuario
Generar una plantilla de esqueleto de la CLI
JSON
En el siguiente ejemplo, se muestra cómo se genera una plantilla con formato JSON utilizando el valor
predeterminado (input) en el parámetro --generate-cli-skeleton.
{
"DryRun": true,
"ImageId": "",
"MinCount": 0,
"MaxCount": 0,
"KeyName": "",
"SecurityGroups": [
""
],
"SecurityGroupIds": [
""
],
"UserData": "",
"InstanceType": "",
"Placement": {
"AvailabilityZone": "",
"GroupName": "",
"Tenancy": ""
},
"KernelId": "",
"RamdiskId": "",
"BlockDeviceMappings": [
{
"VirtualName": "",
"DeviceName": "",
"Ebs": {
"SnapshotId": "",
"VolumeSize": 0,
"DeleteOnTermination": true,
"VolumeType": "",
"Iops": 0,
"Encrypted": true
},
"NoDevice": ""
}
],
"Monitoring": {
"Enabled": true
},
"SubnetId": "",
"DisableApiTermination": true,
"InstanceInitiatedShutdownBehavior": "",
"PrivateIpAddress": "",
"ClientToken": "",
"AdditionalInfo": "",
"NetworkInterfaces": [
{
"NetworkInterfaceId": "",
"DeviceIndex": 0,
"SubnetId": "",
"Description": "",
"PrivateIpAddress": "",
"Groups": [
""
],
"DeleteOnTermination": true,
"PrivateIpAddresses": [
112
AWS Command Line Interface Guía del usuario
Generar una plantilla de esqueleto de la CLI
{
"PrivateIpAddress": "",
"Primary": true
}
],
"SecondaryPrivateIpAddressCount": 0,
"AssociatePublicIpAddress": true
}
],
"IamInstanceProfile": {
"Arn": "",
"Name": ""
},
"EbsOptimized": true
}
YAML
En el ejemplo siguiente, se muestra cómo se genera una plantilla con formato YAML utilizando el valor
yaml-input en el parámetro --generate-cli-skeleton.
113
AWS Command Line Interface Guía del usuario
Generar una plantilla de esqueleto de la CLI
114
AWS Command Line Interface Guía del usuario
Generar una plantilla de esqueleto de la CLI
115
AWS Command Line Interface Guía del usuario
Generar una plantilla de esqueleto de la CLI
JSON
YAML
2. Abra el archivo de esqueleto de parámetros en el editor de texto y quite todos los parámetros que no
necesite. Por ejemplo, puede reducir la plantilla hasta dejarla tal y como se muestra a continuación.
Asegúrese de que el código JSON o YAML del archivo sigue siendo válido después de eliminar los
elementos que no necesita.
JSON
{
"DryRun": true,
"ImageId": "",
"KeyName": "",
"SecurityGroups": [
""
],
"InstanceType": "",
"Monitoring": {
"Enabled": true
}
}
YAML
DryRun: true
ImageId: ''
KeyName: ''
SecurityGroups:
- ''
InstanceType:
Monitoring:
Enabled: true
116
AWS Command Line Interface Guía del usuario
Generar una plantilla de esqueleto de la CLI
JSON
{
"DryRun": true,
"ImageId": "ami-dfc39aef",
"KeyName": "mykey",
"SecurityGroups": [
"my-sg"
],
"InstanceType": "t2.micro",
"Monitoring": {
"Enabled": true
}
}
YAML
DryRun: true
ImageId: 'ami-dfc39aef'
KeyName: 'mykey'
SecurityGroups:
- 'my-sg'
InstanceType: 't2.micro'
Monitoring:
Enabled: true
4. Ejecute el comando con los parámetros completados pasando el archivo de plantilla relleno al
parámetro --cli-input-json o --cli-input-yaml utilizando el prefijo file://. La AWS CLI
interpreta la ruta como una ruta relativa al directorio de trabajo actual, por lo que el siguiente ejemplo,
en el que solo aparece el nombre de archivo y no la ruta, buscará el archivo directamente en el
directorio de trabajo actual.
JSON
YAML
El error del simulacro indica que el código JSON o YAML está formado correctamente y que los
valores de los parámetros son válidos. Si se informa de cualquier otro problema en la salida, corríjalo y
repita el paso anterior hasta que aparezca el mensaje "Request would have succeeded".
5. Ahora puede establecer el parámetro DryRun en false para deshabilitar el simulacro.
JSON
{
"DryRun": false,
117
AWS Command Line Interface Guía del usuario
Sintaxis abreviada
"ImageId": "ami-dfc39aef",
"KeyName": "mykey",
"SecurityGroups": [
"my-sg"
],
"InstanceType": "t2.micro",
"Monitoring": {
"Enabled": true
}
}
YAML
DryRun: false
ImageId: 'ami-dfc39aef'
KeyName: 'mykey'
SecurityGroups:
- 'my-sg'
InstanceType: 't2.micro'
Monitoring:
Enabled: true
JSON
{
"OwnerId": "123456789012",
"ReservationId": "r-d94a2b1",
"Groups": [],
"Instances": [
...
YAML
OwnerId: '123456789012'
ReservationId: 'r-d94a2b1',
Groups":
- ''
Instances:
...
118
AWS Command Line Interface Guía del usuario
Sintaxis abreviada
Parámetros estructurales
La sintaxis abreviada de la AWS CLI facilita a los usuarios la introducción de parámetros planos (con
estructuras no anidadas). El formato consiste en una lista de pares de clave-valor separados por comas.
Linux o macOS
--option key1=value1,key2=value2,key3=value3
PowerShell
--option "key1=value1,key2=value2,key3=value3"
--option '{"key1":"value1","key2":"value2","key3":"value3"}'
No debe haber espacios en blanco entre cada uno de los pares de clave-valor separados por comas.
A continuación se muestra un ejemplo de Amazon DynamoDBupdate-tableComando de la--
provisioned-throughputespecificada en taquigrafía.
A continuación se muestra el formato básico, en el que los valores de la lista están separados por un único
espacio.
--option '[value1,value2,value3]'
Como ya hemos mencionado anteriormente, puede especificar una lista de números, una lista de cadenas
o una lista de estructuras no anidadas en formato abreviado. A continuación se muestra un ejemplo
destop-instancesPara Amazon Elastic Compute Cloud (Amazon EC2), en el que el parámetro de
entrada (lista de cadenas) para el comando--instance-idsse especifica en taquigrafía.
119
AWS Command Line Interface Guía del usuario
Preguntar automáticamente
En el siguiente ejemplo Amazon EC2 lacreate-tags, que toma una lista de estructuras no anidadas para
el comando--tagsopción. La opción --resources especifica el identificador de la instancia que debe
etiquetarse.
Esto equivale al siguiente ejemplo con formato JSON. El parámetro JSON está escrito en varias líneas
para facilitar su lectura.
Temas
• Cómo funciona (p. 120)
• Funciones de autopetición (p. 121)
• Modos de indicación automática (p. 123)
• Configurar mensaje automático (p. 123)
Cómo funciona
Si está habilitada, el mensaje automático le permite utilizar la funciónESCRIBApara completar un
comando introducido parcialmente. Después de presionar el botónESCRIBA, comandos, parámetros y
recursos se sugieren en función de lo que siga escribiendo. Las sugerencias muestran el nombre del
comando, parámetro o recurso a la izquierda y una descripción del mismo a la derecha. Para seleccionar
y utilizar una sugerencia, utilice las teclas de flechas para resaltar una fila y, a continuación, presione la
teclaESPACIOUna clave de. Cuando haya terminado de ingresar en el comando, presioneESCRIBAPara
utilizar el comando. En el siguiente ejemplo se muestra cómo se ve una lista sugerida de auto-prompt.
$ aws
> aws a
120
AWS Command Line Interface Guía del usuario
Funciones de autopetición
Funciones de autopetición
El mensaje automático contiene las siguientes características útiles:
Panel de documentación:
Proporciona la documentación de ayuda del comando actual. Para abrir la documentación, presione la
teclaF3Una clave de.
Finalización de comandos
Sugerenciasawscomandos que se van a utilizar. Para ver una lista, ingrese parcialmente el comando.
En el siguiente ejemplo se busca un servicio que comience con la letraa.
$ aws
> aws a
accessanalyzer Access Analyzer
acm AWS Certificate Manager
acm-pca AWS Certificate Manager Private Certificate
Authority
alexaforbusiness Alexa For Business
amplify AWS Amplify
Finalización de parámetros
Finalización de recursos
El mensaje automático realiza llamadas a la API de AWS utilizando las propiedades de recursos de
AWS disponibles para sugerir valores de recursos. Esto permite que el mensaje automático sugiera
posibles recursos que posee al introducir parámetros. En el siguiente ejemplo, el mensaje automático
muestra los nombres de las tablas al rellenar el--table-nameParámetro para el parámetro deaws
dynamodb describe-tablecomando de.
121
AWS Command Line Interface Guía del usuario
Funciones de autopetición
Completación abreviada
Para los parámetros que utilizan sintaxis abreviada, el indicador automático sugiere valores a utilizar.
En el ejemplo siguiente, el indicador automático muestra los valores de sintaxis abreviada para el
parámetro--placementParámetro en el parámetro deaws ec2 run-stancescomando de.
Al rellenar parámetros enaws, autocompletar sugiere nombres de archivo locales después de usar el
prefijofile://orfileb://. En el siguiente ejemplo, el mensaje automático sugiere archivos locales
después de ingresar en--item file://para laaws ec2 run-instancescomando de.
Finalización de región
Cuando se utiliza el parámetro global--region, el mensaje automático muestra las regiones posibles
para seleccionar. En el siguiente ejemplo, el indicador automático sugiere regiones en orden alfabético
después de escribir en--regionpara laaws dynamodb list-tablescomando de.
Búsqueda aproximada
122
AWS Command Line Interface Guía del usuario
Modos de indicación automática
Historial
$ aws
> aws
dynamodb list-tables
s3 ls
• Modo completo: Utiliza el mensaje automático cada vez que intenta ejecutar unaws, ya sea que lo llame
manualmente usando el comando--cli-auto-prompto lo habilitó permanentemente. Esto incluye
presionarESCRIBAdespués de un comando completo o un comando incompleto.
• Modo parcial: Utiliza autoprompt si un comando está incompleto o no se puede ejecutar debido a
errores de validación del lado del cliente. Este modo es especialmente útil si tiene scripts preexistentes,
runbooks, o sólo desea que se le pregunte automáticamente para los comandos con los que no está
familiarizado en lugar de solicitarse en cada comando.
Temas
• Establecimiento de laAWS CLIFormato de salida (p. 124)
• Uso de las opciones de paginación de la AWS CLI (p. 130)
123
AWS Command Line Interface Guía del usuario
Output Format (Formato de salida)
Temas
• Cómo seleccionar el formato de salida (p. 124)
• Formato de salida JSON (p. 125)
• Formato de salida YAML (p. 125)
• Formato de salida YAML (p. 126)
• Formato de salida de texto (p. 127)
• Formato de salida de tabla (p. 129)
• Mediante laoutputen un perfil con nombre en laconfigfileEl siguiente ejemplo establece el formato de
la salida predeterminada comotext.
[default]
output=text
$ export AWS_DEFAULT_OUTPUT="table"
• Mediante la--outputen la línea de comandosEl siguiente ejemplo establece la salida de solo este
comando comojson. El uso de esta opción en el comando anula cualquier variable de entorno definida
actualmente o el valor en el archivo config.
124
AWS Command Line Interface Guía del usuario
Output Format (Formato de salida)
Para aplicar un filtrado más avanzado que el que permite --query, considere la posibilidad de utilizar
jq, un procesador JSON de línea de comandos. Puede descargarlo y consultar el tutorial oficial en http://
stedolan.github.io/jq/.
{
"Users": [
{
"Path": "/",
"UserName": "Admin",
"UserId": "AIDA1111111111EXAMPLE",
"Arn": "arn:aws:iam::123456789012:user/Admin",
"CreateDate": "2014-10-16T16:03:09+00:00",
"PasswordLastUsed": "2016-06-03T18:37:29+00:00"
},
{
"Path": "/backup/",
"UserName": "backup-user",
"UserId": "AIDA2222222222EXAMPLE",
"Arn": "arn:aws:iam::123456789012:user/backup/backup-user",
"CreateDate": "2019-09-17T19:30:40+00:00"
},
{
"Path": "/",
"UserName": "cli-user",
"UserId": "AIDA3333333333EXAMPLE",
"Arn": "arn:aws:iam::123456789012:user/cli-user",
"CreateDate": "2019-09-17T19:11:39+00:00"
}
]
}
YAML es una buena opción para administrar la salida mediante programación con herramientas y servicios
que emiten o consumen cadenas con formato YAML, como AWS CloudFormation, que admite plantillas
con formato YAML.
Para aplicar un filtrado más avanzado que el que permite --query, considere la posibilidad de utilizar
yq, un procesador YAML de línea de comandos. Puede descargarlo y buscar documentación en https://
mikefarah.gitbook.io/yq/.
125
AWS Command Line Interface Guía del usuario
Output Format (Formato de salida)
Users:
- Arn: arn:aws:iam::123456789012:user/Admin
CreateDate: '2014-10-16T16:03:09+00:00'
PasswordLastUsed: '2016-06-03T18:37:29+00:00'
Path: /
UserId: AIDA1111111111EXAMPLE
UserName: Admin
- Arn: arn:aws:iam::123456789012:user/backup/backup-user
CreateDate: '2019-09-17T19:30:40+00:00'
Path: /backup/
UserId: AIDA2222222222EXAMPLE
UserName: arq-45EFD6D1-CE56-459B-B39F-F9C1F78FBE19
- Arn: arn:aws:iam::123456789012:user/cli-user
CreateDate: '2019-09-17T19:30:40+00:00'
Path: /
UserId: AIDA3333333333EXAMPLE
UserName: cli-user
Layaml-streamEl formato aprovecha laYAMLal tiempo que proporciona una visualización más receptiva/
más rápida de conjuntos de datos grandes mediante la transmisión de los datos a usted. Puede comenzar
a ver y usar datos YAML antes de que se descargue toda la consulta.
Para aplicar un filtrado más avanzado que el que permite --query, considere la posibilidad de utilizar
yq, un procesador YAML de línea de comandos. Puede descargarlo y buscar documentación en http://
mikefarah.github.io/yq/.
- IsTruncated: false
Users:
- Arn: arn:aws:iam::123456789012:user/Admin
CreateDate: '2014-10-16T16:03:09+00:00'
PasswordLastUsed: '2016-06-03T18:37:29+00:00'
Path: /
UserId: AIDA1111111111EXAMPLE
UserName: Admin
- Arn: arn:aws:iam::123456789012:user/backup/backup-user
CreateDate: '2019-09-17T19:30:40+00:00'
Path: /backup/
UserId: AIDA2222222222EXAMPLE
UserName: arq-45EFD6D1-CE56-459B-B39F-F9C1F78FBE19
- Arn: arn:aws:iam::123456789012:user/cli-user
CreateDate: '2019-09-17T19:30:40+00:00'
Path: /
UserId: AIDA3333333333EXAMPLE
UserName: cli-user
126
AWS Command Line Interface Guía del usuario
Output Format (Formato de salida)
- IsTruncated: true
Marker: ab1234cdef5ghi67jk8lmo9p/
q012rs3t445uv6789w0x1y2z/345a6b78c9d00/1efgh234ij56klmno78pqrstu90vwxyx
Users:
- Arn: arn:aws:iam::123456789012:user/Admin
CreateDate: '2014-10-16T16:03:09+00:00'
PasswordLastUsed: '2016-06-03T18:37:29+00:00'
Path: /
UserId: AIDA1111111111EXAMPLE
UserName: Admin
- Arn: arn:aws:iam::123456789012:user/backup/backup-user
CreateDate: '2019-09-17T19:30:40+00:00'
Path: /backup/
UserId: AIDA2222222222EXAMPLE
UserName: arq-45EFD6D1-CE56-459B-B39F-F9C1F78FBE19
- IsTruncated: false
Users:
- Arn: arn:aws:iam::123456789012:user/cli-user
CreateDate: '2019-09-17T19:30:40+00:00'
Path: /
UserId: AIDA3333333333EXAMPLE
UserName: cli-user
El formato de salida de text sigue la estructura básica que se muestran a continuación. Las columnas se
ordenan alfabéticamente según los nombres de las claves correspondientes del objeto JSON subyacente.
A continuación se muestra un ejemplo de la salida de text. Cada campo está separado por tabulaciones
de los demás, con una tabulación adicional si hay un campo vacío.
La cuarta columna es el campo PasswordLastUsed y está vacía en las dos últimas entradas, ya que
esos usuarios nunca inician sesión en la AWS Management Console.
Important
Le recomendamos encarecidamente que si especifica una salida text, utilice siempre la opción
--query (p. 134) para garantizar un comportamiento coherente.
127
AWS Command Line Interface Guía del usuario
Output Format (Formato de salida)
Esto se debe a que el formato de texto ordena alfabéticamente las columnas de salida por el
nombre de la clave del objeto JSON subyacente que el servicio de AWS devuelve y podría haber
recursos similares con distintos nombres de clave. Por ejemplo, la representación JSON de una
instancia de Amazon EC2 basada en Linux podría tener elementos que no están presentes en la
representación JSON de una instancia basada en Windows, o viceversa. Además, los recursos
podrían tener elementos de valor de clave añadidos o eliminados en futuras actualizaciones,
alterando el orden de las columnas. Aquí es donde --query incrementa la funcionalidad de la
salida text para proporcionarle un control total sobre el formato de salida.
En el ejemplo siguiente, el comando especifica qué elementos se van a mostrar y define el orden
de las columnas con la notación en lista [key1, key2, ...]. Esto le ofrece la plena confianza
de que los valores de clave correctos se mostrarán siempre en la columna prevista. Por último,
tenga en cuenta que la AWS CLI devuelve el valor None para las claves que no existen.
Admin arn:aws:iam::123456789012:user/Admin
2014-10-16T16:03:09+00:00 2016-06-03T18:37:29+00:00 AIDA1111111111EXAMPLE
backup-user arn:aws:iam::123456789012:user/backup-user
2019-09-17T19:30:40+00:00 None AIDA2222222222EXAMPLE
cli-user arn:aws:iam::123456789012:user/cli-backup
2019-09-17T19:11:39+00:00 None AIDA3333333333EXAMPLE
El siguiente ejemplo muestra cómo se puede usar grep y awk con la salida text del comando aws ec2
describe-instances. El primer comando muestra la zona de disponibilidad, el estado actual y el ID de
cada instancia en la salida text. El segundo comando procesa esa salida para mostrar únicamente los ID
de instancia de todas las instancias en ejecución en la zona de disponibilidad us-west-2a.
i-4b41a37c
i-3045b007
i-6fc67758
El siguiente ejemplo va un paso más allá y muestra no solo cómo filtrar el resultado, sino cómo utilizar esa
salida para automatizar los tipos de instancias cambiantes para cada instancia detenida.
128
AWS Command Line Interface Guía del usuario
Output Format (Formato de salida)
La salida text también puede resultar útil en PowerShell. Como las columnas de la salida text están
delimitadas por tabulaciones, puede dividir fácilmente la salida en una matriz utilizando el delimitador `t
de PowerShell. El siguiente comando muestra el valor de la tercera columna (InstanceId) si la primera
columna (AvailabilityZone) coincide con la cadena us-west-2a.
-4b41a37c
i-a071c394
i-3045b007
i-6fc67758
Tenga en cuenta que, aunque en el ejemplo anterior se muestra cómo utilizar el parámetro --query
para analizar los objetos JSON subyacentes y extraer la columna deseada, PowerShell dispone de una
funcionalidad propia para gestionar JSON si la compatibilidad entre plataformas no es un problema. En
lugar de tratar la salida como texto, como requieren la mayoría de los shells de comandos, PowerShell le
permite utilizar el cmdlet ConvertFrom-JSON para producir un objeto estructurado jerárquicamente. A
continuación, podrá acceder directamente al miembro que desee desde ese objeto.
Tip
Si obtiene un texto en la salida y lo filtra con un solo campo utilizando el parámetro --query, la
salida será una sola línea de valores separados por tabuladores. Para obtener cada valor en una
línea independiente, puede colocar el campo de salida entre corchetes, tal y como se muestra en
los siguientes ejemplos.
Salida de una sola línea separada por tabuladores:
HRDepartment
Developers
SpreadsheetUsers
LocalAdmins
129
AWS Command Line Interface Guía del usuario
Paginación
-------------------------------------------------------------------------------------------------------
| ListUsers
|
+------------------------------------------------------------------------------------------------------
+
|| Users
||
|+----------------------------------------------------+---------------------------
+---------------------------+----------+-----------------------+-------------+|
|| Arn | CreateDate |
PasswordLastUsed | Path | UserId | UserName ||
|+----------------------------------------------------+---------------------------
+---------------------------+----------+-----------------------+-------------+|
|| arn:aws:iam::123456789012:user/Admin | 2014-10-16T16:03:09+00:00 |
2016-06-03T18:37:29+00:00 | / | AIDA1111111111EXAMPLE | Admin ||
|| arn:aws:iam::123456789012:user/backup/backup-user | 2019-09-17T19:30:40+00:00 |
| /backup/ | AIDA2222222222EXAMPLE | backup-user ||
|| arn:aws:iam::123456789012:user/cli-user | 2019-09-17T19:11:39+00:00 |
| / | AIDA3333333333EXAMPLE | cli-user ||
+------------------------------------------------------------------------------------------------------
+
Puede combinar la opción --query con el formato table para mostrar un conjunto de elementos
preseleccionados a partir de la salida en bruto. Observe las diferencias de la salida entre las notaciones de
diccionario y lista: en el primer ejemplo los nombres de columna están ordenados alfabéticamente, y en el
segundo ejemplo las columnas sin nombre se ordenan según lo definido por el usuario. Para obtener más
información acerca de la opción --query, consulte FiltradoAWS CLIsalida (p. 134).
------------------------------------------------------
| DescribeVolumes |
+------------+----------------+--------------+-------+
| AZ | ID | InstanceId | Size |
+------------+----------------+--------------+-------+
| us-west-2a| vol-e11a5288 | i-a071c394 | 30 |
| us-west-2a| vol-2e410a47 | i-4b41a37c | 8 |
+------------+----------------+--------------+-------+
----------------------------------------------------
| DescribeVolumes |
+--------------+--------------+--------------+-----+
| vol-e11a5288| i-a071c394 | us-west-2a | 30 |
| vol-2e410a47| i-4b41a37c | us-west-2a | 8 |
+--------------+--------------+--------------+-----+
130
AWS Command Line Interface Guía del usuario
Paginación
Los parámetros de paginación del lado del servidor procesan primero y cualquier salida se envía a la
paginación del lado del cliente.
• --no-paginate
• --page-size
• --max-items
• --starting-token
De forma predeterminada, la AWS CLI utiliza un tamaño de página de 1000 y recupera todos los
elementos disponibles. Por ejemplo, si ejecutaaws s3api list-objectsEn un bucket de Amazon
S3 que contiene 3500 objetos, laAWS CLILa hace automáticamente cuatro llamadas a Amazon S3,
gestionando por usted la lógica de paginación específica del servicio en segundo plano y devolviendo los
3500 objetos en la salida final.
Por ejemplo, si ejecutaaws s3api list-objectsEn un bucket de Amazon S3 que contiene 3500
objetos, laAWS CLIsolo realiza la primera llamada a Amazon S3, devolviendo solo los primeros 1.000
objetos de la salida final.
131
AWS Command Line Interface Guía del usuario
Paginación
...
Puede que el servicio de AWS especificado no devuelva los elementos en el mismo orden cada vez
que lo llame. Si especifica diferentes valores para --page-size y --max-items, puede obtener
resultados inesperados en el que faltan elementos o están duplicados. Para evitar esto, utilice el mismo
número con --page-size y --max-items para sincronizar la paginación de la AWS CLI con la del
servicio subyacente. También puede recuperar la lista completa y realizar las operaciones de paginación
necesarias de forma local.
AWS CLILa versión 2 proporciona el uso de un programa de paginación del lado del cliente para la salida.
De forma predeterminada, esta función devuelve todas las salidas a través del programa de paginación
predeterminado del sistema operativo.
132
AWS Command Line Interface Guía del usuario
Paginación
Por orden de prioridad, puede deshabilitar todo el uso de un programa de paginación externo de las
siguientes maneras:
[default]
cli_pager=less
[default]
cli_pager=
$ export AWS_PAGER="less"
Windows
$ export AWS_PAGER=""
Windows
133
AWS Command Line Interface Guía del usuario
Filtrado
Si no especifica lo contrario, el paginadorAWS CLIla versión 2 usa por defecto esless. Si no dispone
deLESSconjunto de variables de entorno, elAWS CLILa versión 2 utiliza laFRXMarcadores. Puede
combinar banderas especificándolas al establecer la propiedadAWS CLIbuscapersonas.
El siguiente ejemplo utiliza laSIndicador de. A continuación, este indicador se combina con el valor
predeterminadoFRXbanderas para crear unFRXSIndicador de.
Si no quiere que ninguno de losFRX, puede negarlas. El siguiente ejemplo niega laFpara crear
unRXIndicador de.
Si no especifica lo contrario, el paginadorAWS CLIla versión 2 usa por defecto esmoresin banderas
adicionales.
FiltradoAWS CLIsalida
LaAWS Command Line Interface(AWS CLI) tiene filtrado tanto del lado del servidor como del cliente
que puede usar individualmente o juntos para filtrar suAWS CLISalida. El filtrado del lado del servidor se
procesa primero y devuelve su salida para el filtrado del lado del cliente.
• El filtrado del lado del servidor es compatible con la API, y generalmente lo implementa con un--
filterParámetro metro metro El servicio solo devuelve resultados coincidentes que pueden acelerar
los tiempos de respuesta HTTP para conjuntos de datos grandes.
134
AWS Command Line Interface Guía del usuario
Filtrado
• El filtrado del lado del cliente es compatible con elAWS CLIUso del cliente de--queryParámetro metro
metro Este parámetro tiene capacidades que el filtrado del lado del servidor puede no tener.
Temas
• Filtrado del lado del servidor (p. 135)
• Filtrado del lado del cliente (p. 135)
• Combinación de filtrado del lado del cliente y del servidor. (p. 150)
• Recursos adicionales (p. 150)
• --filtertales comosesyCE.
• --filterstales comoec2,Autoescalado, yrds.
• Nombres que empiezan por la palabrafilter, por ejemplo--filter-expressionpara laaws
dynamodb scancomando de.
Para obtener información acerca de si un comando específico tiene filtrado en el lado del servidor y las
reglas de filtrado, consulte laAWS CLIReferencia de los comandos de la.
Consultar usosSintaxis JMESPathpara crear expresiones para filtrar la salida. Para aprender la sintaxis de
JMESPath, consulteTutorial sobreen elSitio web JMESPath.
Important
El tipo de salida que especifique cambia la forma en que el--queryla opción opera:
• Si especifica --output text, la salida se pagina antes de que se aplique el filtro --query
y de que la AWS CLI ejecute la consulta una vez en cada página de la salida. Debido a esto,
la consulta incluye el primer elemento que coincide en cada página y puede dar lugar a una
salida adicional inesperada. Para solucionar este resultado adicional, especifique--no-
paginatePara aplicar el filtro solo al conjunto completo de resultados, pero puede dar lugar
a una salida larga. Para filtrar más la salida, puede utilizar otras herramientas de la línea de
comandos comoheadortail.
• Si especifica--output json,--output yaml, o bien--output yaml-streamLa salida se
procesará por completo como una única estructura nativa antes de la--queryse aplica el filtro.
LaAWS CLIejecuta la consulta solo una vez en toda la estructura, produciendo un resultado
filtrado que se obtiene como salida.
135
AWS Command Line Interface Guía del usuario
Filtrado
Antes de comenzar
Cuando utilice expresiones de filtro utilizadas en estos ejemplos, asegúrese de utilizar las reglas de
comillas correctas para el shell de terminal. Para obtener más información, consulte the section called
“Comillas con cadenas” (p. 106).
La siguiente salida JSON muestra un ejemplo de lo que la--queryparámetro puede producir. El resultado
describe tres volúmenes de Amazon EBS conectados a instancias independientes de Amazon EC2.
Ejemplo de salida
136
AWS Command Line Interface Guía del usuario
Filtrado
],
"VolumeType": "standard",
"VolumeId": "vol-2e410a47",
"State": "in-use",
"SnapshotId": "snap-708e8348",
"CreateTime": "2013-09-18T20:26:15.000Z",
"Size": 8
},
{
"AvailabilityZone": "us-west-2a",
"Attachments": [
{
"AttachTime": "2020-11-20T19:54:06.000Z",
"InstanceId": "i-1jd73kv8",
"VolumeId": "vol-a1b3c7nd",
"State": "attached",
"DeleteOnTermination": true,
"Device": "/dev/sda1"
}
],
"VolumeType": "standard",
"VolumeId": "vol-a1b3c7nd",
"State": "in-use",
"SnapshotId": "snap-234087fb",
"CreateTime": "2020-11-20T19:54:05.000Z",
"Size": 15
}
]
}
Identifiers
Identificador son las etiquetas de los valores de salida. Al crear filtros, se utilizan identificadores para
reducir los resultados de la consulta. En el siguiente ejemplo de salida, todos los identificadores
comoVolumes,AvailabilityZone, yAttachTimeestán resaltados.
137
AWS Command Line Interface Guía del usuario
Filtrado
"VolumeId": "vol-2e410a47",
"State": "attached",
"DeleteOnTermination": true,
"Device": "/dev/sda1"
}
],
"VolumeType": "standard",
"VolumeId": "vol-2e410a47",
"State": "in-use",
"SnapshotId": "snap-708e8348",
"CreateTime": "2013-09-18T20:26:15.000Z",
"Size": 8
},
{
"AvailabilityZone": "us-west-2a",
"Attachments": [
{
"AttachTime": "2020-11-20T19:54:06.000Z",
"InstanceId": "i-1jd73kv8",
"VolumeId": "vol-a1b3c7nd",
"State": "attached",
"DeleteOnTermination": true,
"Device": "/dev/sda1"
}
],
"VolumeType": "standard",
"VolumeId": "vol-a1b3c7nd",
"State": "in-use",
"SnapshotId": "snap-234087fb",
"CreateTime": "2020-11-20T19:54:05.000Z",
"Size": 15
}
]
}
Sintaxis
<listName>[ ]
Para filtrar todos los resultados de una matriz, puede usar la notación comodín. Comodínson expresiones
utilizadas para devolver elementos utilizando el método*Notación.
138
AWS Command Line Interface Guía del usuario
Filtrado
"DeleteOnTermination": true,
"Device": "/dev/sda1"
}
],
"VolumeType": "standard",
"VolumeId": "vol-e11a5288",
"State": "in-use",
"SnapshotId": "snap-f23ec1c8",
"CreateTime": "2013-09-17T00:55:03.000Z",
"Size": 30
},
{
"AvailabilityZone": "us-west-2a",
"Attachments": [
{
"AttachTime": "2020-11-20T19:54:06.000Z",
"InstanceId": "i-1jd73kv8",
"VolumeId": "vol-a1b3c7nd",
"State": "attached",
"DeleteOnTermination": true,
"Device": "/dev/sda1"
}
],
"VolumeType": "standard",
"VolumeId": "vol-a1b3c7nd",
"State": "in-use",
"SnapshotId": "snap-234087fb",
"CreateTime": "2020-11-20T19:54:05.000Z",
"Size": 15
}
]
Para ver un volumen específico en la matriz por índice, se llama al índice de matriz. Por ejemplo, el primer
elemento de laVolumestiene un índice de 0, lo que resulta en elVolumes[0]Consultar. Para obtener más
información acerca de los índices de matriz, consulteExpresiones de índiceen elSitio web JMESPath.
Para ver un rango específico de volúmenes por índice, utiliceslicecon la siguiente sintaxis, dondestartes
el índice de matriz inicial,stopes el índice donde el filtro deja de procesarse, ypasoes el intervalo de
omisión.
Sintaxis
139
AWS Command Line Interface Guía del usuario
Filtrado
<arrayName>[<start>:<stop>:<step>]
Si se omite cualquiera de estos elementos de la expresión de sector, utilizarán los siguientes valores
predeterminados:
Para devolver sólo los dos primeros volúmenes, utilice un valor inicial de 0, un valor de parada de 2 y un
valor de paso de 1, como se muestra en el siguiente ejemplo.
Dado que este ejemplo contiene valores predeterminados, puede acortar el segmento
deVolumes[0:2:1]De aVolumes[:2].
En el ejemplo siguiente se omiten los valores predeterminados y se devuelve cada dos volúmenes de toda
la matriz.
140
AWS Command Line Interface Guía del usuario
Filtrado
Los pasos también pueden utilizar números negativos para filtrar en el orden inverso de una matriz como
se muestra en el ejemplo siguiente.
141
AWS Command Line Interface Guía del usuario
Filtrado
"SnapshotId": "snap-234087fb",
"CreateTime": "2020-11-20T19:54:05.000Z",
"Size": 15
},
{
"AvailabilityZone": "us-west-2a",
"Attachments": [
{
"AttachTime": "2013-09-17T00:55:03.000Z",
"InstanceId": "i-a071c394",
"VolumeId": "vol-e11a5288",
"State": "attached",
"DeleteOnTermination": true,
"Device": "/dev/sda1"
}
],
"VolumeType": "standard",
"VolumeId": "vol-e11a5288",
"State": "in-use",
"SnapshotId": "snap-f23ec1c8",
"CreateTime": "2013-09-17T00:55:03.000Z",
"Size": 30
}
]
Sintaxis
<expression>.<expression>
142
AWS Command Line Interface Guía del usuario
Filtrado
"AttachTime": "2020-11-20T19:54:06.000Z",
"InstanceId": "i-1jd73kv8",
"VolumeId": "vol-a1b3c7nd",
"State": "attached",
"DeleteOnTermination": true,
"Device": "/dev/sda1"
}
]
]
Para filtrar más en los valores anidados, añada la expresión para cada indentificador anidado. En el
ejemplo siguiente se muestra laStatePara todos los casosVolumes.
Sintaxis
143
AWS Command Line Interface Guía del usuario
Filtrado
--query 'Volumes[*].Attachments[?State=='attached'].VolumeId'
[
[
"vol-e11a5288"
],
[
"vol-2e410a47"
],
[
"vol-a1b3c7nd"
]
]
En el ejemplo siguiente se filtra para elVolumeIdsde todos los casosVolumesque tienen un tamaño
inferior a 20.
Expresiones de canalizaciones
Puede canalizar los resultados de un filtro a una nueva lista y, a continuación, filtrar el resultado con otra
expresión utilizando la siguiente sintaxis:
Sintaxis
<expression> | <expression>]
144
AWS Command Line Interface Guía del usuario
Filtrado
"i-1jd73kv8"
"i-a071c394"
Sintaxis
<listName>[].[<expression>, <expression>]
Para agregar datos anidados a la lista, agregue otra lista de selección múltiple. El ejemplo
siguiente se amplía en el ejemplo anterior mediante el filtrado deInstanceIdyStateen el archivo
anidadoAttachmentslista de. Se obtiene el siguiente resultado:
145
AWS Command Line Interface Guía del usuario
Filtrado
"i-4b41a37c",
"attached"
]
]
],
[
"vol-a1b3c7nd",
"standard",
[
[
"i-1jd73kv8",
"attached"
]
]
]
]
Para que sea más legible, aplane la expresión como se muestra en el ejemplo siguiente.
Para obtener más información, consulteLista de selección múltipleen elSitio web JMESPath.
Sintaxis
La etiqueta de identificación no necesita ser la misma que el nombre del identificador. El ejemplo siguiente
utiliza la etiquetaTypepara laVolumeTypeValores.
146
AWS Command Line Interface Guía del usuario
Filtrado
},
{
"Type": "standard",
},
{
"Type": "standard",
}
]
Para simplificar, en el siguiente ejemplo se conservan los nombres de los identificadores de cada etiqueta
y se muestra elVolumeId,VolumeType,InstanceId, yStatepara todos los volúmenes:
Para obtener más información, consulteHash de selección múltipleen elSitio web JMESPath.
Functions
La sintaxis JMesPath contiene muchas funciones que puede utilizar para sus consultas. Para obtener
información sobre las funciones de JMesPath, consulteFunciones integradasen elSitio web JMESPath.
Para demostrar cómo puede incorporar una función a sus consultas, en el siguiente ejemplo se utiliza
el métodosort_byfunción. Lasort_byordena una matriz utilizando una expresión como clave de
ordenación utilizando la siguiente sintaxis:
Sintaxis
En el ejemplo siguiente se utiliza elEjemplo hash multiselect (p. 146)y ordena la salida porVolumeId.
147
AWS Command Line Interface Guía del usuario
Filtrado
"InstanceId": "i-4b41a37c",
"State": "attached"
},
{
"VolumeId": "vol-a1b3c7nd",
"VolumeType": "standard",
"InstanceId": "i-1jd73kv8",
"State": "attached"
},
{
"VolumeId": "vol-e11a5288",
"VolumeType": "standard",
"InstanceId": "i-a071c394",
"State": "attached"
}
]
Advanced (Avanzado)--queryEjemplos de
Para extraer información de un elemento específico
En el siguiente ejemplo, se usa el parámetro --query para encontrar un elemento específico en una
lista y, a continuación, extrae la información de ese elemento. El ejemplo muestra una lista de todos
losAvailabilityZonesAsociado con el punto de enlace de servicio especificado. Extrae el elemento
de la lista ServiceDetails que tiene el ServiceName especificado; a continuación, genera el campo
AvailabilityZones a partir de ese elemento seleccionado.
En el siguiente ejemplo se muestra cómo enumerar todas las instantáneas que se han creado después de
una fecha especificada, incluidos solo algunos de los campos disponibles en la salida.
148
AWS Command Line Interface Guía del usuario
Filtrado
En el siguiente ejemplo, se muestran las cinco imágenes de Amazon Machine (AMI) más reciente que ha
creado, ordenadas de la más reciente y a la más antigua.
El ejemplo siguiente muestra solo laInstanceIdPara obtener las instancias que no están en buen estado
del grupo de Auto Scaling especificado.
En el ejemplo siguiente se obtienen todas las instancias sin un errortestEtiqueta. Usando un método
sencillo?Value != `test`no funciona para excluir un volumen ya que los volúmenes pueden tener
varias etiquetas. Siempre y cuando haya otra etiqueta al ladotestadjunta al volumen, el volumen todavía
se devuelve en los resultados.
Para excluir todos los volúmenes contest, comience con la siguiente expresión para devolver todas
las etiquetas con la etiquetatesten una matriz. Cualquier etiqueta de que no seatestcontiene una
etiquetanullValor .
Realice los resultados para aplanar los resultados que resultan en la siguiente consulta.
149
AWS Command Line Interface Guía del usuario
Filtrado
En el ejemplo siguiente se muestran los volúmenes de Amazon EC2 mediante el filtrado del lado del cliente
y del servidor. El servicio filtra una lista de todos los volúmenes asociados en laus-west-2aAvailability
Zone. El parámetro --query limita aún más la salida a solo los volúmenes con un valor de Size mayor
que 50 y muestra solo los campos especificados con nombres definidos por el usuario.
El siguiente ejemplo recupera una lista de imágenes que cumplen varios criterios. A continuación, utiliza
el parámetro --query para ordenar la salida por CreationDate, que selecciona solo las más recientes.
Finalmente, muestra el valor de ImageId de esa imagen.
En el ejemplo siguiente, se muestra el número de volúmenes disponibles que son más de 1000 IOPS
utilizando length para contar cuántos hay en una lista.
Recursos adicionales
AWS CLIautoprompt
Cuando comience a usar expresiones de filtro, puede usar la función de solicitud automática en el
cuadro de diálogoAWS CLIVersión 2. La función de solicitud automática proporciona una vista previa
al presionar el botónF5Tecla. Para obtener más información, consulte the section called “Preguntar
automáticamente” (p. 120).
150
AWS Command Line Interface Guía del usuario
Códigos de devolución
Terminal JMESPath
Lajqle proporciona una forma de transformar su salida en el lado del cliente a un formato de salida
que desee. Para obtener más información sobre lasjqPara obtener las instrucciones de instalación,
consultejqenGitHub.
Para determinar el código de devolución de un comando de la AWS CLI, ejecute uno de los siguientes
comandos inmediatamente después de ejecutar el comando de la CLI.
$ echo $?
0
Windows PowerShell
A continuación se indican los valores código de devolución que se pueden devolver al finalizar la ejecución
de un comando de la AWS Command Line Interface (AWS CLI).
151
AWS Command Line Interface Guía del usuario
Asistentes
Código Significado
1 Error en una o varias operaciones de transferencia de Amazon S3. Limitado a comandos de S3.
130 El comando ha sido interrumpido por una SIGINT. Esta es la señal enviada por usted para
cancelar un comando conCtrl+C.
252 La sintaxis del comando no era válida, se proporcionó un parámetro desconocido o un valor de
parámetro era incorrecto e impidió que el comando se ejecutara.
253 El entorno o la configuración del sistema no eran válidos. Aunque el comando proporcionado
puede ser sintácticamente válido, la falta de configuración o credenciales impidió que el comando
se ejecutara.
254 El comando se analizó correctamente y se realizó una solicitud al servicio especificado, pero
el servicio devolvió un error. Esto generalmente indicará el uso incorrecto de la API u otros
problemas específicos del servicio.
255 Error del comando. La AWS CLI o el servicio de AWS al que se había enviado la solicitud
produjeron errores.
La característica siguiente está disponible solo si usaAWS CLILa versión 2. No está disponible si
ejecutaAWS CLILa versión 1. Para obtener información sobre cómo instalar la versión 2, consulte
Instalar, actualizar y desinstalar elAWS CLIVersión 2 (p. 6).
LaAWS Command Line Interface(AWS CLI) proporciona la posibilidad de utilizar un asistente para
algunos comandos. Para contribuir o ver la lista completa deAWS CLI, consulte laAWS CLIasistente de la
carpetaen GitHub.
Cómo funciona
Similar a laAWS, la consolaAWS CLItiene un asistente de interfaz de usuario que le guía a través de la
administración deAWSde AWS. Para utilizar el asistente, llame al métodowizardy el nombre del asistente
después del nombre del servicio en un comando. La estructura de los comandos es la siguiente:
Sintaxis:
152
AWS Command Line Interface Guía del usuario
Alias
aws configurees el único asistente que no tiene un nombre de asistente. Cuando ejecute el asistente,
ejecute el comandoaws configure wizardComo se muestra en el siguiente ejemplo:
Para editar solicitudes anteriores, utiliceMAYÚS+TAB. Para algunos asistentes, después de rellenar todas
las solicitudes, puede obtener una vista previa de unAWS CloudFormationo la plantillaAWS CLIlleno de
su información. Este modo de vista previa es útil para aprender elAWS CLI, API de servicio y creación de
plantillas para scripts.
Temas
• Prerequisites (p. 154)
• Paso 1: Creación del archivo de alias (p. 154)
• Paso 2: Crear un alias (p. 155)
153
AWS Command Line Interface Guía del usuario
Prerequisites
Prerequisites
Para utilizar comandos de alias, debe realizar lo siguiente:
• Instalación y configuración de la AWS CLI. Para obtener más información, consulte Instalar, actualizar y
desinstalar elAWS CLI (p. 6) y Fundamentos de configuración (p. 47).
• Utiliza un mínimoAWS CLIVersión de 1.11.24 o 2.0.0.
• (Opcional) Para usarAWS CLIalias bash, debe utilizar un terminal compatible con bash.
$ mkdir -p ~/.aws/cli
$ echo '[toplevel]' > ~/.aws/cli/alias
Windows
C:\> md %USERPROFILE%\.aws\cli
C:\> echo [toplevel] > %USERPROFILE%/.aws/cli/alias
1. Creación de una carpeta con el nombrecliEn elAWS CLILa carpeta de configuración. De forma
predeterminada, la carpeta de configuración es~/.aws/en Linux o macOS%USERPROFILE%\.aws
\en Windows. Puede crear esto a través de la navegación de archivos o mediante el siguiente
comando.
$ mkdir -p ~/.aws/cli
Windows
C:\> md %USERPROFILE%\.aws\cli
154
AWS Command Line Interface Guía del usuario
Paso 2: Crear un alias
Windows
Sintaxis
LaAliasNamees lo que usted llama su alias. LaComando de laes el comando al que desea llamar, que
puede incluir otros alias. Puede incluir opciones o parámetros en su alias, o agregarlos al llamar a su alias.
Para utilizarAWS CLIalias bash, debe usar un terminal compatible con bash
Puede crear un alias utilizando scripts bash para procesos más avanzados utilizando la siguiente sintaxis.
Sintaxis
aliasname =
!f() {
script content
}; f
LaAliasNamees lo que usted llama su alias ycontenido de scriptes el script que desea ejecutar al
llamar al alias.
155
AWS Command Line Interface Guía del usuario
Paso 3: Llamar a un alias
El siguiente ejemplo utilizaopendnsPara generar la dirección IP actual. Dado que puede usar alias en
otros alias, el siguientemyipalias es útil para permitir o revocar el acceso a su dirección IP desde otros
alias.
myip =
!f() {
dig +short myip.opendns.com @resolver1.opendns.com
}; f
En el siguiente ejemplo de script, se llama a laaws myipPara autorizar la dirección IP para la entrada en
un grupo de seguridad de Amazon EC2.
authorize-my-ip =
!f() {
ip=$(aws myip)
aws ec2 authorize-security-group-ingress --group-id ${1} --cidr $ip/32 --protocol tcp
--port 22
}; f
Cuando llama a alias que usan secuencias de comandos bash, las variables siempre se pasan en el orden
en que las especificó. En las secuencias de comandos bash, los nombres de las variables no se tienen
en cuenta, solo el orden en que aparecen. En el siguientetextalert, la variable para el--messagees
primero y--phone-numberes la segunda opción.
textalert =
!f() {
aws sns publish --message "${1}" --phone-number ${2}
}; f
Sintaxis
$ aws aliasname
$ aws
whoami
{
"UserId": "A12BCD34E5FGHI6JKLM",
"Account": "1234567890987",
"Arn": "arn:aws:iam::1234567890987:user/userName"
}
En el siguiente ejemplo, se utiliza laaws whoamicon opciones adicionales para devolver solo
elAccountNumero entextSalida.
156
AWS Command Line Interface Guía del usuario
Ejemplos de repositorio de alias
textalert =
!f() {
aws sns publish --message "${1}" --phone-number ${2}
}; f
Cuando se llama al métodotextalert, debe pasar variables en el mismo orden en que se ejecutan
en el alias. En el siguiente ejemplo utilizamos las variables$messagey$phone. La$messagese pasa
como${1}para la--messageLa opción y la$phonese pasa como${2}para la--phone-numberOpción.
Esto da como resultado llamar correctamente al métodotextalertAlias para enviar un mensaje.
aws help
aws <command> help
aws <command> <subcommand> help
Al ejecutar los comandos de esta sección, se eliminan losaliasfile. Para evitar sobrescribir el
archivo de alias existente, cambie la ubicación de descarga.
157
AWS Command Line Interface Guía del usuario
Resources
• Ejecute los siguientes comandos que se descargan desde el repositorio y copia elaliasa la carpeta
de configuración.
Linux and macOS
Windows
$ aws whoami
{
"Account": "012345678901",
"UserId": "AIUAINBADX2VEG2TC6HD6",
"Arn": "arn:aws:iam::012345678901:user/myuser"
}
Resources
• LaAWS CLIrepositorio de aliasenGitHubcontieneAWS CLIejemplos de alias creados por elAWS CLIy la
contribución de laAWS CLIComunidad.
• El anuncio de la característica de alias deAWSRe:Invent 2016: El EficazAWS CLIUsuarioenYouTube.
• aws sts get-caller-identity
• aws ec2 describe-instances
• aws sns publish
158
AWS Command Line Interface Guía del usuario
DynamoDB
For a complete reference of all the available commands for each service, see the AWS CLI Command
Reference, or use the built-in command line help. Para obtener más información, consulte Obtener ayuda
con la AWS CLI (p. 97).
Servicios
• Uso de Amazon DynamoDB con laAWS CLI (p. 159)
• Uso de Amazon EC2 con laAWS CLI (p. 162)
• Con Amazon S3 GlacierAWS CLI (p. 176)
• Uso de AWS Identity and Access Management desde AWS CLI (p. 180)
• Uso de Amazon S3 con laAWS CLI (p. 184)
• Utiliza Amazon SNS con laAWS CLI (p. 196)
• Uso de Amazon Simple Workflow Service con laAWS CLI (p. 198)
LaAWS Command Line Interface(AWS CLI) ofrece compatibilidad con todos losAWS, incluido Amazon
DynamoDB. Puede utilizar laAWS CLIpara operaciones improvisadas, como crear una tabla. También
puede usarla para incluir operaciones de DynamoDB en scripts de utilidades.
Para obtener más información acerca del uso de laAWS CLIcon DynamoDB, consulteDynamoDBen laAWS
CLIReferencia de los comandos de la.
Temas
• Prerequisites (p. 159)
• Creación y uso de tablas de DynamoDB (p. 160)
• Uso de DynamoDB Local (p. 161)
• Resources (p. 161)
Prerequisites
Para ejecutar ladynamodb, es necesario:
• AWS CLIinstalado, consulteInstalar, actualizar y desinstalar elAWS CLI (p. 6)Para obtener más
información, consulte.
159
AWS Command Line Interface Guía del usuario
Creación y uso de tablas de DynamoDB
A continuación, puede añadir nuevas líneas a la tabla con comandos similares a los que se muestran en el
siguiente ejemplo. En estos ejemplos se usa una combinación de sintaxis abreviada y JSON.
{
"ConsumedCapacity": {
"CapacityUnits": 1.0,
"TableName": "MusicCollection"
}
}
Puede resultar difícil crear código JSON válido en una única línea de comandos. Para facilitar la operación,
la AWS CLI puede leer archivos JSON. Por ejemplo, fíjese en el fragmento de código JSON siguiente, que
se almacena en un archivo denominado expression-attributes.json.
{
":v1": {"S": "No One You Know"},
160
AWS Command Line Interface Guía del usuario
Uso de DynamoDB Local
Puede utilizar ese archivo para emitir una solicitud de query mediante la AWS CLI. En el siguiente
ejemplo, se usa el contenido del archivo expression-attributes.json como valor del parámetro --
expression-attribute-values.
Para obtener más información acerca de DynamoDB Local y cómo usarlo con laAWS CLIPara obtener,
consulte las siguientes secciones de laGuía para desarrolladores de Amazon DynamoDB:
• DynamoDB Local
• Mediante laAWS CLIcon DynamoDB Local
Resources
AWS CLI Referencia:
• aws dynamodb
• aws dynamodb create-table
• aws dynamodb put-item
• aws dynamodb query
161
AWS Command Line Interface Guía del usuario
Amazon EC2
• Mediante laAWS CLIcon DynamoDB Localen la Guía para desarrolladores de Amazon DynamoDB
Puede acceder a las funciones de Amazon Elastic Compute Cloud (Amazon EC2) utilizando laAWS
Command Line Interface(AWS CLI). Para mostrar laAWS CLIPara Amazon EC2, utilice el siguiente
comando.
Antes de ejecutar los comandos, defina sus credenciales predeterminadas. Para obtener más información,
consulte Configuración de la AWS CLI (p. 47).
En este tema se muestran ejemplos de forma corta deAWS CLIcomandos que realizan tareas comunes
para Amazon EC2.
Temas
• Creación, visualización y eliminación de pares de claves de Amazon EC2 (p. 162)
• Creación, configuración y eliminación de grupos de seguridad para Amazon EC2 (p. 164)
• Lanzamiento, enumeración y terminación de instancias Amazon EC2 (p. 168)
• Cambie un tipo de instancia Amazon EC2 utilizando un script bash (p. 174)
Debe proporcionar el key pair a Amazon EC2 al crear la instancia y después usar ese key pair para
autenticarse cuando se conecte a la instancia.
Temas
• Prerequisites (p. 162)
• Crear un par de claves (p. 163)
• Mostrar un par de claves (p. 163)
• Eliminar un par de claves (p. 164)
Prerequisites
Para ejecutar laec2, es necesario:
• Instalación y configuración de la AWS CLI. Para obtener más información, consulte Instalar, actualizar y
desinstalar elAWS CLI (p. 6) y Fundamentos de configuración (p. 47).
162
AWS Command Line Interface Guía del usuario
Pares de claves de Amazon EC2
• Establezca sus permisos de IAM para permitir el acceso a Amazon EC2. Para obtener más información
sobre los permisos de IAM para Amazon EC2, consultePolíticas de IAM para Amazon EC2en laGuía del
usuario de Amazon EC2 para instancias de Linux.
Para PowerShell, el redireccionamiento de > file adopta la codificación UTF-8 de forma predeterminada,
que no se puede utilizar en algunos clientes SSH. Por lo tanto, debe convertir la salida transfiriéndola al
comando out-file y establecer de forma explícita la codificación en ascii.
-----BEGIN RSA PRIVATE KEY-----
EXAMPLEKEYKCAQEAy7WZhaDsrA1W3mRlQtvhwyORRX8gnxgDAfRt/gx42kWXsT4rXE/b5CpSgie/
vBoU7jLxx92pNHoFnByP+Dc21eyyz6CvjTmWA0JwfWiW5/akH7iO5dSrvC7dQkW2duV5QuUdE0QW
Z/aNxMniGQE6XAgfwlnXVBwrerrQo+ZWQeqiUwwMkuEbLeJFLhMCvYURpUMSC1oehm449ilx9X1F
G50TCFeOzfl8dqqCP6GzbPaIjiU19xX/azOR9V+tpUOzEL+wmXnZt3/nHPQ5xvD2OJH67km6SuPW
oPzev/D8V+x4+bHthfSjR9Y7DvQFjfBVwHXigBdtZcU2/wei8D/HYwIDAQABAoIBAGZ1kaEvnrqu
/uler7vgIn5m7lN5LKw4hJLAIW6tUT/fzvtcHK0SkbQCQXuriHmQ2MQyJX/0kn2NfjLV/ufGxbL1
mb5qwMGUnEpJaZD6QSSs3kICLwWUYUiGfc0uiSbmJoap/GTLU0W5Mfcv36PaBUNy5p53V6G7hXb2
bahyWyJNfjLe4M86yd2YK3V2CmK+X/BOsShnJ36+hjrXPPWmV3N9zEmCdJjA+K15DYmhm/tJWSD9
81oGk9TopEp7CkIfatEATyyZiVqoRq6k64iuM9JkA3OzdXzMQexXVJ1TLZVEH0E7bhlY9d8O1ozR
oQs/FiZNAx2iijCWyv0lpjE73+kCgYEA9mZtyhkHkFDpwrSM1APaL8oNAbbjwEy7Z5Mqfql+lIp1
YkriL0DbLXlvRAH+yHPRit2hHOjtUNZh4Axv+cpg09qbUI3+43eEy24B7G/Uh+GTfbjsXsOxQx/x
p9otyVwc7hsQ5TA5PZb+mvkJ5OBEKzet9XcKwONBYELGhnEPe7cCgYEA06Vgov6YHleHui9kHuws
ayav0elc5zkxjF9nfHFJRry21R1trw2Vdpn+9g481URrpzWVOEihvm+xTtmaZlSp//lkq75XDwnU
WA8gkn6O3QE3fq2yN98BURsAKdJfJ5RL1HvGQvTe10HLYYXpJnEkHv+Unl2ajLivWUt5pbBrKbUC
gYBjbO+OZk0sCcpZ29sbzjYjpIddErySIyRX5gV2uNQwAjLdp9PfN295yQ+BxMBXiIycWVQiw0bH
oMo7yykABY7Ozd5wQewBQ4AdSlWSX4nGDtsiFxWiI5sKuAAeOCbTosy1s8w8fxoJ5Tz1sdoxNeGs
Arq6Wv/G16zQuAE9zK9vvwKBgF+09VI/1wJBirsDGz9whVWfFPrTkJNvJZzYt69qezxlsjgFKshy
WBhd4xHZtmCqpBPlAymEjr/TOlbxyARmXMnIOWIAnNXMGB4KGSyl1mzSVAoQ+fqR+cJ3d0dyPl1j
jjb0Ed/NY8frlNDxAVHE8BSkdsx2f6ELEyBKJSRr9snRAoGAMrTwYneXzvTskF/S5Fyu0iOegLDa
NWUH38v/nDCgEpIXD5Hn3qAEcju1IjmbwlvtW+nY2jVhv7UGd8MjwUTNGItdb6nsYqM2asrnF3qS
VRkAKKKYeGjkpUfVTrW0YFjXkfcrR/V+QFL5OndHAKJXjW7a4ejJLncTzmZSpYzwApc=
-----END RSA PRIVATE KEY-----
Su clave privada no se almacena en AWS y solo se puede recuperar en el momento de crearla. No puede
recuperarla más adelante. En vez de ello, si pierde la clave privada, debe crear un par de claves nuevo.
Si se está conectando a su instancia desde un equipo Linux, le recomendamos que utilice el siguiente
comando para establecer los permisos de su archivo de clave privada de modo que solo usted pueda
leerlo.
163
AWS Command Line Interface Guía del usuario
Grupos de seguridad de Amazon EC2
La huella digital es un valor hash SHA1 tomado a partir de una copia de la clave privada con codificación
DER. Este valor se captura cuando se crea el par de claves y se almacena en AWS junto con la clave
pública. Puede ver la huella digital en la consola de Amazon EC2 o ejecutando laAWS CLIComando de
laaws ec2 describe-key-pairs.
Para obtener más información sobre las claves y las huellas, consultePares de claves de Amazon EC2en
laGuía del usuario de Amazon EC2 para instancias de Linux.
Puede crear grupos de seguridad para su uso en nube virtual privada (VPC) o en la red plana compartida
EC2-Classic. Para obtener más información acerca de las diferencias entre EC2-Classic y EC2-VPC,
consultePlataformas admitidasen laGuía del usuario de Amazon EC2 para instancias de Linux.
Utilice AWS Command Line Interface (AWS CLI) para crear un nuevo grupo de seguridad, añadir reglas a
grupos de seguridad existentes y eliminar grupos de seguridad.
Temas
• Prerequisites (p. 164)
• Crear un grupo de seguridad (p. 165)
• Agregar reglas al grupo de seguridad (p. 166)
• Eliminación de un grupo de seguridad (p. 168)
Prerequisites
Para ejecutar laec2, es necesario:
• Instalación y configuración de la AWS CLI. Para obtener más información, consulte Instalar, actualizar y
desinstalar elAWS CLI (p. 6) y Fundamentos de configuración (p. 47).
164
AWS Command Line Interface Guía del usuario
Grupos de seguridad de Amazon EC2
• Establezca sus permisos de IAM para permitir el acceso a Amazon EC2. Para obtener más información
sobre los permisos de IAM para Amazon EC2, consultePolíticas de IAM para Amazon EC2en laGuía del
usuario de Amazon EC2 para instancias de Linux.
EC2-VPC
En el siguiente ejemplo se muestra cómo crear un grupo de seguridad para una VPC especificada.
$ aws ec2 create-security-group --group-name my-sg --description "My security group" --vpc-
id vpc-1a2b3c4d
{
"GroupId": "sg-903004f8"
}
EC2-Classic
En el siguiente ejemplo se muestra cómo crear un grupo de seguridad para EC2-Classic.
Para ver la información inicial de my-sg, ejecute el comando describe-security-groups. Para un grupo de
seguridad EC2-Classic, puede hacer referencia a él por su nombre.
165
AWS Command Line Interface Guía del usuario
Grupos de seguridad de Amazon EC2
{
"SecurityGroups": [
{
"IpPermissionsEgress": [],
"Description": "My security group"
"IpPermissions": [],
"GroupName": "my-sg",
"OwnerId": "123456789012",
"GroupId": "sg-903004f8"
}
]
}
Por ejemplo, si lanza una instancia de Windows, normalmente debe añadir una regla para permitir el tráfico
entrante en el puerto TCP 3389 (RDP) para dar soporte al protocolo de escritorio remoto (RDP). Si lanza
una instancia de Linux, normalmente debe añadir una regla para permitir el tráfico entrante en el puerto
TCP 22 (SSH) para dar soporte a las conexiones de SSH.
EC2-VPC
En el siguiente ejemplo se muestra cómo agregar una regla para RDP (puerto TCP 3389) a un grupo de
seguridad EC2-VPC con el IDsg-903004f8utilizando su dirección IP.
$ curl https://checkip.amazonaws.com
x.x.x.x
El siguiente comando añade otra regla para habilitar SSH en instancias en el mismo grupo de seguridad.
166
AWS Command Line Interface Guía del usuario
Grupos de seguridad de Amazon EC2
Para ver los cambios realizados en el grupo de seguridad, ejecute el comando describe-security-groups.
EC2-Classic
El siguiente comando añade una regla para RDP al grupo de seguridad EC2-Classic llamado my-sg.
El siguiente comando añade otra regla para SSH al mismo grupo de seguridad.
Para ver los cambios realizados en el grupo de seguridad, ejecute el comando describe-security-groups.
167
AWS Command Line Interface Guía del usuario
Instancias EC2
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "x.x.x.x"
}
]
"UserIdGroupPairs": [],
"FromPort": 22
}
],
"GroupName": "my-sg",
"OwnerId": "123456789012",
"GroupId": "sg-903004f8"
}
]
}
EC2-VPC
El siguiente comando elimina el grupo de seguridad EC2-VPC.
EC2-Classic
El siguiente comando elimina el grupo de seguridad EC2-Classic denominado my-sg.
Temas
• Prerequisites (p. 169)
• Lanzar la instancia (p. 169)
• Agregar un dispositivo de bloques a la instancia (p. 172)
• Agregar una etiqueta a la instancia (p. 173)
• Conéctese a la instancia (p. 173)
• Enumerar las instancias (p. 173)
• Terminar una instancia (p. 173)
168
AWS Command Line Interface Guía del usuario
Instancias EC2
Prerequisites
Para ejecutar laec2En este tema, debe hacer lo siguiente:
• Instalación y configuración de la AWS CLI. Para obtener más información, consulte Instalar, actualizar y
desinstalar elAWS CLI (p. 6) y Fundamentos de configuración (p. 47).
• Establezca sus permisos de IAM para permitir el acceso a Amazon EC2. Para obtener más información
sobre los permisos de IAM para Amazon EC2, consultePolíticas de IAM para Amazon EC2en laGuía del
usuario de Amazon EC2 para instancias de Linux.
• Creación de unpar de claves (p. 162)y agrupo de seguridad (p. 164).
• Seleccione una imagen de máquina de Amazon (AMI) y anote su identificador. Para obtener más
información, consulteBúsqueda de una AMI adecuadaen laGuía del usuario de Amazon EC2 para
instancias de Linux.
Lanzar la instancia
Para lanzar una instancia Amazon EC2 utilizando la AMI que ha seleccionado, use la herramientarun-
instancescomando. Puede lanzar la instancia en una nube privada virtual (VPC) o, si su cuenta lo admite,
en EC2-Classic.
Al principio, la instancia aparece en el estado pending, pero cambia al estado running después de unos
minutos.
EC2-VPC
En el siguiente ejemplo se muestra cómo lanzar una instancia t2.micro en la subred especificada de una
VPC. Sustituya los valores del parámetro en cursiva por sus propios valores.
169
AWS Command Line Interface Guía del usuario
Instancias EC2
"SecurityGroups": [
{
"GroupName": "my-sg",
"GroupId": "sg-903004f8"
}
],
"ClientToken": null,
"SubnetId": "subnet-6e7f829e",
"InstanceType": "t2.micro",
"NetworkInterfaces": [
{
"Status": "in-use",
"SourceDestCheck": true,
"VpcId": "vpc-1a2b3c4d",
"Description": "Primary network interface",
"NetworkInterfaceId": "eni-a7edb1c9",
"PrivateIpAddresses": [
{
"PrivateDnsName": "ip-10-0-1-114.ec2.internal",
"Primary": true,
"PrivateIpAddress": "10.0.1.114"
}
],
"PrivateDnsName": "ip-10-0-1-114.ec2.internal",
"Attachment": {
"Status": "attached",
"DeviceIndex": 0,
"DeleteOnTermination": true,
"AttachmentId": "eni-attach-52193138",
"AttachTime": "2013-07-19T02:42:39.000Z"
},
"Groups": [
{
"GroupName": "my-sg",
"GroupId": "sg-903004f8"
}
],
"SubnetId": "subnet-6e7f829e",
"OwnerId": "123456789012",
"PrivateIpAddress": "10.0.1.114"
}
],
"SourceDestCheck": true,
"Placement": {
"Tenancy": "default",
"GroupName": null,
"AvailabilityZone": "us-west-2b"
},
"Hypervisor": "xen",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sda1",
"Ebs": {
"Status": "attached",
"DeleteOnTermination": true,
"VolumeId": "vol-877166c8",
"AttachTime": "2013-07-19T02:42:39.000Z"
}
}
],
"Architecture": "x86_64",
"StateReason": {
"Message": "pending",
"Code": "pending"
},
"RootDeviceName": "/dev/sda1",
170
AWS Command Line Interface Guía del usuario
Instancias EC2
"VirtualizationType": "hvm",
"RootDeviceType": "ebs",
"Tags": [
{
"Value": "MyInstance",
"Key": "Name"
}
],
"AmiLaunchIndex": 0
}
]
}
EC2-Classic
Si la cuenta lo admite, puede utilizar el siguiente comando para lanzar una instancia t1.micro en EC2-
Classic. Sustituya los valores del parámetro en cursiva por sus propios valores.
171
AWS Command Line Interface Guía del usuario
Instancias EC2
"DeviceName": "/dev/sda1",
"Ebs": {
"Status": "attached",
"DeleteOnTermination": true,
"VolumeId": "vol-877166c8",
"AttachTime": "2013-07-19T02:42:39.000Z"
}
}
],
"Architecture": "x86_64",
"StateReason": {
"Message": "pending",
"Code": "pending"
},
"RootDeviceName": "/dev/sda1",
"VirtualizationType": "hvm",
"RootDeviceType": "ebs",
"Tags": [
{
"Value": "MyInstance",
"Key": "Name"
}
],
"AmiLaunchIndex": 0
}
]
}
En el parámetro del siguiente ejemplo aprovisiona un volumen estándar de Amazon EBS con un tamaño
de 20 GB y lo asigna a su instancia con el identificador/dev/sdf.
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"VolumeSize\":20,
\"DeleteOnTermination\":false}}]"
En el siguiente ejemplo se añade un volumen de Amazon EBS, asignado a/dev/sdf, a partir de una
instantánea existente. Una instantánea representa una imagen que se carga en el volumen por usted.
Cuando se especifica una instantánea, no es necesario especificar un tamaño de volumen; será lo
suficientemente grande como para almacenar la imagen. Sin embargo, si especifica un tamaño, este
deberá ser igual o mayor que el tamaño de la instantánea.
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"SnapshotId\":\"snap-
a1b2c3d4\"}}]"
En el siguiente ejemplo se añaden dos volúmenes a la instancia. El número de volúmenes disponibles para
su instancia depende del tipo de instancia.
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"VirtualName\":\"ephemeral0\"},
{\"DeviceName\":\"/dev/sdg\",\"VirtualName\":\"ephemeral1\"}]"
172
AWS Command Line Interface Guía del usuario
Instancias EC2
--block-device-mappings "[{\"DeviceName\":\"/dev/sdj\",\"NoDevice\":\"\"}]"
Para obtener más información, consulteMapeo de dispositivos de bloques deen laGuía del usuario de
Amazon EC2 para instancias de Linux.
En el siguiente ejemplo se muestra cómo añadir una etiqueta con el nombre de clave»Name«y el
valor»MyInstance«a la instancia especificada, mediante el uso decreate-tagscomando.
Conéctese a la instancia
Puede conectarse a su instancia mientras se esté ejecutando y utilizarla como si fuera un equipo que tiene
delante. Para obtener más información, consulteConnect a su instancia Amazon EC2en laGuía del usuario
de Amazon EC2 para instancias de Linux.
El siguiente comando filtra únicamente las instancias t2.micro de la lista y devuelve únicamente los
valores InstanceId para cada coincidencia.
El siguiente comando muestra todas las instancias que tienen la etiqueta Name=MyInstance.
El siguiente comando muestra las instancias que tiene y que se iniciaron con cualquiera de las siguientes
AMI: ami-x0123456, ami-y0123456y ami-z0123456.
173
AWS Command Line Interface Guía del usuario
Cambiar el tipo de EC2 mediante
secuencias de comandos bash
Cuando haya finalizado con una instancia, puede usar el comando terminate-instances para eliminarla.
Temas
• Antes de comenzar (p. 174)
• Acerca de este ejemplo (p. 175)
• Parameters (p. 175)
• Files (p. 175)
• References (p. 176)
Antes de comenzar
Antes de que pueda ejecutar cualquiera de los siguientes ejemplos, debe completarse lo siguiente.
• AWS CLIinstalado, consulteInstalar, actualizar y desinstalar elAWS CLI (p. 6)para obtener más
información.
• AWS CLIconfigurado, consulteFundamentos de configuración (p. 47)para obtener más información. El
perfil que utilice debe tener permisos que permitan elAWSoperaciones realizadas por los ejemplos.
• Una instancia de Amazon EC2 en ejecución en la cuenta para la que tiene permiso para detener y
modificar. Si ejecuta el script de prueba, inicia una instancia por usted, prueba el cambio del tipo y, a
continuación, finaliza la instancia.
• ComoAWSConceder privilegios mínimos a este código, o solo los permisos necesarios para llevar a
cabo una tarea. Para obtener más información, consulteConceder privilegios mínimosen laAWSGuía del
usuario de Identity and Access Management (IAM).
174
AWS Command Line Interface Guía del usuario
Cambiar el tipo de EC2 mediante
secuencias de comandos bash
• Este código no ha sido probado en todos losAWSRegiones. AlgunoAWSLos servicios solo están
disponibles en regiones específicas. Para obtener más información, consulteCuotas y puntos de enlace
de servicioen laAWSGuía general de referencia.
• La ejecución de este código puede producir cargos en suAWSaccount. Es su responsabilidad
asegurarse de que los recursos creados por este script se eliminen cuando haya terminado con ellos.
$ source ./change_ec2_instance_type.sh
$ ./change_ec2_instance_type -i *instance-id* -t new-type
Para obtener el ejemplo completo y los archivos de script descargables, consulteCambie el tipo de
instancia Amazon EC2en laAWSEjemplos de código de repositorioenGitHub.
Parameters
-i-(cadena)Especifica el ID de instancia que se va a modificar.
-r-(switch)De forma predeterminada, no se establece. Si-r, reinicia la instancia después del modificador de
tipo.
-f-(switch)De forma predeterminada, el script solicita al usuario que confirme el cierre de la instancia antes
de realizar el cambio. Si-f, la función no le pide al usuario antes de apagar la instancia para hacer el
cambio de tipo
-v-(switch)De forma predeterminada, el script funciona de forma silenciosa y muestra la salida solo en caso
de error. Si-v, la función muestra el estado a lo largo de su operación.
Files
change_ec2_instance_type.sh
test_change_ec2_instance_type.sh
175
AWS Command Line Interface Guía del usuario
S3 Glacier
awsdocs_general.sh
References
AWS CLI Referencia:
• aws ec2
• aws ec2 describe-instances
• aws ec2 modify-instance-attribute
• aws ec2 start-instances
• aws ec2 stop-instances
• aws ec2 wait instance-running
• aws ec2 wait instance-stopped
Otras referencias:
Puede obtener acceso a las características de Amazon S3 Glacier con laAWS Command Line
Interface(AWS CLI). Para mostrar elAWS CLIpara S3 Glacier, utilice el siguiente comando.
En este tema se muestran ejemplos deAWS CLIcommands que realizan tareas comunes para S3 Glacier.
En los ejemplos se muestra cómo utilizar elAWS CLIPara cargar un archivo de gran tamaño a S3 Glacier
dividiéndolo en partes más pequeñas y cargándolas desde la línea de comandos.
Antes de ejecutar los comandos, defina sus credenciales predeterminadas. Para obtener más información,
consulte Configuración de la AWS CLI (p. 47).
176
AWS Command Line Interface Guía del usuario
Cree un almacén de Amazon S3 Glacier
Note
Este tutorial utiliza varias herramientas de línea de comandos que normalmente vienen
preinstaladas en los sistemas operativos tipo Unix, como Linux y macOS. Los usuarios de
Windows pueden usar las mismas herramientas instalando Cygwin y ejecutando los comandos
desde el terminal de Cygwin. Se indicará en cada caso si hay disponibles utilidades y comandos
nativos de Windows que realicen las mismas funciones.
Temas
• Cree un almacén de Amazon S3 Glacier (p. 177)
• Preparación de un archivo para cargarlo (p. 177)
• Inicio de una carga multiparte y carga de archivos (p. 178)
• Finalización de la carga (p. 179)
Note
Todos los comandos de S3 Glacier requieren un parámetro de ID de cuenta. Utilice el carácter de
guion (--account-id -) para utilizar la cuenta actual.
Linux o macOS
dd es una utilidad que copia un número de bytes de un archivo de entrada en un archivo de salida. En
el ejemplo anterior se usa el archivo de dispositivo de sistema /dev/urandom como origen de datos
aleatorios. fsutil realiza una función similar en Windows.
Windows
177
AWS Command Line Interface Guía del usuario
Inicio de una carga multiparte y carga de archivos
Note
S3 Glacier requiere especificar el tamaño de cada parte en bytes (1 MiB en este ejemplo), el nombre
del almacén y el ID de cuenta para configurar la carga multiparte. La AWS CLI genera un ID de carga al
completarse la operación. Guarde el ID de carga en una variable de shell para su uso posterior.
Linux o macOS
$ UPLOADID="19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-
OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"
Windows
A continuación, use el comando upload-multipart-part para cargar cada una de las tres partes.
Note
En el ejemplo anterior se usa el signo de dólar ($) para hacer referencia al contenido de la
variable de shell UPLOADID en Linux. En la línea de comandos de Windows, utilice un signo de
porcentaje (%) a ambos lados del nombre de variable (por ejemplo,%UPLOADID%).
Debe especificar el intervalo de bytes de cada parte al cargarla, para que S3 Glacier pueda volver a
ensamblarlas en el orden adecuado. Cada parte tiene 1048576 bytes, por lo que la primera ocupa los
bytes del 0 al 1048575, la segunda del 1048576 al 2097151 y la tercera del 2097152 al 3145727.
178
AWS Command Line Interface Guía del usuario
Finalización de la carga
Finalización de la carga
Amazon S3 Glacier requiere un algoritmo hash en árbol del archivo original, para poder confirmar que
todas las partes cargadas llegan aAWSintacto.
Para calcular un algoritmo hash en árbol, divida el archivo en partes de 1 MiB y calcule un hash SHA-256
binario de cada fragmento. A continuación, divida la lista de hashes en pares, combine los dos hashes
binarios de cada par y tome los hashes de los resultados. Repita este proceso hasta que solo quede un
hash. Si hay un número impar de hashes en cualquier nivel, páselo al nivel siguiente sin modificarlo.
La clave para calcular un algoritmo hash en árbol correctamente al usar utilidades de línea de comandos
es almacenar cada hash en formato binario y convertir a hexadecimal solamente en el último paso. Si la
versión hexadecimal de cualquier hash del árbol se combina o se convierte a algoritmo hash, se obtendrá
un resultado incorrecto.
Note
Los usuarios de Windows pueden utilizar el comando type en lugar de cat. OpenSSL está
disponible para Windows en OpenSSL.org.
3. Combine los dos primeros hashes y tome el hash binario del resultado.
4. Combine el hash principal de los fragmentos aa y ab con el hash del fragmento ac y cree un hash del
resultado, esta vez con formato hexadecimal. Almacene el resultado en una variable de shell.
Por último, complete la carga con el comando complete-multipart-upload, que toma el tamaño del
archivo original en bytes, el valor final del algoritmo hash en árbol en formato hexadecimal, su ID de cuenta
y el nombre del almacén.
179
AWS Command Line Interface Guía del usuario
IAM
"checksum": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67",
"location": "/123456789012/vaults/myvault/archives/
d3AbWhE0YE1m6f_fI1jPG82F8xzbMEEZmrAlLGAAONJAzo5QdP-N83MKqd96Unspoa5H5lItWX-sK8-
QS0ZhwsyGiu9-R-kwWUyS1dSBlmgPPWkEbeFfqDSav053rU7FvVLHfRc6hg"
}
Note
El estado del almacén se actualiza una vez al día. Consulte Trabajar con almacenes para obtener
más información.
Ahora puede quitar sin problemas el fragmento y los archivos hash que ha creado.
$ rm chunk* hash*
Para obtener más información sobre cargas multiparte de, consulteCarga de archivos grandes por
partesyCálculo de sumas de comprobaciónen laGuía para desarrolladores de Amazon S3 Glacier.
Puede obtener acceso a las características deAWS Identity and Access Management(IAM) conAWS
Command Line Interface(AWS CLI). Para mostrar laAWS CLIPara IAM, utilice el comando siguiente.
En este tema se muestran ejemplos deAWS CLIComandos de la que realizan tareas comunes para IAM.
Antes de ejecutar los comandos, defina sus credenciales predeterminadas. Para obtener más información,
consulte Configuración de la AWS CLI (p. 47).
Para obtener más información sobre el servicio IAM, consulte la Guía del usuario de AWS Identity and
Access Management.
Temas
• Creación de usuarios y grupos de IAM (p. 181)
• Asociación de una política administrada por IAM a un usuario de IAM (p. 182)
• Establecimiento de una contraseña inicial para un usuario de IAM (p. 182)
• Creación de una clave de acceso para un usuario de IAM (p. 183)
180
AWS Command Line Interface Guía del usuario
Creación de usuarios y grupos de IAM
Antes de ejecutar los comandos, defina sus credenciales predeterminadas. Para obtener más información,
consulte Configuración de la AWS CLI (p. 47).
4. Para verificar que el grupo MyIamGroup contiene al usuario MyUser, use el comando get-group.
181
AWS Command Line Interface Guía del usuario
Asociación de una política administrada
por IAM a un usuario de IAM
],
"IsTruncated": "false"
}
Antes de ejecutar los comandos, defina sus credenciales predeterminadas. Para obtener más información,
consulte Configuración de la AWS CLI (p. 47).
1. Determine el nombre de recurso de Amazon (ARN) de la política que desea asociar. El siguiente
comando usa list-policies para buscar el ARN de la política con el nombre PowerUserAccess.
A continuación, almacena dicho ARN en una variable de entorno.
Para obtener más información, consulte Recursos de administración de acceso. En este tema se incluyen
vínculos a información general sobre permisos y políticas, además de vínculos a ejemplos de políticas para
acceder a Amazon S3, Amazon EC2 y otros servicios.
182
AWS Command Line Interface Guía del usuario
Creación de una clave de acceso para un usuario de IAM
Antes de ejecutar los comandos, defina sus credenciales predeterminadas. Para obtener más información,
consulte Configuración de la AWS CLI (p. 47).
El comando siguiente utiliza create-login-profile para configurar una contraseña inicial en el usuario
especificado. Cuando el usuario inicia sesión por primera vez, se le solicitará que cambie la contraseña y
elija una que solo él conozca.
Antes de ejecutar los comandos, defina sus credenciales predeterminadas. Para obtener más información,
consulte Configuración de la AWS CLI (p. 47).
Puede utilizar lacreate-access-keyPara crear una clave de acceso para un usuario de IAM. Una clave
de acceso es un conjunto de credenciales de seguridad que se compone de un ID de clave de acceso y
una clave secreta.
Un usuario de IAM solo puede crear dos claves de acceso al mismo tiempo. Si intenta crear un tercer
conjunto, el comando devuelve un error LimitExceeded.
183
AWS Command Line Interface Guía del usuario
Amazon S3
Puede acceder a las funciones de Amazon Simple Storage Service (Amazon S3) mediante laAWS
Command Line Interface(AWS CLI). LaAWS CLILa ofrece dos niveles de comandos para acceder a
Amazon S3:
• El nivel s3 se compone de comandos de alto nivel que simplifican la realización de tareas comunes,
como crear, manipular y eliminar objetos y buckets.
• Las3apise comporta de manera idéntica a otrosAWSAl exponer el acceso directo a todas las
operaciones de la API de Amazon S3. Le permite realizar operaciones avanzadas que podrían no ser
posibles solamente con los comandos de alto nivel del siguiente nivel.
Note
LaAWS CLILa admite copiar, transferir y sincronizar desde Amazon S3 a Amazon S3 mediante
lalado del servidor COPYOperación proporcionada por Amazon S3. Esto significa que sus archivos
se conservan en la nube y senoDescargado en el equipo cliente y, a continuación, haga una copia
de seguridad en Amazon S3.
Cuando este tipo de operaciones se pueden llevar a cabo totalmente en la nube, solo se usa el
ancho de banda necesario para la solicitud y la respuesta HTTP.
La de alto nivelaws s3simplifican la gestión de objetos de Amazon S3. Estos comandos le permiten
administrar el contenido de Amazon S3 dentro de sí mismo y con directorios locales.
Note
Cuando usaaws s3Para cargar objetos de gran tamaño en un bucket de Amazon S3, el
comandoAWS CLIRealiza automáticamente una carga multiparte. No se puede reanudar una
carga fallida cuando se utilizan estosaws s3commands.
Si la carga multiparte falla debido a un tiempo de espera, o si canceló manualmente en elAWS
CLI, elAWS CLIdetiene la carga y limpia los archivos que se han creado. Este proceso puede
tardar varios minutos.
Si el proceso de carga o limpieza de varias partes se cancela por un comando kill o un error del
sistema, los archivos creados permanecen en el depósito de Amazon S3. Para limpiar la carga de
varias partes, utilice la herramientas3api abort-multipart-uploadEl comando de.
Para obtener más información, consulteInformación general sobre la carga multiparteen laAmazon
Simple Storage Service Developer Guide.
Temas
• Prerequisites (p. 185)
• Crear un bucket (p. 185)
184
AWS Command Line Interface Guía del usuario
Alto nivel (s3comandos de)
Prerequisites
Para ejecutar las3, necesita:
• AWS CLIinstalado, consulteInstalar, actualizar y desinstalar elAWS CLI (p. 6)para obtener más
información.
• AWS CLIconfigurado, consulteFundamentos de configuración (p. 47)para obtener más información. El
perfil que utilice debe tener permisos que permitan elAWSoperaciones realizadas por los ejemplos.
• Comprenda estos términos de Amazon S3:
• Bucket— Una carpeta de Amazon S3 de nivel superior.
• Prefix— Una carpeta de Amazon S3 en un bucket.
• Objeto— Cualquier artículo hospedado en un bucket de Amazon S3.
Crear un bucket
Usars3 mbpara crear un depósito. Los nombres de bucket debenglobalmenteSer único (único en todo
Amazon S3) y compatible con DNS.
Los nombres de los buckets pueden contener minúsculas, números, guiones y puntos. Los nombres de los
buckets solo pueden empezar y terminar con una letra o número, y no pueden contener un punto junto a
un guion u otro punto.
Sintaxis
ejemplos de s3 mb
$ aws s3 mb s3://bucket-name
Sintaxis
185
AWS Command Line Interface Guía del usuario
Alto nivel (s3comandos de)
Para ver algunas opciones comunes que se pueden utilizar con este comando y ejemplos,
consulteOpciones más utilizadas para los comandos s3 (p. 190). Para obtener una lista completa de las
opciones disponibles, consulte.s3 lsen laAWS CLIReferencia de los comandos de la.
s3 ls ejemplos
$ aws s3 ls
2018-12-11 17:08:50 my-bucket
2018-12-14 14:55:44 my-bucket2
El siguiente comando muestra todos los objetos y prefijos de un bucket. En este resultado de ejemplo, el
prefijoexample/tiene un archivo llamadoMyFile1.txt.
$ aws s3 ls s3://bucket-name
PRE example/
2018-12-04 19:05:48 3 MyFile1.txt
Para filtrar la salida por un prefijo específico, inclúyalo en el comando. En el siguiente comando
se muestran los objetos denombre/ejemplo/(es decir, objetos ennombre-bucketfiltrado por el
prefijoejemplo/).
$ aws s3 ls s3://bucket-name/example/
2018-12-06 18:59:32 3 MyFile1.txt
Eliminar buckets
Para eliminar un bucket, use las3 rbEl comando de.
Sintaxis
ejemplos de s3 rb
$ aws s3 rb s3://bucket-name
De forma predeterminada, el bucket debe estar vacío para que la operación se realice correctamente. Para
eliminar un bucket que no esté vacío, debe incluir el--forceOpción. Si utiliza un bucket versionado que
contenga objetos eliminados previamente, pero que se conservan, este comando hacenole permiten quitar
el cubo. En primer lugar, debe eliminar todo el contenido.
En el siguiente ejemplo se eliminan todos los objetos y prefijos del bucket y, a continuación, se elimina el
bucket.
Eliminar objetos
Para eliminar objetos en un depósito o en el directorio local, utilice la herramientas3 rmEl comando de.
186
AWS Command Line Interface Guía del usuario
Alto nivel (s3comandos de)
Sintaxis
Para ver algunas opciones comunes que se pueden utilizar con este comando y ejemplos,
consulteOpciones más utilizadas para los comandos s3 (p. 190). Para obtener una lista completa de
opciones, consulte.s3 rmen laAWS CLIReferencia de los comandos de la.
ejemplos de s3 rm
Mover objetos
Usars3 mvpara mover objetos desde un depósito o un directorio local.
Sintaxis
Para ver algunas opciones comunes que se pueden utilizar con este comando y ejemplos,
consulteOpciones más utilizadas para los comandos s3 (p. 190). Para obtener una lista completa de las
opciones disponibles, consulte.s3 mven laAWS CLIReferencia de los comandos de la.
ejemplos de s3 mv
En el ejemplo siguiente se mueve un archivo local desde el directorio de trabajo actual al bucket de
Amazon S3 con la propiedads3 cpEl comando de.
En el siguiente ejemplo se mueve un archivo del bucket de Amazon S3 al directorio de trabajo actual,
donde./especifica el directorio de trabajo actual.
$ aws s3 mv s3://bucket-name/filename.txt ./
Copia de objetos
Usars3 cppara copiar objetos de un depósito o un directorio local.
Sintaxis
187
AWS Command Line Interface Guía del usuario
Alto nivel (s3comandos de)
Puede usar el parámetro de guión para la transmisión de archivos a la entrada estándar (stdin) o salida
estándar (stdout).
Warning
Las3 cpEl comando utiliza la siguiente sintaxis para cargar un flujo de archivos desdestdinEn un bucket
especificado.
Sintaxis
Las3 cputiliza la siguiente sintaxis para descargar una secuencia de archivos de Amazon S3
parastdout.
Sintaxis
Para ver algunas opciones comunes que se pueden utilizar con este comando y ejemplos,
consulteOpciones más utilizadas para los comandos s3 (p. 190). Para obtener una lista completa de
opciones, consulte.s3 cpen laAWS CLIReferencia de los comandos de la.
Ejemplos del s3 cp
En el ejemplo siguiente se copia un archivo local de su directorio de trabajo actual al bucket de Amazon S3
con la propiedads3 cpEl comando de.
En el siguiente ejemplo se copia un archivo del bucket de Amazon S3 en el directorio de trabajo actual,
donde./especifica el directorio de trabajo actual.
$ aws s3 cp s3://bucket-name/filename.txt ./
En el siguiente ejemplo se utiliza echo para transmitir el texto «hola world» als3://bucket-name/
filename.txtfile.
$ aws s3 cp s3://bucket-name/filename.txt -
188
AWS Command Line Interface Guía del usuario
Alto nivel (s3comandos de)
hello world
Sincronizar objetos
Las3 syncEl comando sincroniza el contenido de un bucket y un directorio, o bien el contenido de dos
buckets. Por lo general,s3 synccopia archivos u objetos que estén desactualizados o que falten entre
el origen y el destino. Sin embargo, también puede introducir la opción --delete para quitar archivos u
objetos desde el destino que no se encuentran en el origen.
Sintaxis
Para ver algunas opciones comunes que se pueden utilizar con este comando y ejemplos,
consulteOpciones más utilizadas para los comandos s3 (p. 190). Para obtener una lista completa de
opciones, consulte.s3 syncen laAWS CLIReferencia de los comandos de la.
ejemplos de sincronización s3
s3 syncactualiza los archivos que tengan un tamaño o tiempo de modificación que sean diferentes
de los archivos con el mismo nombre en el destino. La salida muestra las operaciones específica
realizadas durante la sincronización. Observe que la operación sincroniza recursivamente el
subdirectorioMySubdirectoryy su contenido cons3://my-bucket/path/MySubdirectory.
En el siguiente ejemplo, que amplía el anterior, se muestra cómo usar el método de--deleteOpción.
189
AWS Command Line Interface Guía del usuario
Alto nivel (s3comandos de)
Assume local directory and s3://my-bucket/path currently in sync and each contains 3 files:
MyFile1.txt
MyFile2.rtf
MyFile88.txt
'''
// Sync with delete, excluding files that match a pattern. MyFile88.txt is deleted, while
remote MyFile1.txt is not.
$ aws s3 sync . s3://my-bucket/path --delete --exclude "path/MyFile?.txt"
delete: s3://my-bucket/path/MyFile88.txt
'''
acl
s3 syncys3 cpPuede utilizar--aclOpción. Esto le permite configurar los permisos de acceso para
archivos copiados en Amazon S3. La opción --acl admite los valores private, public-read y
public-read-write. Para obtener más información, consulteACL predefinidasen laAmazon Simple
Storage Service Developer Guide.
Exclude
Cuando utiliza el comandos3 cp,s3 mv,s3 sync, o biens3 rm, puede filtrar los resultados mediante
la--excludeor--includeOpción. La--excludeestablece reglas para excluir únicamente objetos
del comando y las opciones se aplican en el orden especificado. Esto se muestra en el siguiente
ejemplo.
190
AWS Command Line Interface Guía del usuario
Alto nivel (s3comandos de)
// Exclude all .txt files but include all files with the "MyFile*.txt" format,
resulting in, MyFile1.txt, MyFile2.rtf, MyFile88.txt being copied
$ aws s3 cp . s3://my-bucket/path --exclude "*.txt" --include "MyFile*.txt"
// Exclude all .txt files, but include all files with the "MyFile*.txt" format,
but exclude all files with the "MyFile?.txt" format resulting in, MyFile2.rtf and
MyFile88.txt being copied
$ aws s3 cp . s3://my-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude
"MyFile?.txt"
Include
Cuando utiliza el comandos3 cp,s3 mv,s3 sync, o biens3 rm, puede filtrar los resultados usando
el comando--excludeor--includeOpción. La--includeestablece reglas para incluir sólo los
objetos especificados para el comando y las opciones se aplican en el orden especificado. Esto se
muestra en el siguiente ejemplo.
// Include all .txt files, resulting in MyFile1.txt and MyFile88.txt being copied
$ aws s3 cp . s3://my-bucket/path --include "*.txt"
// Include all .txt files but exclude all files with the "MyFile*.txt" format,
resulting in no files being copied
$ aws s3 cp . s3://my-bucket/path --include "*.txt" --exclude "MyFile*.txt"
// Include all .txt files, but exclude all files with the "MyFile*.txt" format, but
include all files with the "MyFile?.txt" format resulting in MyFile1.txt being copied
concesión
Los comandos s3 cp, s3 mv y s3 sync incluyen una opción --grants que puede usar
para conceder permisos sobre el objeto a usuarios o grupos específicos. Establecimiento de la
propiedad de--grantsLa opción para obtener una lista de permisos mediante la sintaxis siguiente.
ReemplazarPermission,Grantee_Type, yGrantee_IDcon sus propios valores.
Sintaxis
--grants Permission=Grantee_Type=Grantee_ID
[Permission=Grantee_Type=Grantee_ID ...]
Para obtener más información acerca del control de acceso de Amazon S3, consulteControl de
acceso.
191
AWS Command Line Interface Guía del usuario
Comandos de nivel de API (s3 api)
recursive
Al usar esta opción, el comando se ejecuta en todos los objetos o archivos del directorio especificado
o con el prefijo especificado. En el siguiente ejemplo se eliminas3://my-bucket/pathY todos sus
contenidos.
Resources
AWS CLI Referencia:
• aws s3
• aws s3 cp
• aws s3 mb
• aws s3 mv
• aws s3 ls
• aws s3 rb
• aws s3 rm
• aws s3 sync
• Trabajo con buckets de Amazon S3en laAmazon Simple Storage Service Developer Guide
• Trabajo con objetos de Amazon S3en laAmazon Simple Storage Service Developer Guide
• Listado de claves jerárquicamente utilizando un prefijo y delimitadoren laAmazon Simple Storage Service
Developer Guide
• Anular cargas multiparte a un bucket de S3 con laAWS SDK for .NET(bajo nivel de)en laAmazon Simple
Storage Service Developer Guide
192
AWS Command Line Interface Guía del usuario
Comandos de nivel de API (s3 api)
proporcionan acceso de nivel de API a la funcionalidad de los servicios. Para obtener más información
sobre las3consulteUso de comandos (s3) de alto nivel con laAWS CLI (p. 184)
En este tema, se incluyen ejemplos en los que se muestra cómo se usan los comandos de bajo nivel que
se asignan a las API de Amazon S3. Además, puede encontrar ejemplos para cada comando de API de S3
en elsección s3api de la Guía de Referencia de CLI.
Prerequisites
Para ejecutar las3api, necesita:
• AWS CLIinstalado, consulteInstalar, actualizar y desinstalar elAWS CLI (p. 6)para obtener más
información.
• AWS CLIconfigurado, consulteFundamentos de configuración (p. 47)para obtener más información. El
perfil que utilice debe tener permisos que permitan elAWSoperaciones realizadas por los ejemplos.
• Comprenda estos términos de Amazon S3:
• Bucket— Una carpeta de Amazon S3 de nivel superior.
• Prefix— Una carpeta de Amazon S3 en un bucket.
• Objeto— Cualquier artículo hospedado en un bucket de Amazon S3.
En el siguiente ejemplo se muestra cómo conceder control total a dos usuarios de AWS
([email protected] y [email protected]) y permisos de lectura a todos los usuarios. El identificador
para "everyone" (todos) proviene de un URI especial que se pasa como parámetro.
Para obtener más información acerca de cómo construir las ACL, consultePUT Bucket aclen laReferencia
de la API de Amazon Simple Storage Service. Los comandos ACL de s3api en la CLI, como put-
bucket-acl, usan la misma notación abreviada de argumentos.
193
AWS Command Line Interface Guía del usuario
Ejemplo de scripting del ciclo de vida del bucket (s3api)
{
"LoggingEnabled": {
"TargetBucket": "MyBucket",
"TargetPrefix": "MyBucketLogs/",
"TargetGrants": [
{
"Grantee": {
"Type": "AmazonCustomerByEmail",
"EmailAddress": "[email protected]"
},
"Permission": "FULL_CONTROL"
},
{
"Grantee": {
"Type": "Group",
"URI": "http://acs.amazonaws.com/groups/global/AllUsers"
},
"Permission": "READ"
}
]
}
}
Resources
AWS CLI Referencia:
• aws s3api
• aws s3api put-bucket-acl
• aws s3api put-bucket-logging
• Trabajo con buckets de Amazon S3en laAmazon Simple Storage Service Developer Guide
• Trabajo con objetos de Amazon S3en laAmazon Simple Storage Service Developer Guide
• Listado de claves jerárquicamente utilizando un prefijo y delimitadoren laAmazon Simple Storage Service
Developer Guide
• Anular cargas multiparte a un bucket de S3 con laAWS SDK for .NET(bajo nivel de)en laAmazon Simple
Storage Service Developer Guide
Temas
• Antes de comenzar (p. 195)
• Acerca de este ejemplo (p. 195)
• Files (p. 195)
• References (p. 196)
194
AWS Command Line Interface Guía del usuario
Ejemplo de scripting del ciclo de vida del bucket (s3api)
Antes de comenzar
Antes de que pueda ejecutar cualquiera de los siguientes ejemplos, debe completarse lo siguiente.
• AWS CLIinstalado, consulteInstalar, actualizar y desinstalar elAWS CLI (p. 6)para obtener más
información.
• AWS CLIconfigurado, consulteFundamentos de configuración (p. 47)para obtener más información. El
perfil que utilice debe tener permisos que permitan elAWSoperaciones realizadas por los ejemplos.
• Como unAWSConceder privilegios mínimos a este código o solo los permisos necesarios para llevar a
cabo una tarea. Para obtener más información, consulte Concesión de mínimos privilegios en la Guía del
usuario de IAM.
• Este código no ha sido probado en todos losAWSRegiones de. AlgunoAWSLos servicios solo están
disponibles en regiones específicas. Para obtener más información, consulteCuotas y puntos de enlace
de servicioen laAWSGuía general de referencia.
• La ejecución de este código puede producir cargos en suAWSaccount. Es su responsabilidad
asegurarse de que los recursos creados por este script se eliminen cuando haya terminado con ellos.
Para ver los resultados intermedios de cada paso, ejecute el script con un-iParámetro. Puede ver el
estado actual del bucket o su contenido mediante la consola de Amazon S3. La secuencia de comandos
sólo pasa al siguiente paso cuando se pulsaEscribaEn el símbolo del sistema.
Para obtener el ejemplo completo y los archivos de script descargables, consulteOperaciones del ciclo de
vida del bucket de Amazon S3en laAWSEjemplos de código repositorioenGitHub.
Files
El ejemplo contiene los siguientes archivos:
bucket-operations.sh
Este archivo de script principal puede obtenerse de otro archivo. Incluye funciones que realizan las
siguientes tareas:
• Crear un depósito y verificar que existe
• Copiar un archivo desde el equipo local a un depósito
• Copiar un archivo desde una ubicación de depósito a otra ubicación de depósito
• Mostrar el contenido de un bucket
• Eliminación de un archivo de un depósito
• Eliminar un bucket
195
AWS Command Line Interface Guía del usuario
Amazon SNS
test-bucket-operations.sh
awsdocs-general.sh
References
AWS CLI Referencia:
• aws s3api
• aws s3api create-bucket
• aws s3api copy-object
• aws s3api delete-bucket
• aws s3api delete-object
• aws s3api head-bucket
• aws s3api list-objects
• aws s3api put-object
Referencia de otras:
• Trabajo con buckets de Amazon S3en laAmazon Simple Storage Service Developer Guide
• Trabajo con objetos de Amazon S3en laAmazon Simple Storage Service Developer Guide
• Para ver y contribuir aAWSSDK yAWS CLIPara obtener ejemplos de código, consulte laAWSEjemplos
de código repositorioenGitHub.
Puede acceder a las funciones de Amazon Simple Notification Service (Amazon SNS) mediante laAWS
Command Line Interface(AWS CLI). Para enumerar laAWS CLIPara Amazon SNS, utilice el siguiente
comando.
Antes de ejecutar los comandos, defina sus credenciales predeterminadas. Para obtener más información,
consulte Configuración de la AWS CLI (p. 47).
196
AWS Command Line Interface Guía del usuario
Crear un tema
En este tema se muestran ejemplos deAWS CLIComandos de la que realizan tareas comunes para
Amazon SNS.
Temas
• Crear un tema (p. 197)
• Suscripción a un tema (p. 197)
• Publicación de un tema (p. 198)
• Cancelación de la suscripción a un tema (p. 198)
• Eliminación de un tema (p. 198)
Crear un tema
Para crear un tema, utilice el comando create-topic y especifique el nombre que desea asignar al
tema.
Anote el valor de TopicArn de la respuesta, que utilizará más adelante para publicar un mensaje.
Suscripción a un tema
Para suscribirse a un tema, utilice el comando subscribe.
En el siguiente ejemplo se especifica el protocolo email y una dirección de correo electrónico para el
notification-endpoint.
Cuando el destinatario hace clic en el enlace Confirm subscription (Confirmar suscripción), el navegador
del destinatario muestra un mensaje de notificación con información similar a la siguiente.
Subscription confirmed!
197
AWS Command Line Interface Guía del usuario
Publicación de un tema
Publicación de un tema
Para enviar un mensaje a todos los suscriptores de un tema, utilice el comando publish.
En el siguiente ejemplo se envía el mensaje «Hello World!» a todos los suscriptores del tema especificado.
Para verificar que se ha cancelado la suscripción correctamente, utilice el comando list-subscriptions para
confirmar que el ARN ya no aparece en la lista.
Eliminación de un tema
Para eliminar un tema, ejecute el comando delete-topic.
Para verificar que AWS ha eliminado el tema correctamente, utilice el comando list-topics para confirmar
que el tema ya no aparece en la lista.
Puede acceder a las características de Amazon Simple Workflow Service (Amazon SWF) con laAWS
Command Line Interface(AWS CLI).
198
AWS Command Line Interface Guía del usuario
Lista de comandos de Amazon SWF
Para obtener una lista de losAWS CLIPara Amazon SWF, utilice el comando siguiente.
Antes de ejecutar los comandos, defina sus credenciales predeterminadas. Para obtener más información,
consulte Configuración de la AWS CLI (p. 47).
En los siguientes temas se muestran ejemplos deAWS CLIComandos de la que realizan tareas comunes
para Amazon SWF.
Temas
• Lista de comandos de Amazon SWF por categoría (p. 199)
• Uso de dominios de Amazon SWF con laAWS CLI (p. 201)
En esta sección se muestran los temas de referencia de los comandos de Amazon SWF en laAWS CLI,
agrupado porCategoría funcional.
Para unalfabéticoPara obtener una lista de comandos de, consulte laSección de Amazon SWFde laAWS
CLIReferencia de los comandos de la, o utilice el siguiente comando.
También puede obtener ayuda para un comando individual, escribiendo la directiva help después del
nombre del comando. A continuación se muestra un ejemplo.
Temas
• Comandos relacionados con actividades (p. 199)
• Comandos relacionados con decisores (p. 200)
• Comandos relacionados con ejecuciones de flujo de trabajo (p. 200)
• Comandos relacionados con administración (p. 200)
• Comandos de visibilidad (p. 201)
• poll-for-activity-task
• respond-activity-task-completed
• respond-activity-task-failed
199
AWS Command Line Interface Guía del usuario
Lista de comandos de Amazon SWF
• respond-activity-task-canceled
• record-activity-task-heartbeat
• poll-for-decision-task
• respond-decision-task-completed
• request-cancel-workflow-execution
• start-workflow-execution
• signal-workflow-execution
• terminate-workflow-execution
Administración de actividades
• register-activity-type
• deprecate-activity-type
Administración de dominios
• register-domain
• deprecate-domain
Para obtener más información y ejemplos de estos comandos de administración de dominios, consulte Uso
de dominios de Amazon SWF con laAWS CLI (p. 201).
200
AWS Command Line Interface Guía del usuario
Uso de dominios de Amazon SWF
• terminate-workflow-execution
Comandos de visibilidad
La consola Amazon SWF permite realizar acciones de visibilidad, pero puede utilizar los comandos
de esta sección para automatizar funciones o crear su propia consola o sus propias herramientas de
administración.
Visibilidad de dominios
• list-domains
• describe-domain
Para obtener más información y ejemplos de estos comandos de visibilidad, consulte Uso de dominios de
Amazon SWF con laAWS CLI (p. 201).
Temas
• Visualización de los dominios (p. 202)
• Obtener información acerca de un dominio (p. 202)
• Registrar un dominio (p. 202)
201
AWS Command Line Interface Guía del usuario
Uso de dominios de Amazon SWF
Note
Para ver un ejemplo del uso de DEPRECATED, consulte Dar de baja un dominio (p. 203).
Para obtener más información, consultelist-domainsen laAWS CLIReferencia de los comandos de la.
Para obtener más información, consultedescribe-domainen laAWS CLIReferencia de los comandos de la.
Registrar un dominio
Para registrar nuevos dominios, use swf register-domain.
202
AWS Command Line Interface Guía del usuario
Uso de dominios de Amazon SWF
Si especifica cero (0) para este valor, el periodo de retención se ajusta automáticamente a la duración
máxima. De lo contrario, los datos de ejecución de flujo de trabajo no se conservarán después de que haya
transcurrido el número especificado de días. En el siguiente ejemplo, se muestra cómo registrar un nuevo
dominio.
El comando no devuelve ningún resultado, pero se puede utilizar swf list-domains o swf describe-
domain para ver el nuevo dominio, tal y como se muestra en el ejemplo siguiente.
Para obtener más información, consulteregister-domainen laAWS CLIReferencia de los comandos de la.
Al igual que ocurre con register-domain, no se devuelve ningún resultado. Si usa list-domains para
ver los dominios registrados, sin embargo, verá que el dominio ya no aparece entre ellos. También puede
utilizar --registration-status DEPRECATED.
Para obtener más información, consultedeprecate-domainen laAWS CLIReferencia de los comandos de la.
203
AWS Command Line Interface Guía del usuario
Protección de los datos
El tema de la seguridad constituye una responsabilidad común entre AWS y usted. El modelo de
responsabilidad compartida la describe como seguridad de la nube y seguridad en la nube:
Esta documentación le ayuda a comprender cómo puede aplicar el modelo de responsabilidad compartida
cuando se utiliza AWS Command Line Interface (AWS CLI). En los siguientes temas, aprenderá a
configurar AWS CLI conforme a sus objetivos de seguridad y conformidad. También aprenderá a usar la
AWS CLI para que le ayude a monitorizar y proteger los recursos de AWS.
Temas
• Protección de datos en la AWS CLI (p. 204)
• Identity and Access Management para AWS CLI (p. 205)
• Validación de la conformidad de la AWS CLI (p. 206)
• Aplicación de una versión mínima de TLS 1.2 (p. 207)
Para fines de protección de datos, recomendamos proteger las credenciales de Cuenta de AWS y
configurar cuentas de usuario individuales con AWS Identity and Access Management (IAM). De esta
manera, solo se otorgan a cada usuario los permisos necesarios para cumplir con sus obligaciones
laborales. También le recomendamos proteger sus datos de las siguientes formas:
204
AWS Command Line Interface Guía del usuario
Cifrado de datos
Cifrado de datos
Una característica clave de cualquier servicio seguro es que la información se cifre cuando no se está
utilizando activamente.
Cifrado en reposo
La AWS CLI no guarda ningún otro datos de los clientes salvo las credenciales necesarias para interactuar
con los servicios de AWS en nombre del usuario.
Si utiliza la AWS CLI para invocar un servicio de AWS que transmita datos del cliente al equipo local para
su almacenamiento, consulte el capítulo «Seguridad y conformidad» de la Guía del usuario de ese servicio
para obtener información sobre cómo se almacenan, protegen y cifran esos datos.
Cifrado en tránsito
De forma predeterminada, todos los datos transmitidos desde el equipo cliente en el que se ejecuta la
AWS CLI y los puntos de enlace de servicio de AWS están cifrados, ya que todo se envía a través de una
conexión HTTPS/TLS.
No es necesario hacer nada para habilitar el uso de HTTPS/TLS. Siempre está habilitado, a menos que
se deshabilite explícitamente para un determinado comando con la opción de línea de comandos --no-
verify-ssl.
La única diferencia importante es el modo en que se realiza la autenticación cuando se utiliza un usuario
de IAM de estándar y credenciales a largo plazo. Aunque un usuario de IAM requiere una contraseña
205
AWS Command Line Interface Guía del usuario
Validación de la conformidad
para acceder a unAWSEl mismo usuario de IAM necesita un key pair de acceso para realizar las mismas
operaciones conAWS CLI. Todas las demás credenciales a corto plazo se utilizan de la misma manera que
con la consola.
Las credenciales que se utilizan en la AWS CLI se almacenan en archivos de texto sin formato y no se
cifran.
Mitigación de riesgos
• Le recomendamos encarecidamente que configure los permisos del sistema de archivos en la carpeta
$HOME/.aws, sus subcarpetas y archivos para restringir el acceso exclusivamente a los usuarios
autorizados.
• Utilice roles con credenciales temporales siempre que sea posible para reducir la posibilidad de que se
produzcan daños si las credenciales se ven comprometidas. Utilice credenciales a largo plazo solo para
solicitar y actualizar las credenciales a corto plazo de los roles.
Para obtener una lista de los servicios de AWS en el ámbito de programas de conformidad específicos,
consulte AWS Services in Scope by Compliance Program (Servicios en el ámbito de programas de
conformidad). Para obtener información general, consulte AWS Compliance Programs (Programas de
conformidad).
Puede descargar los informes de auditoría de terceros utilizando AWS Artifact. Para obtener más
información, consulte Downloading Reports in AWS Artifact (Descargar informes en Artifact) .
206
AWS Command Line Interface Guía del usuario
Aplicación de TLS 1.2
Según la versión de su AWS CLI, los pasos que realice para aplicar la versión mínima de TLS 1.2 varían.
Temas
• Configuración dAWS CLIVersión 1 para aplicar una versión mínima de TLS 1.2 (p. 207)
• Configuración dAWS CLIVersión 2 para aplicar una versión mínima de TLS 1.2 (p. 209)
$ openssl req -subj '/CN=localhost' -x509 -newkey rsa:4096 -nodes -keyout key.pem -out
cert.pem -days 365
En una nueva ventana de terminal, cree un entorno virtual e instale SDK for Python.
Cree un script de Python denominado check.py que use la biblioteca HTTP subyacente del SDK.
$ import urllib3
URL = 'https://localhost:4433/'
http = urllib3.PoolManager(
ca_certs='cert.pem',
cert_reqs='CERT_REQUIRED',
)
r = http.request('GET', URL)
print(r.data.decode('utf-8'))
$ python check.py
207
AWS Command Line Interface Guía del usuario
Configuración dAWS CLIVersión 1 para
aplicar una versión mínima de TLS 1.2
Sin embargo, aunque la instalación de Python se establezca de forma predeterminada en TLS v1.2 o
posterior, es posible que Python renegocie a una versión anterior a TLS v1.2 si el servidor no admite
TLS v1.2 o posterior. Para comprobar que Python no renegocia automáticamente a versiones anteriores,
reinicie el servidor de prueba con lo siguiente.
Si está utilizando una versión anterior de OpenSSL, es posible que la opción -no_tls_3 no esté
disponible. Si este es el caso, elimine la opción, porque la versión de OpenSSL que está utilizando no
admite TLS v1.3. A continuación, vuelva a ejecutar el script de Python.
$ python check.py
Si su instalación de Python no renegocia correctamente las versiones anteriores a TLS 1.2, debería recibir
un error de SSL.
Si puede establecer una conexión, debe volver a compilar OpenSSL y Python para deshabilitar la
negociación de protocolos anteriores a TLS v1.2.
#!/usr/bin/env bash
set -e
OPENSSL_VERSION="1.1.1d"
OPENSSL_PREFIX="/opt/openssl-with-min-tls1_2"
PYTHON_VERSION="3.8.1"
PYTHON_PREFIX="/opt/python-with-min-tls1_2"
curl -O "https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz"
tar -xzf "openssl-$OPENSSL_VERSION.tar.gz"
cd openssl-$OPENSSL_VERSION
./config --prefix=$OPENSSL_PREFIX no-ssl3 no-tls1 no-tls1_1 no-shared
make > /dev/null
sudo make install_sw > /dev/null
cd /tmp
curl -O "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz"
tar -xzf "Python-$PYTHON_VERSION.tgz"
cd Python-$PYTHON_VERSION
./configure --prefix=$PYTHON_PREFIX --with-openssl=$OPENSSL_PREFIX --disable-shared > /dev/
null
make > /dev/null
sudo make install > /dev/null
208
AWS Command Line Interface Guía del usuario
Configuración dAWS CLIVersión 2 para
aplicar una versión mínima de TLS 1.2
Se compila una versión de Python que tiene un OpenSSL enlazado estáticamente que no negocia
automáticamente a nada anterior a TLS 1.2. Esto también instala OpenSSL en el directorio /opt/
openssl-with-min-tls1_2 directorio e instala Python en el directorio /opt/python-with-min-
tls1_2. Después de ejecutar este script, confirme la instalación de la nueva versión de Python.
$ /opt/python-with-min-tls1_2/bin/python3 --version
$ Python 3.8.1
Para confirmar que esta nueva versión de Python no negocia a una versión anterior de TLS 1.2, vuelva a
ejecutar los pasos de Determinación de los protocolos admitidos actualmente (p. 207) usando la versión
de Python recién instalada (es decir, /opt/python-with-min-tls1_2/bin/python3).
209
AWS Command Line Interface Guía del usuario
General: Asegúrese de que está ejecutando
una versión reciente de laAWS CLI.
La forma de actualizar la versión de la AWS CLI depende de cómo la instalara originalmente. Por ejemplo,
si instaló la AWS CLI utilizando pip, ejecute pip install --upgrade, tal y como se describe en
Instalación y desinstalación de laAWS CLIVersión 1 con pip (p. 32).
Si ha utilizado uno de los instaladores del paquete, debe eliminar la instalación existente y descargar e
instalar la última versión del instalador que corresponda a su sistema operativo.
General: Usar--debugopción.
Una de las primeras cosas que debe hacer cuando aparece un error en la AWS CLI que usted no es
capaz de reconocer inmediatamente o cuando se generan resultados inesperados es obtener más detalles
sobre el error. Para ello, ejecute el comando de nuevo e incluya la opción --debug al final de la línea de
comandos. De esta forma, la AWS CLI registrará información detallada sobre cada paso que se realiza
para procesar el comando, enviar la solicitud a los servidores de AWS, recibir la respuesta y procesar la
respuesta en la salida que aparece. Los detalles de la salida pueden ayudarlo a determinar en qué paso se
produce el error y en qué contexto, lo que puede proporcionar pistas sobre lo que lo ha ocasionado.
Puede enviar el resultado a un archivo de texto para revisarlo posteriormente o enviarlo a AWS Support
cuando se le solicite.
210
AWS Command Line Interface Guía del usuario
General: Usar--debugopción.
{
"Path": "/",
"GroupName": "MyTestGroup",
"GroupId": "AGPA0123456789EXAMPLE",
"Arn": "arn:aws:iam::123456789012:group/MyTestGroup",
"CreateDate": "2019-08-12T19:34:04Z"
}
]
}
Cuando se incluye la opción --debug, se obtienen los siguientes detalles (entre otras cosas):
• Búsqueda de credenciales
• Análisis de los parámetros proporcionados
• Creación de la solicitud enviada a los servidores de AWS
• El contenido de la solicitud enviada a AWS
• El contenido de la respuesta sin procesar
• La salida con formato
211
AWS Command Line Interface Guía del usuario
General: Usar--debugopción.
212
AWS Command Line Interface Guía del usuario
General: Usar--debugopción.
content-type:application/x-www-form-urlencoded; charset=utf-8
host:iam.amazonaws.com
x-amz-date:20190812T193618Z
content-type;host;x-amz-date
5f776d91EXAMPLE9b8cb5eb5d6d4a787a33ae41c8cd6eEXAMPLEca69080e1e1f
2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - StringToSign:
AWS4-HMAC-SHA256
20190812T193618Z
20190812/us-east-1/iam/aws4_request
ab7e367eEXAMPLE2769f178ea509978cf8bfa054874b3EXAMPLE8d043fab6cc9
2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - Signature:
d85a0EXAMPLEb40164f2f539cdc76d4f294fe822EXAMPLE18ad1ddf58a1a3ce7
2019-08-12 12:36:18,344 - MainThread - botocore.endpoint - DEBUG - Sending http request:
<AWSPreparedRequest stream_output=False, method=POST, url=https://iam.amazonaws.com/,
headers={'Content-Type': b'application/x-www-form-urlencoded; charset=utf-8',
'User-Agent': b'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64
botocore/1.12.205', 'X-Amz-Date': b'20190812T193618Z', 'Authorization': b'AWS4-HMAC-
SHA256 Credential=AKIA01234567890EXAMPLE-east-1/iam/aws4_request, SignedHeaders=content-
type;host;x-amz-date, Signature=d85a07692aceb401EXAMPLEa1b18ad1ddf58a1a3ce7EXAMPLE',
'Content-Length': '36'}>
2019-08-12 12:36:18,344 - MainThread - urllib3.util.retry - DEBUG - Converted retries
value: False -> Retry(total=False, connect=None, read=None, redirect=0, status=None)
2019-08-12 12:36:18,344 - MainThread - urllib3.connectionpool - DEBUG - Starting new HTTPS
connection (1): iam.amazonaws.com:443
2019-08-12 12:36:18,664 - MainThread - urllib3.connectionpool - DEBUG - https://
iam.amazonaws.com:443 "POST / HTTP/1.1" 200 570
2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response headers: {'x-
amzn-RequestId': '74c11606-bd38-11e9-9c82-559da0adb349', 'Content-Type': 'text/xml',
'Content-Length': '570', 'Date': 'Mon, 12 Aug 2019 19:36:18 GMT'}
2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response body:
b'<ListGroupsResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">\n
<ListGroupsResult>\n <IsTruncated>false</IsTruncated>\n <Groups>\n
<member>\n <Path>/</Path>\n <GroupName>MyTestGroup</GroupName>
\n <Arn>arn:aws:iam::123456789012:group/MyTestGroup</Arn>\n
213
AWS Command Line Interface Guía del usuario
Al ejecutar aws, aparece el error "command
not found" (comando no encontrado)
<GroupId>AGPA1234567890EXAMPLE</GroupId>\n <CreateDate>2019-08-12T19:34:04Z</
CreateDate>\n </member>\n </Groups>\n </ListGroupsResult>\n <ResponseMetadata>\n
<RequestId>74c11606-bd38-11e9-9c82-559da0adb349</RequestId>\n </ResponseMetadata>\n</
ListGroupsResponse>\n'
2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event needs-
retry.iam.ListGroups: calling handler <botocore.retryhandler.RetryHandler object at
0x7fdf16e9a780>
2019-08-12 12:36:18,665 - MainThread - botocore.retryhandler - DEBUG - No retry needed.
2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event after-
call.iam.ListGroups: calling handler <function json_decode_policies at 0x7fdf189b1d90>
{
"Groups": [
{
"Path": "/",
"GroupName": "MyTestGroup",
"GroupId": "AGPA123456789012EXAMPLE",
"Arn": "arn:aws:iam::123456789012:group/MyTestGroup",
"CreateDate": "2019-08-12T19:34:04Z"
}
]
}
Si utiliza pip para instalar la AWS CLI, es posible que tenga que añadir la carpeta que contiene el
programa de aws a la variable de entorno PATH del sistema operativo o cambiar el modo para hacerla
ejecutable.
Es posible que tenga que añadir el ejecutable aws a la variable de entorno PATH del sistema operativo.
Siga los pasos que se indican en el procedimiento correspondiente:
• Windows – Añada laAWS CLIVersión 1 ejecutable a la ruta de la línea de comandos (p. 43)
• macOS: Añada laAWS CLIVersión 1 ejecutable en la ruta de la línea de comandos de macOS (p. 40)
• Linux: Añada laAWS CLIVersión 1 ejecutable a la ruta de la línea de comandos (p. 34)
214
AWS Command Line Interface Guía del usuario
Causa posible: Su identidad de IAM no
tiene permiso para realizar la operación
Para añadir permisos de ejecución al usuario, ejecute el siguiente comando sustituyendo ~ /.local/
bin/aws por la ruta que tiene el programa en el equipo.
$ chmod +x ~/.local/bin/aws
La mayoría de los comandos llaman a una única acción que tiene un nombre que coincide con el nombre
del comando. Sin embargo, los comandos personalizados como aws s3 sync llamar a múltiples API.
Mediante la --debug opción puede ver a qué API llama un comando.
Si sabe con seguridad que el usuario o rol tiene los permisos adecuados asignados por la política,
compruebe que el comando de la AWS CLI utiliza las credenciales que espera. Consulte la siguiente
sección sobre credenciales (p. 215) para verificar que las credenciales que utiliza la AWS CLI son las
adecuadas.
Para obtener más información acerca de la asignación de permisos a usuarios y roles de IAM,
consulteInformación general sobre la administración del acceso: Permisos y políticasen laGuía del usuario
de IAM.
En el siguiente ejemplo se muestra cómo comprobar las credenciales utilizadas para el perfil
predeterminado.
En el siguiente ejemplo se muestra cómo comprobar las credenciales de un perfil con nombre.
215
AWS Command Line Interface Guía del usuario
Causa posible: El reloj del equipo no está sincronizado
$ date
Si el reloj del sistema no es correcto en unos minutos, utilice ntpd para sincronizarlo.
En Windows, utilice las opciones de fecha y hora del Panel de control para configurar el reloj del sistema.
$ date
Si el reloj del sistema no es correcto en unos minutos, utilice ntpd para sincronizarlo.
216
AWS Command Line Interface Guía del usuario
Causa posible: Su sistema operativo está
manejando malAWSClaves secretas que
contienen determinados caracteres especiales.
En Windows, utilice las opciones de fecha y hora del Panel de control para configurar el reloj del sistema.
Si procesa las claves de acceso y las claves secretas utilizando otras herramientas o scripts, como
herramientas que compilan el archivo de credenciales en una nueva instancia cuando se crea, esas
herramientas y scripts podrían tratar los caracteres especiales de forma distinta, lo que hace que se
transformen en algo que AWS ya no reconoce.
La solución sencilla consiste en volver a generar la clave secreta para obtener una que no incluya el
carácter especial.
Resources
Para obtener ayuda adicional con suAWS CLI, visite elAWS CLIComunidadenGitHub.
217
AWS Command Line Interface Guía del usuario
Variable de entorno de codificación de archivos
Temas
• AWS CLILa versión 2 ahora usa la variable de entorno para establecer la codificación de archivos de
texto (p. 218)
• AWS CLILa versión 2 ahora pasa los parámetros binarios como cadenas codificadas en base64 de
forma predeterminada (p. 219)
• AWS CLILa versión 2 mejora el control de las propiedades y etiquetas de los archivos de Amazon S3
al realizar copias multiparte (p. 219)
• AWS CLILa versión 2 ya no recupera automáticamentehttp://orhttps://Las URL de los
parámetros (p. 220)
• AWS CLIutiliza un programa de paginación para todos los resultados de forma
predeterminada. (p. 220)
• AWS CLILa versión 2 ahora devuelve todos los valores de salida de marca temporal en formato ISO
8601 (p. 221)
• AWS CLIversión 2 mejora el manejo deAWS CloudFormationimplementaciones de que no producen
cambios (p. 222)
• AWS CLIla versión 2 utiliza claves de Amazon S3 de forma más coherente (p. 222)
• AWS CLIla versión 2 utiliza el punto final regional de Amazon S3 correcto paraus-
east-1Región (p. 222)
• AWS CLIutiliza la versión 2AWS STSPor defecto, los puntos de enlace (p. 222)
• AWS CLIreemplaza la versión 2ecr get-loginporecr get-login-password (p. 223)
• AWS CLIEl soporte de la versión 2 para complementos está cambiando (p. 223)
• AWS CLILa versión 2 ya no admite alias «ocultos» (p. 223)
AWS_CLI_FILE_ENCODING=UTF-8
Para obtener más información, consulte Variables de entorno para configurar la AWS CLI (p. 71) .
218
AWS Command Line Interface Guía del usuario
Pasar parámetros binarios
De forma predeterminada, laAWS CLILa versión 2 ahora pasa todos los parámetros binarios de entrada
y salida como cadenas codificadas en base64. Un parámetro que requiere una entrada binaria tiene su
tipo especificado como blob (objeto binario grande) en la documentación. Para pasar datos binarios como
un archivo a unAWS CLI, el parámetroAWS CLILa versión 2 permite especificar el archivo utilizando los
prefijos siguientes:
• file://— ElAWS CLItrata el contenido del archivo como texto codificado en base64. Por ejemplo: --
some-param file://~/my/path/file-with-base64.txt
• fileb://— ElAWS CLItrata el contenido del archivo como binario no codificado. Por ejemplo: --
some-param fileb://~/my/path/file-with-raw-binary.bin
Puede decirle a laAWS CLIPara volver a la versión 2AWS CLIversión 1 especificando la siguiente línea en
el~/.aws/configpara un perfil.
cli_binary_format=raw-in-base64-out
También puede revertir la configuración de un comando individual, lo que invalida la configuración del perfil
activo, mediante la inclusión del parámetro --cli-binary-format raw-in-base64-out en la línea
de comandos.
De forma predeterminada, laAWS CLIversión 2 en els3El espacio de nombres de que realizan copias
multiparte ahora transfieren todas las etiquetas y el siguiente conjunto de propiedades del origen a la copia
de destino:content-type,content-language,content-encoding,content-disposition,cache-
control,expires, ymetadata.
Esto puede generar un error adicionalAWSAlgunas llamadas de la API al punto de enlace de Amazon S3
que no se habrían realizado si hubiera utilizadoAWS CLIVersión 1. Estos pueden incluir: HeadObject,
GetObjectTagging y PutObjectTagging.
219
AWS Command Line Interface Guía del usuario
Las páginas web no se recuperan
automáticamente para los parámetros
• predeterminada: valor predeterminado. Especifica que la copia incluye todas las etiquetas asociadas
al objeto de origen y las propiedades abarcadas por el parámetro --metadata-directive utilizado
para copias no multiparte: content-type, content-language, content-encoding, content-
disposition, cache-control, expires y metadata.
• Directiva de metadatos— Especifica que la copia incluye sólo las propiedades abarcadas por la
propiedad--metadata-directiveutilizado para copias no multiparte. No copia ninguna etiqueta.
• ninguno: especifica que la copia no incluye ninguna de las propiedades del objeto de origen.
Si realmente desea recuperar y usar el contenido de la URL de una web como parámetro, puede hacer lo
siguiente en la versión 2:
En el ejemplo anterior, el parámetro -o indica a curl que guarde el archivo en la carpeta actual con
el mismo nombre que el archivo de origen. El segundo comando recupera el contenido de ese archivo
descargado y lo pasa como valor de --policy-document.
220
AWS Command Line Interface Guía del usuario
Todos los valores de fecha/hora en formato ISO 8601
está ejecutando scripts. Para ello, puede configurar laAWS CLIPara usar un programa de paginación
diferente o ninguno en absoluto. Para ello, configure la variable de entorno AWS_PAGER o la configuración
de la cli_pager del archivo ~/.aws/config y especifique el comando que desea utilizar. Puede
especificar un comando que esté en la ruta de búsqueda o especificar la ruta de acceso completa y el
nombre de archivo de cualquier comando disponible en el equipo.
Puede deshabilitar todo el uso de un programa de paginación externo si establece la variable en una
cadena vacía como se muestra en el siguiente ejemplo.
En el ejemplo siguiente se muestra la configuración para el perfil default, pero se puede agregar la
configuración a cualquier perfil del archivo ~/.aws/config.
[default]
cli_pager=
Linux o macOS:
$ export AWS_PAGER=""
Windows:
Las marcas temporales con formato ISO 8601 se parecen a los siguientes ejemplos. El primer ejemplo
muestra la hora en hora universal coordinada (UTC) mediante la inclusión de una Z después de la hora. La
fecha y la hora están separadas por una T.
2019-10-31T22:21:41Z
Para especificar una zona horaria diferente, en lugar de Z, especifique + o - y el número de horas que
esta zona horaria está por delante o por detrás de UTC mediante un valor de dos dígitos. En el siguiente
ejemplo, se muestra la misma hora que en el ejemplo anterior, pero ajustada a la hora estándar del
Pacífico, que va ocho horas por detrás de UTC:
2019-10-31T14:21:41-08
Para ver las marcas temporales en el formato devuelto por la respuesta de la API HTTP, agregue la
siguiente línea al perfil .aws/config.
221
AWS Command Line Interface Guía del usuario
Control mejorado de la implementación
de AWS CloudFormation
cli_timestamp_format = wire
Debido a que este es el escenario de caso común, elAWS CLIla versión 2 ahora tiene por defecto devolver
un código de salida exitoso de0Cuando la implementación no ha producido ningún cambio y la operación
devuelve un conjunto de cambios vacío.
EnAWS CLIEn la versión 2, para volver al comportamiento original, debe añadir la marca--fail-on-
empty-changeset.
De forma predeterminada,AWS CLIenvía la versión 1AWS STSsolicitudes a laAWS STS. Puede controlar
este comportamiento predeterminado en V1 con la configuración sts_regional_endpoints (p. 60).
222
AWS Command Line Interface Guía del usuario
Dar de baja ecr get-login
El comando aws ecr get-login-password reduce el riesgo de exponer sus credenciales en la lista de
procesos, historial de shell u otros archivos de registro. También mejora la compatibilidad con el comando
docker login, permitiendo una mejor automatización.
Laaws ecr get-login-passwordEl comando está disponible en laAWS CLIversión 1.17.10 y posterior,
y elAWS CLIVersión 2. Los mayoresaws ecr get-loginEl comando todavía está disponible en laAWS
CLIpara retrocompatibilidad.
El comando aws ecr get-login-password le permite reemplazar el siguiente código que recupera
una contraseña.
Para reducir el riesgo de exponer la contraseña al historial de shell o a los registros, utilice el siguiente
comando de ejemplo. En este ejemplo, la contraseña se canaliza directamente al comando docker
login, donde se asigna al parámetro password mediante la opción --password-stdin.
[plugins]
cli_legacy_plugin_path = <path-to-plugins>/python3.7/site-packages
<plugin-name> = <plugin-module>
223
AWS Command Line Interface Guía del usuario
Sin alias ocultos
En la tabla siguiente, la primera columna muestra el servicio, el comando y el parámetro que funcionan
en todas las versiones, incluida laAWS CLIVersión 2. La segunda columna muestra el alias que ya no
funciona en laAWS CLIVersión 2
storagegateway.describe-tape-archives.tape-arns tape-ar-ns
storagegateway.describe-vtl-devices.vtl-device-arns vtl-device-ar-ns
storagegateway.describe-cached-iscsi-volumes.volume-arns volume-ar-ns
storagegateway.describe-stored-iscsi-volumes.volume-arns volume-ar-ns
route53domains.view-billing.start-time start
deploy.create-deployment-group.ec2-tag-set ec-2-tag-set
deploy.list-application-revisions.s3-bucket s-3-bucket
deploy.list-application-revisions.s3-key-prefix s-3-key-prefix
deploy.update-deployment-group.ec2-tag-set ec-2-tag-set
iam.enable-mfa-device.authentication-code1 authentication-code-1
iam.enable-mfa-device.authentication-code2 authentication-code-2
iam.resync-mfa-device.authentication-code1 authentication-code-1
iam.resync-mfa-device.authentication-code2 authentication-code-2
importexport.get-shipping-label.street1 street-1
importexport.get-shipping-label.street2 street-2
importexport.get-shipping-label.street3 street-3
lambda.publish-version.code-sha256 code-sha-256
lightsail.import-key-pair.public-key-base64 public-key-base-64
opsworks.register-volume.ec2-volume-id ec-2-volume-id
224
AWS Command Line Interface Guía del usuario
Historial de la documentación de la
guía del usuario de AWS CLI
En la siguiente tabla se describen los cambios importantes de laAWS Command Line InterfaceGuía
del usuario, a partir de enero de 2019. Para obtener notificaciones sobre las actualizaciones de esta
documentación, puede suscribirse a la fuente RSS.
Anuncio de obsolescencia para Python 2.7 fue obsolescente por 29 de enero de 2021
Python 2.7, 3.4 y 3.5 la Python Software Foundation el
1 de enero de 2020. En el futuro,
los clientes que utilizan elAWS
CLIversión 1 debería pasar a
usar Python 3, con un mínimo de
Python 3.6. El soporte de Python
2.7 está obsoleto para las nuevas
versiones delAWS CLIversión 1
a partir del 19/7/2021. Python 3.4
y 3.5 está obsoleto a partir del
1/2/2021.
225
AWS Command Line Interface Guía del usuario
y el comportamiento de los
reintentos en elAWS CLI.
AWS Command Line Interface LaAWS CLILa versión 2 está 10 de febrero de 2020
(AWS CLILanzamiento de la disponible en general y es la
versión 2 versión recomendada para los
clientes.
226
AWS Command Line Interface Guía del usuario
227