J'essaie de configurer une instance Amazon AWS EC2 pour parler à s3. La commande de base est
aws configure
puis suivez l'invite pour entrer
AWS Access Key ID [None]: my-20-digit-id
AWS Secret Access Key [None]: my-40-digit-secret-key
Default region name [None]: us-east-1
Default output format [None]: text
Cependant, ce que je veux vraiment, c'est avoir la commande
aws configure
automatiquement sans interaction, c'est-à-dire sans invite et attendre la saisie
Je sais qu'il y a des fichiers sur
~.aws/credentials
~.aws/config
où je mets ces 4 paires clé = valeur. Et le fichier "pouvoirs" ressemble à
[default]
aws_secret_access_key = my-40-digit-secret-key
aws_access_key_id = my-20-digit-id
tandis que le fichier "config" ressemble à
[default]
region = us-east-1
output = text
Cependant, avec ces fichiers à ~/.aws /, j'entre dans ~/.aws /, et sur la ligne de commande, je tape et entre la commande
aws configure
J'ai toujours eu l'invite de me demander
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
Si je n'entre pas de valeurs valides à l'invite, je ne pourrai pas me connecter à s3, par exemple via la commande
aws s3 ls s3://mybucket
J'ai tourné l'aide vers les pages de documentation d'Amazon aws. Sur cette page, il mentionne cette option
"Options de ligne de commande - la région, le format de sortie et le profil peuvent être spécifiés comme options de commande pour remplacer les paramètres par défaut."
comme première option pour aws configure
https://docs.aws.Amazon.com/cli/latest/userguide/cli-chap-getting-started.html
Cependant, il n'a pas mentionné comment utiliser les options de ligne de commande. J'ai essayé quelque chose comme ça
aws configure --region us-east-1
mais j'ai encore
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
exactement comme je n'ai pas l'option de "--region us-east-1"
Si j'essaye de
aws configure --aws_access_key_id my-20-digit-id --aws_secret_access_key my-40-digit-secret-key --region us-east-1
J'ai compris
usage: aws [options] <command> <subcommand> [parameters]
aws: error: argument subcommand: Invalid choice, valid choices are:
Comment puis-je exécuter la commande
aws configure
automatiquement, aucune invite, aucune interaction.
Aidez-moi! TIA
Modifier et répondre à helloV, car le format dans le post principal est beaucoup plus clair que le commentaire. J'ai essayé la commande helloV mentionnée, mais j'ai eu une erreur
aws configure set aws_access_key_id my-20-digit-id
usage: aws [options] <command> <subcommand> [parameters]
aws: error: argument subcommand: Invalid choice, valid choices are:
Merci quand même. Continuez sur "aws configure set" Sur une autre instance EC2 où j'ai déjà défini la connexion sur s3, j'entre
aws configure set region us-east-1
s'exécute et revient à l'invite de commande ">"
aws configure set aws_access_key_id my-20-digit-id
s'exécute et revient à l'invite de commande ">"
aws configure set aws_secret_access_key my-40-digit-secret-key
s'exécute et revient à l'invite de commande ">"
aws configure
s'exécute mais est livré avec des invites et attend l'interaction
AWS Access Key ID [****************ABCD]:
AWS Secret Access Key [****************1234]:
Default region name [us-east-1]:
Default output format [text]:
bonjourV: voici mon écran ressemble
ubuntu@ip-11111:~/.aws$ more config
[default]
region = us-east-1
output = text
ubuntu@ip-11111:~/.aws$ more credentials
[default]
aws_secret_access_key = my-40-digit-secret-key
aws_access_key_id = my-20-digit-id
ubuntu@ip-11111:~/.aws$ aws s3 ls s3://
J'ai compris
Unable to locate credentials. You can configure credentials by running "aws configure".
Après cela, je cours
aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key <not set> None None
secret_key <not set> None None
region us-east-1 config_file ~/.aws/config
Il semble qu'il ne vérifie pas le fichier ~/.aws/credentials, mais le fichier ~/.aws/config figure dans la liste.
J'ai finalement compris. Utilisez l'exportation telle que
export AWS_ACCESS_KEY_ID=my-20-digit-id
export AWS_SECRET_ACCESS_KEY=my-40-digit-secret-key
export AWS_DEFAULT_REGION=us-east-1
puis exécutez
aws s3 ls s3://
travaillerait. N'exécutez pas "aws configure" comme d'autres l'ont mentionné.
Merci à tous.
Vous décrivez très bien le dossier. Pourquoi ne pas simplement créer un fichier et le placer au bon endroit? Je viens d'essayer ... c'est exactement la même chose que d'exécuter aws configure
UPDATE : Vous mentionnez que vous souhaitez accéder à S3 à partir de l'instance EC2. Dans ce cas, vous ne devriez pas du tout utiliser les informations d'identification. Vous devez utiliser Rôles à la place
Ces commandes ont fonctionné pour moi. Si cela ne fonctionne pas pour vous. Essayez de faire la première fois en utilisant le mode d'interaction aws configure
aws --profile default configure set aws_access_key_id "my-20-digit-id"
aws --profile default configure set aws_secret_access_key "my-40-digit-secret-key"