是否可以在不从控制台生成访问密钥的情况下获取AWS访问密钥?
我希望能够创建一个脚本,该脚本将要求用户/密码/(TOTP)并生成临时访问密钥,以便执行多个任务。目标是能够将一个程序提供给dev,这样他们甚至不必每次都处理访问密钥,因为他们知道自己的密码。
我到处寻找我相信的地方,但找不到任何关于它是否可行的资源。
谢谢!
发布于 2018-12-17 20:00:09
是的,这是可行的。
可以通过命令行界面(CLI)和API实现。
CLI命令为:
aws iam create-access-key接口调用为:
CreateAccessKey有关详细信息,请参阅下面的文档参考。这是一本很好的读物,涵盖了最佳实践主题,如使用API或CLI轮换密钥。另一个好的最佳实践是在日常使用中使用根账户的,而不是。
使用CLI的更新密钥轮换示例:
在从CLI尝试此操作之前,请先创建一个具有管理员权限的新IAM用户。
CLI第1步-将配置为使用管理员密钥:
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.那么这是一个信号,你尝试从一个帐户,你的令牌是旧的,无效的,或没有正确的特权。
https://stackoverflow.com/questions/53731172
复制相似问题