web-dev-qa-db-fra.com

AWS Configure Bash One Liner

Quelqu'un peut-il me dire comment automatiser la configuration aws en bash avec un liner?

Exemple:

$ aws configure --profile user2
AWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLE
AWS Secret Access Key [None]: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
Default region name [None]: us-east-1
Default output format [None]: text

Application: je veux automatiser cela dans un Docker Entrypoint!

24
blacklabelops

Si vous exécutez aws configure set help vous verrez que vous pouvez fournir des paramètres individuellement sur la ligne de commande et ils seront écrits dans les informations d'identification ou le fichier de configuration appropriés. Par exemple:

aws configure set aws_access_key_id AKIAI44QH8DHBEXAMPLE

Vous pouvez également l'exécuter de manière interactive pour modifier les informations d'identification par défaut:

aws configure

Ou exécutez-le de manière interactive pour créer/modifier un profil nommé:

aws configure --profile qa

29
jarmod

Pour ceux qui sont enclins à utiliser bash, ce qui suit fonctionne très bien et garde les secrets de vos scripts. En outre, il enregistrera également votre entrée dans un profil nommé en une seule fois.

printf "%s\n%s\nus-east-1\njson" "$KEY_ID" "$SECRET_KEY" | aws configure --profile my-profile
7
killthrush

Si vous souhaitez automatiser, vous devez utiliser des fichiers plutôt que CLI. Votre CLI écrit uniquement ces fichiers.

➜ cat ~/.aws/config
[profile_1]
output = json
region = eu-west-1
[profile_2]
output = json
region = eu-west-1

➜ cat ~/.aws/credentials
[profile_1]
aws_access_key_id =
aws_secret_access_key =
[profile_2]
aws_access_key_id =
aws_secret_access_key = 
6
Thomas L.

En s'appuyant sur la suggestion de Tom dans la réponse de Jarmod, "configurer vos clés dans un fichier de configuration que vous partagez ensuite avec votre conteneur Docker à la place".

J'ai trouvé cela un peu déroutant car je suis nouveau dans l'utilisation de Docker et awscli.
De plus, je pense que la plupart de ceux qui se retrouvent à cette question essaient de la même manière d'utiliser Docker et awscli ensemble.

Donc, ce que vous voulez faire, étape par étape, c'est:

Créez un fichier credentials contenant
[default] aws_access_key_id = default_access_key aws_secret_access_key = default_secret_key
que vous copiez dans ~/.aws/credentials, en utilisant une ligne dans Dockerfile comme
COPY credentials /root/.aws/credentials

et un fichier config contenant
[default] region = us-west-2 output = table
que vous copiez dans ~/.aws/config, en utilisant une ligne dans Dockerfile comme
COPY config /root/.aws/config

Référence:
aws configure set help

0
cryanbhu