【问题标题】:How to configure AWS CLI in an elastic-beanstalk instance如何在 elastic-beanstalk 实例中配置 AWS CLI
【发布时间】:2016-05-10 22:14:03
【问题描述】:

我使用eb init 创建了一个elastic-beanstalk 配置,并使用eb create 命令部署了它。当我 ssh 到实例时,我可以看到我已经安装了 AWS CLI。

我要做的是使用我的访问密钥 ID 和 AWS 秘密访问密钥配置 CLI,使用 eb createinit 命令,这样我就不必每次都通过 SSH 连接到环境并进行手动配置。

有没有办法将 CLI 与环境部署一起配置(在首次启动时)?我尝试传递环境变量,但这似乎没有任何作用。

谢谢

【问题讨论】:

标签: amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

TL;DR:出于对善良的热爱,请使用实例配置文件!以后你会感谢自己的。

向导:https://medium.com/@rmharrison/the-case-for-credentialing-via-instance-profiles-in-aws-elasticbeanstalk-applications-60d458efa0cd

【讨论】:

    【解决方案2】:

    如果您希望使用安装在作为 beanstalk 环境一部分的 EC2 实例上的 AWS CLI,我建议您根据实例配置文件凭证而不是复制/粘贴 access_key_id 和 secret_access_key。

    实例配置文件基本上是 IAM 角色,允许您在启动时将 IAM 角色传递给实例,并且实例具有自动可用于 EC2 实例的凭证。除了 AWS CLI 等标准 AWS 工具外,AWS 开发工具包会在可用时自动使用实例配置文件凭证。您可以找到 AWS CLI 用于查找记录在 here 的凭证的优先顺序。

    您可以使用命名空间“aws:autoscaling:launchconfiguration”和选项名称“IamInstanceProfile”的选项设置将实例配置文件传递到您的环境。使用控制台和 eb cli 可以更轻松地完成此操作。 由于您已经在使用 eb cli 创建环境,因此您已经在传递实例配置文件以启动环境。通常,实例配置文件名为“aws-elasticbeanstalk-ec2-role”(默认名称),但也可以命名为其他名称。如果您无法找到适合您环境的实例配置文件,请告诉我。

    此外,您需要更新与必要策略关联的 IAM 角色,以便为角色提供对您要使用 AWS CLI 调用的服务的访问权限。 This 页面记录了您的角色运行弹性 beanstalk 所需的最低权限。如果需要,您可以使用 IAM 控制台添加更多权限。

    最后,如果您仍想直接传递 ACCESS_KEY 和 SECRET_KEY,则可以使用 AWS 管理控制台中定义的环境变量或通过 ebextensions 执行此操作,然后使用 ebextensions 运行命令,将这些环境变量复制到 ~/.aws/凭证,这是 AWS CLI 查找的凭证来源之一,如 here 所示。如果您在编写 ebextensions 时需要帮助,请告诉我。 ebextensions 的文档在 herehere 可用。

    我强烈建议使用实例配置文件。

    【讨论】:

      猜你喜欢
      • 2018-04-20
      • 2016-04-20
      • 2020-06-26
      • 2015-10-19
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 2020-11-07
      • 2017-11-20
      相关资源
      最近更新 更多