gpt4 book ai didi

bash - 如何提示输入 MFA key 以生成和使用 AWS CLI 访问凭证?

转载 作者:行者123 更新时间:2023-12-02 17:20:33 27 4
gpt4 key购买 nike

我有几个调用 AWS CLI 命令的 Bash 脚本,这些脚本的权限已更改为需要 MFA,我希望能够在这些脚本中提示输入由我的 MFA 设备生成的代码,以便它们可以在必要的身份验证下运行.

但是似乎没有简单的内置方法可以做到这一点。我能找到的唯一文档涉及使用 aws sts get-session-token 的复杂过程。然后将每个值保存在配置中,然后不清楚如何使用。

要清楚我想要的是,当我运行一个包含需要 MFA 的 AWS CLI 命令的脚本时,我只是提示输入代码,以便提供它允许 AWS CLI 操作完成.像这样的东西:

#!/usr/bin/env bash

# (1) prompt for generated MFA code
# ???

# (2) use entered code to generate necessary credentials
aws sts get-session-token ... --token-code $ENTERED_VALUE

# (3) perform my AWS CLI commands requiring MFA
# ....

我不清楚如何在需要时提示它(这可能归结为不精通 bash)或如何使用 get-session-token 的输出.

有什么方法可以满足我的要求吗?


我已经 tried to trigger a prompt通过指定带有 mfa_serial 条目的 --profile;但这也不起作用。

最佳答案

好的,在与同事一起花更多时间研究这个脚本之后 - 我们已经想出了一个更简单的脚本。这会为您完成所有凭证文件,并且更容易阅读。它还允许您所有环境的新 token 都在同一个 creds 文件中。获取 MFA 的初始调用需要凭证文件中的默认帐户 key - 然后它会生成您的 MFA token 并将它们放回凭证文件中。

#!/usr/bin/env bash

function usage {
echo "Example: ${0} dev 123456 "
exit 2
}

if [ $# -lt 2 ]
then
usage
fi

MFA_SERIAL_NUMBER=$(aws iam list-mfa-devices --profile bh${1} --query 'MFADevices[].SerialNumber' --output text)

function set-keys {
aws configure set aws_access_key_id ${2} --profile=${1}
aws configure set aws_secret_access_key ${3} --profile=${1}
aws configure set aws_session_token ${4} --profile=${1}
}


case ${1} in
dev|qa|prod) set-keys ${1} $(aws sts get-session-token --profile bh${1} --serial-number ${MFA_SERIAL_NUMBER} --query 'Credentials.[AccessKeyId,SecretAccessKey,SessionToken]' --output text --token-code ${2});;
*) usage ;;
esac

关于bash - 如何提示输入 MFA key 以生成和使用 AWS CLI 访问凭证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43051993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com