是否可以在不从控制台生成密钥的情况下获取AWS访问密钥?
我希望能够创建一个脚本,该脚本将询问用户/密码/(TOTP)并生成临时访问密钥,以执行多个任务。 目标是能够给一个程序供开发人员使用,这样他们甚至不必每次都知道访问密码就可以处理访问密钥。
我所相信的地方无处不在,但是即使可行,也找不到任何资源。
谢谢!
答案 0 :(得分:0)
是的,这是可行的。
都可以通过命令行界面(CLI)和API进行。
CLI命令为:
aws iam create-access-key
API调用为:
CreateAccessKey
有关更多信息,请参见下面的文档参考。这是一本好书,涵盖了最佳实践主题,例如使用API或CLI旋转密钥。另一个最佳做法是不使用您的根帐户进行日常使用。
使用CLI更新密钥旋转示例:
在通过CLI尝试此操作之前-创建具有管理员权限的新IAM用户。
步骤1 -将CLI配置为使用管理员密钥:
aws configure
然后输入管理员的访问密钥ID和秘密访问密钥。
步骤2 -列出用户foo的键
aws iam list-access-keys --user-name foo
输出将类似于:
{
"AccessKeyMetadata": [
{
"UserName": "foo",
"AccessKeyId": "AKIAIY*****A7YBHCBEBQ",
"Status": "Active",
"CreateDate": "2018-11-10T14:02:56Z"
}
]
}
验证只有一个,因为一个用户最多可以拥有2个。如果他们已经拥有2个,则第3步将失败。
步骤3 -为用户foo创建新密钥
aws iam create-access-key --user-name foo
您将看到类似于以下的输出。这是您唯一一次看到新集的密钥,因此需要保留它。
{
"AccessKey": {
"UserName": "foo",
"AccessKeyId": "****GAGA*****WEFWEWE",
"Status": "Active",
"SecretAccessKey": "*****sEcReT*****Tasdasd",
"CreateDate": "2018-12-01T19:16:41Z"
}
}
新密钥已创建并处于活动状态。现在,您需要删除旧密钥才能完成旋转。我会把那一步留给你。
如果出现错误:
An error occurred (InvalidClientTokenId) when calling the ListAccessKeys operation: The security token included in the request is invalid.
然后这是一个迹象,表明您正在从您的令牌已过期,无效或没有正确权限的帐户尝试此操作。