首页 > 解决方案 > 从 Windows 中的文件中清除键和值对

问题描述

我正在使用 AWS CLI。我使用 AWS STS 服务担任角色。使用后,我获得临时 AWS 凭证,如 AWS 访问密钥 ID、aws 秘密访问密钥和 aws 会话令牌。我创建了一个 bat 文件来运行 AWS STS 承担角色命令并自动更改 aws 凭证文件。它工作正常。现在使用临时凭据后,我想恢复到原始凭据文件。我可以通过运行 aws configure 命令来更改 aws 访问密钥对。但我想自动清除 aws_session_token 。在linux中,我使用以下命令完成了它。

 sed '/^aws_session_token/s/=.*$/=/' credentials
 sed -i -e '/aws_session_token/d' credentials 

在这里,我首先清除 aws_session_token 的值,然后清除单词“aws_session_token”。我无法弄清楚如何在 Windows 中执行此操作。那么是否有任何 sed 替代方法来删除特定键的值然后键本身?任何帮助表示赞赏。

标签: windowsamazon-web-servicessedcmdaws-cli

解决方案


当您运行 AWS CLI 命令时,AWS CLI 会按特定顺序查找凭证 — 首先在环境变量中,然后在配置文件中。因此,在您将临时凭证放入环境变量后,AWS CLI 默认使用这些凭证。(如果您在命令中指定配置文件参数,AWS CLI 会跳过环境变量。相反,AWS CLI 会在配置文件中查找,这样您就可以在需要时覆盖环境变量中的凭证。)

以下示例显示了如何为临时安全凭证设置环境变量,然后调用 AWS CLI 命令。由于 AWS CLI 命令中不包含配置文件参数,因此 AWS CLI 首先在环境变量中查找凭证,因此使用临时凭证。

SET AWS_ACCESS_KEY_ID=YourAccessKEYID
SET AWS_SECRET_ACCESS_KEY=YourSecretKeyAccess
SET AWS_SESSION_TOKEN=YourToken

推荐阅读