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!
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
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
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 =
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 commeCOPY 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 commeCOPY config /root/.aws/config
Référence:aws configure set help