我试图嵌入访问和秘密密钥以及法律。例如。
aws ec2 describe-instances --aws-access-key <access_key> --aws-secret-key <secret_key>
还尝试分别使用-o 和-w 选项进行访问和加密密钥。上面写着: 未知选项 aws-access-key 和 aws-secret-key
您应该将凭据存储到 ~/. aws/config 文件(或. aws/凭据)
更多信息如何设置它 http://docs.aws.amazon.com/cli/latest/reference/configure/index.html
另外,作为替代方法,您可以创建 IAM 角色和某些策略,并将其设置为 ec2实例,您将在其中使用 awscli,这样就不需要在其中设置任何凭据
这是使用 IAM 角色的最佳方式和更安全的方法。在那里,您可以设置此实例的特定权限,以及它在您的帐户中可以访问的内容。
根据您使用的 awscli 版本,您可以通过几种方式使用描述实例。
比如这个:
ec2din -O your-key -W your-secret-key --region your-region
当你使用 pip 安装或者像 ubuntu deb 包一样从 pkg 安装 awscli 时,也会有很大的不同。
Ec2din 是 < strong > ec2-description-instance 的简短命令
这里有更多的例子: Ec2-描述-实例
问候。
您可以通过 envars 在命令行上提供密钥:
AWS_ACCESS_KEY_ID=ABCD AWS_SECRET_ACCESS_KEY=EF1234 aws ec2 describe-instances
参见 http://docs.aws.amazon.com/cli/latest/topic/config-vars.html#credentials
编辑:@wisbucky 注意到这可能会在你的指挥历史中留下秘密。至少我认为在 bash 中解决这个问题的一种方法是在命令前面加上一个空格,命令不应该传播到 bash 历史记录。
您还可以使用 awsconfigure:
$ aws configure AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxxxxxxxx AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxx
总结 Aws Doc,有几种方法可以将凭据传递到命令行。请注意,没有命令行选项可以直接传递密钥和机密密钥。而是使用“提供者链”。
在 bash 脚本中,我经常使用环境变量。为了增加一点点安全性,我提供了一个包含变量的文件,而不是将它们放在脚本中。有了命名档案,就更简单了。
供应商链是:
您可以使用以下方法设置凭据:
aws configure set aws_access_key_id <yourAccessKey> aws configure set aws_secret_access_key <yourSecretKey>
核实你的证件:
aws sts get-caller-identity
关于 set 命令的更多信息:
aws configure set help
一般情况是:
aws <command> help aws <command> <subcommand> help
注意: 在覆盖您的凭证之前,您可能需要保留一份副本:
aws configure get aws_access_key_id aws configure get aws_secret_access_key
通过 CLI 访问法律,
aws configure
我不得不进入亚马逊的多个账户,我的解决方案是:
~/.aws/config:
~/.aws/config
[default] aws_access_key_id=xxxx aws_secret_access_key=xxxxxx region=sa-east-1 output=text [profile prof1] region=us-east-1 output=text aws_access_key_id=yyy aws_secret_access_key=yyyyy [profile prof2] region=us-east-1 output=text aws_access_key_id=wwwwww aws_secret_access_key=wwwww
... 然后当调用 AWS CLI 时,我传递参数 --profile如下:
--profile
/usr/local/bin/aws ec2 describe-security-groups --group-ids sg-xxxx --profile prof2
另一种方法是使用带 aws 配置的 echo作为一行程序:
echo
echo -ne '%s\n%s\n%s\n%s\n' <access_key> <security_key> <region> <output> | aws configure
我认为以前的答案是正确的,这里是我的回应,这更像 Danh 的回应,但也包括多个选项和 Windows 也
export AWS_ACCESS_KEY_ID=your_key; export AWS_SECRET_ACCESS_KEY=your_secret; aws s3 ls
AWS_ACCESS_KEY_ID=your_key AWS_SECRET_ACCESS_KEY=your_secret aws s3 ls
$Env:AWS_ACCESS_KEY_ID="your_key" $Env:AWS_SECRET_ACCESS_KEY="your_secret" aws s3 ls
完全归功于伟大的 AWS 文档
使用访问键,不建议使用 id,因为它将存储在配置文件中。更好的方法是创建一个 IAM 角色并提供所需的访问权限。