每次我想获得一个新的 aws 会话时,我都必须打开我的授权设备以获取令牌代码,这样我就可以在我的脚本中使用它并生成 AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
我想知道,是否存在一种自动生成令牌代码的方法。
这将对我的流程自动化有很大帮助。
谢谢您的帮助。
每次我想获得一个新的 aws 会话时,我都必须打开我的授权设备以获取令牌代码,这样我就可以在我的脚本中使用它并生成 AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
我想知道,是否存在一种自动生成令牌代码的方法。
这将对我的流程自动化有很大帮助。
谢谢您的帮助。
这取决于您的令牌生成器。
没有什么能阻止您使用特定库生成令牌,例如 [1]。
但是,这并不安全,因为您将机密存储在您的机器上。
因此,您必须决定在使用自动 MFA 生成时如何最小化攻击向量。
我在做什么:每当我必须执行代码生成时,我都会使用 yubikey [2] 并将其插入我的 USB 端口。Yubico 提供了 ykman [3],一个特殊的二进制文件,你可以下载并在你的 shell 脚本中执行。与 AWS cli 结合使用非常容易。
流程概述:
shell script --> call ykman oath code <secret-id> --> yubico generates code and passes it back via USB --> pass the code to AWS CLI commands in you shell script
注意:有一个特殊选项ykman oath add --touch <secret-id>
需要触摸 YubiKey 来生成代码。这进一步减少了攻击向量,因为需要一个简单的人工操作来开始代码生成。
[1] https://www.npmjs.com/package/otplib
[2] https://www.yubico.com/products/yubikey-hardware/
[3] https://support.yubico.com/support/解决方案/文章/15000012643-yubikey-manager-cli-ykman-user-manual#ykman_oath_code8cqziu