Tiempo estimado de lectura:

La documentación de AWS sobre la configuración de su interfaz de línea de comandos indica que puedes mantener varios ficheros de configuración, y que basta dar de alta una variable de entorno AWS_CONFIG_FILE que especifique la ruta al fichero de configuración actual. De esa forma, según el valor de esa variable de entorno, las herramientas de terminal de AWS accederán a una u otra cuenta.

En mi caso lo que he hecho para organizarme es mantener un directorio con los ficheros de configuración en la ruta:

~/aws/cfg/

Cada fichero de configuración residente en ese directorio tiene un nombre descriptivo de la cuenta a la que está asociado.

Lo siguiente que he hecho es utilizar mis amadas funciones de BASH para crear una que modifique el valor de la variable de entorno AWS_CONFIG_FILE en función del nombre del fichero pasado como parámetro.

# .bash_profile
function aws.use {
    export AWS_CONFIG_FILE="~/aws/cfg/$1"
}

De esta forma, si tengo un fichero de configuración para la cuenta account1 en ~/aws/cfg/account1, podría configurar el cliente AWS con el siguiente comando:

$ aws.use account1

El fichero de configuración básico sería algo como esto:

[default]
region = eu-west-1
aws_access_key_id = AKIA1234561234567890
aws_secret_access_key = aaaaabbbbbcccccdddddeeeeefffffGGG+123456

Para mostrar las máquinas de EC2 configuradas para la cuenta account1 bastaría con escribir:

$ aws ec2 describe-instances

Fácil, rápido y elegante.

Blog Logo

Carlos Escribano

Desarrollador Web desde hace 10 años. Me gusta resolver problemas de forma ingeniosa. Saber más.

Artículos de desarrollo web en español

nettoys.es

Volver al Inicio