我正在尝试在新的 AWS 账户中创建我的第一个 Elastic Beanstalk 环境(不是我的第一个 EB,我已经启动了 100 个这样的东西)。
过去,Elastic Beanstalk 向导用于创建角色(封装在 EC 实例配置文件中)供您选择作为“EC2 实例配置文件”。在过去的几个月中,我发现情况发生了变化,现在您必须通过 IAM 控制台手动创建该角色。执行此操作的说明非常清楚,可以在https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-instanceprofile.html找到。我过去曾成功地遵循这些说明。
但是,今天当我尝试同样的事情时,我创建的角色似乎并未真正包装为 EC2 实例配置文件。我可以创建角色和所有权限,“受信任实体”的 JSON 策略看起来与我的所有其他 AWS 账户完全相同,但该角色不会作为选项出现在 EB 向导中。值得注意的是,“摘要”部分或创建的角色缺少“实例配置文件 ARN”。
这是已创建角色的屏幕截图,显示“受信任的实体”选项卡:
要么是我遗漏了一些非常明显的东西,要么是将 IAM 角色与 AWS 中的 EC2 实例配置文件相关联的任何内容都已损坏。
我从未从任何人那里得到关于为什么没有在此 AWS 账户中生成实例配置文件的明确答案。不过,我确实通过 AWS CLI 创建实例配置文件(没有通过控制台管理实例配置文件的工具)设法克服了这个问题。如果有人可以向我解释这一点,我一定会将您的答案标记为正确。
有两个命令可供使用,一个用于创建实例配置文件:
aws iam create-instance-profile --instance-profile-name eb-instance-profile
然后另一个将此实例配置文件包装在角色(我已经创建的)周围:
aws iam add-role-to-instance-profile --instance-profile-name eb-instance-profile --role-name ec-beanstalk-instance-role
在这个过程中,我第一次发现了 CloudShell,这让我不用再为环境变量而烦恼。