如何在elastic-beanstalk实例中配置AWS CLI

时间:2016-02-02 07:55:30

标签: amazon-web-services elastic-beanstalk

我使用eb init创建了一个弹性beanstalk配置,并使用eb create命令对其进行了部署。当我ssh到实例时,我可以看到我安装了AWS CLI。

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

有没有办法配置CLI和环境部署(首次启动时)?我尝试传递环境变量,但似乎没有做任何事情。

由于

2 个答案:

答案 0 :(得分:6)

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

实例配置文件基本上是IAM角色,允许您在启动时将IAM角色传递给实例,并且实例具有自动可用于EC2实例的凭据。除AWS CLI等标准AWS工具外,AWS SDK还会在可用时自动使用实例配置文件凭据。您可以找到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

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

答案 1 :(得分:1)

TL; DR:为了善良,请使用实例配置文件!你以后会感谢自己。

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