Ton*_* Xu 10 amazon-s3 amazon-ec2 amazon-web-services aws-cli
我正在尝试设置Amazon AWS EC2实例以与s3通讯。基本命令是
aws configure
Run Code Online (Sandbox Code Playgroud)
然后按照提示输入
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
Run Code Online (Sandbox Code Playgroud)
但是,我真正想要的是拥有命令
aws configure
Run Code Online (Sandbox Code Playgroud)
自动,无需交互,即没有提示并等待输入
我知道有档案
~.aws/credentials
~.aws/config
Run Code Online (Sandbox Code Playgroud)
我把那四个键=值对放在那里。和“凭据”文件看起来像
[default]
aws_secret_access_key = my-40-digit-secret-key
aws_access_key_id = my-20-digit-id
Run Code Online (Sandbox Code Playgroud)
而“ config”文件看起来像
[default]
region = us-east-1
output = text
Run Code Online (Sandbox Code Playgroud)
但是,使用〜/ .aws /中的文件,我进入〜/ .aws /,并在命令行中键入并输入命令
aws configure
Run Code Online (Sandbox Code Playgroud)
我仍然有提示要我的提示
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
Run Code Online (Sandbox Code Playgroud)
如果我没有在提示符下输入有效值,则将无法连接到s3,例如通过命令
aws s3 ls s3://mybucket
Run Code Online (Sandbox Code Playgroud)
我将帮助转向了Amazon AWS文档页面。在此页面上,它提到了此选项
“命令行选项–区域,输出格式和配置文件可以指定为命令选项,以覆盖默认设置。”
作为AWS配置的第一个选项
https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html
但是,它没有提到如何使用命令行选项。我尝试过这样的事情
aws configure --region us-east-1
Run Code Online (Sandbox Code Playgroud)
但我仍然
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
Run Code Online (Sandbox Code Playgroud)
就像我没有选择“ --region us-east-1”一样
如果我尝试
aws configure --aws_access_key_id my-20-digit-id --aws_secret_access_key my-40-digit-secret-key --region us-east-1
Run Code Online (Sandbox Code Playgroud)
我明白了
usage: aws [options] <command> <subcommand> [parameters]
aws: error: argument subcommand: Invalid choice, valid choices are:
Run Code Online (Sandbox Code Playgroud)
我如何运行命令
aws configure
Run Code Online (Sandbox Code Playgroud)
自动,无提示,无交互。
请帮忙!TIA
编辑并回复helloV,因为主帖子中的格式比注释清晰得多。我尝试了提到的命令helloV,但出现错误
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:
Run Code Online (Sandbox Code Playgroud)
不过谢谢 继续进行“ aws configure set”,在已经将连接设置为s3的另一个EC2实例上,输入
aws configure set region us-east-1
Run Code Online (Sandbox Code Playgroud)
运行并返回命令提示符“>”
aws configure set aws_access_key_id my-20-digit-id
Run Code Online (Sandbox Code Playgroud)
运行并返回命令提示符“>”
aws configure set aws_secret_access_key my-40-digit-secret-key
Run Code Online (Sandbox Code Playgroud)
运行并返回命令提示符“>”
aws configure
Run Code Online (Sandbox Code Playgroud)
运行,但带有提示并等待交互
AWS Access Key ID [****************ABCD]:
AWS Secret Access Key [****************1234]:
Default region name [us-east-1]:
Default output format [text]:
Run Code Online (Sandbox Code Playgroud)
helloV:这是我的屏幕,看起来像
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://
Run Code Online (Sandbox Code Playgroud)
我懂了
Unable to locate credentials. You can configure credentials by running "aws configure".
Run Code Online (Sandbox Code Playgroud)
之后,我跑步
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
Run Code Online (Sandbox Code Playgroud)
看起来它没有检查〜/ .aws / credentials文件,但是〜/ .aws / config文件在列表中。
pal*_*res 12
这些命令对我有用。如果这对你不起作用。尝试第一次使用交互模式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"
Ton*_* Xu 10
我终于明白了。使用导出,例如
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
Run Code Online (Sandbox Code Playgroud)
然后跑
aws s3 ls s3://
Run Code Online (Sandbox Code Playgroud)
会工作。不要像别人提到的那样运行“ aws configure”。
谢谢你们。
你很好地描述了该文件。为什么不直接创建一个文件并将其放在正确的位置呢?我刚试过...和跑步一模一样aws configure
更新:您提到您想要从 EC2 实例访问 S3。在这种情况下,您根本不应该使用凭据。您应该改为使用角色
| 归档时间: |
|
| 查看次数: |
4038 次 |
| 最近记录: |