【问题标题】:AWS how to use a credential just for one requestAWS如何将凭证仅用于一个请求
【发布时间】:2017-11-19 11:36:30
【问题描述】:

是否可以在每个请求中以类似的方式提供凭据

aws sns create-topic my_topic --ACCESS-KEY XXXX --SECRET-KEY XXXX

而不是在我拨打电话之前拨打aws configure

我知道凭证管理可以通过使用 --profile 来完成,就像 Using multiple profiles 一样,但这需要我保存凭证,而我不能这样做。我依靠用户向我提供密钥作为参数输入。有可能吗?

【问题讨论】:

    标签: amazon-web-services aws-cli


    【解决方案1】:

    您最好的一点是将 IAM 角色用于 Amazon ec2 实例。这样,您根本不需要担心凭据。他们的密钥也将定期轮换。

    http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

    【讨论】:

      【解决方案2】:

      还有另一种方法。而不是“导出”,只需运行以下命令:

      AWS_ACCESS_KEY_ID=AAAA AWS_SECRET_ACCESS_KEY=BBB aws ec2 describe-regions
      

      这将确保仅为命令设置凭据。

      【讨论】:

        【解决方案3】:

        一种选择是导出控制凭据的环境变量,然后调用所需的 CLI。以下在bash 中对我有用:

        $ export AWS_ACCESS_KEY_ID=AKIXXXXXXXXXXXXXXXX AWS_SECRET_ACCESS_KEY=YhTYxxxxxxxxxxxxxxVCSi; aws sns create-topic my_topic
        

        您可能还想看看:Configuration Settings and Precedence

        【讨论】:

        • 感谢您的链接。如果保存配置文件和设置环境是不可避免的,我将不得不寻找其他方法。
        【解决方案4】:

        我相信在调用 AWS CLI 之前,与您正在寻找的最接近的选项是 set the credentials as environment variables

        【讨论】:

        • 但是如果我设置环境变量,就会有很多用户的争用。看来我必须使用不同的用户帐户。
        • 你是如何调用这个 CLI 命令的?您应该能够设置特定于该调用的环境变量。
        • 基本上我试图用 AWS 不支持的语言包装 CLI api。我希望这个 API 能够在一个进程中处理多个用户,而每个用户都使用自己的凭据。此外,我无法保存用户的凭据并为他们每个人创建不同的配置文件。所以最好的(不一定是现实的)选择就是期望凭据作为输入参数。
        • 如果你使用任何语言执行 shell 命令,如上面的 helloV 所示,环境变量应该只为那一次调用设置。
        • 我不知道“单处理”在这种情况下的确切含义。您的语言应该在自己的进程中调用每个 shell 命令。在该进程中设置环境变量不应影响其他进程。
        猜你喜欢
        • 2021-10-30
        • 1970-01-01
        • 2013-07-04
        • 2023-04-07
        • 1970-01-01
        • 2018-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多