有人可以告诉我如何使用单行程序自动化bash中的aws配置吗?
示例:
$ 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
应用程序:我想在Docker入口点中自动执行此操作!
答案 0 :(得分:25)
如果您运行aws configure set help
,您将看到可以在命令行上单独提供设置,它们将被写入相关凭据或配置文件。例如:
aws configure set aws_access_key_id AKIAI44QH8DHBEXAMPLE
您也可以交互式运行此修改默认凭据:
aws configure
或者以交互方式运行它以创建/修改命名的配置文件:
aws configure --profile qa
答案 1 :(得分:5)
如果要自动化,则应使用文件而不是CLI。您的CLI仅写入这些文件。
➜ 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 =
答案 2 :(得分:4)
对于那些倾向于使用bash的人来说,以下方法效果很好并且可以保护你的脚本不受保密。此外,它还可以一次性将您的输入保存到命名的配置文件。
printf "%s\n%s\nus-east-1\njson" "$KEY_ID" "$SECRET_KEY" | aws configure --profile my-profile
答案 3 :(得分:1)
function myname() {
let uni = "missing variable";
let name = "ABFFD";
let str = "ベトナムの首都であるハノイです";
console.log("私は" + name + "です." + uni + "の学生です.");
}
注意:设置区域是可选的(如果没有区域,也不要用空字符串设置,否则会出错);以及用户配置文件,如果您不设置它,它将进入默认设置。
使用机密,然后使用关联的环境变量:
aws configure set aws_access_key_id "AKIAI44QH8DHBEXAMPLE" --profile user2 && aws configure set --profile user2 && aws_secret_access_key "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY" --profile user2 && aws configure set region "us-east-1" --profile user2 && aws configure set output "text" --profile user2
aws configure set aws_access_key_id "$AWS_ACCESS_KEY_ID" --profile user2 && aws configure set --profile user2 && aws_secret_access_key "$AWS_ACCESS_KEY_SECRET" --profile user2 && aws configure set region "$AWS_REGION" --profile user2 && aws configure set output "text" --profile user2
以获取命令行选项。答案 4 :(得分:0)
根据Tom在jarmod的回答中提出的建议,“在配置文件中配置密钥,然后用docker容器共享”。
我发现稍微有些混乱,因为我刚开始使用Docker和awscli
另外,我相信大多数最终都会遇到这个问题的人也会同样尝试使用Docker和awscli
。
所以你想要做的是,一步一步:
创建一个包含
的credentials
文件
[default]
aws_access_key_id = default_access_key
aws_secret_access_key = default_secret_key
您使用Dockerfile中的一行复制到~/.aws/credentials
,如
COPY credentials /root/.aws/credentials
和包含
的config
文件
[default]
region = us-west-2
output = table
您使用Dockerfile中的一行复制到~/.aws/config
,如
COPY config /root/.aws/config
参考:
aws configure set help
答案 5 :(得分:0)
我认为这是一行的答案
aws configure set aws_access_key_id $YOUR_ACCESS_KEY_ID; aws configure set aws_secret_access_key $YOUR_SECRET_ACCESS_KEY; aws configure set default.region $YOUR_AWS_DEFAULT_REGION
答案 6 :(得分:0)
aws configure set aws_access_key_id "$AWS_ACCESS_KEY_ID" --profile profile_name_here && aws configure set aws_secret_access_key "$AWS_SECRET_ACCESS_KEY" --profile profile_name_here && aws configure set region "$AWS_REGION" --profile profile_name_here && aws configure set output "json" --profile profile_name_here
profile_name_here
是要保存到 aws 配置的 aws 配置文件名称。将其替换为您自己的。
访问密钥
aws configure set aws_access_key_id "$AWS_ACCESS_KEY_ID" --profile profile_name_here
秘密访问密钥
aws configure set aws_secret_access_key "$AWS_SECRET_ACCESS_KEY" --profile profile_name_here
地区
aws configure set region "$AWS_REGION" --profile profile_name_here
输出
aws configure set output "json" --profile profile_name_here
此处指定的值为 json,但您可以从 aws docs 的支持输出格式列表中替换它。
$AWS_ACCESS_KEY_ID、$AWS_SECRET_ACCESS_KEY 和 $AWS_REGION 是您的 AWS 凭证 文件或 中的变量>环境变量(如果您使用的是 CI)。您也可以使用常规字符串值替换它们,但这并不安全。