启动实例的 OpsWorks 角色
Posted
技术标签:
【中文标题】启动实例的 OpsWorks 角色【英文标题】:OpsWorks Role to Start Instance 【发布时间】:2016-02-22 09:24:52 【问题描述】:在 OpsWorks 层(OpsWorks 堆栈的一部分)中创建实例后,我无法启动 OpsWorks 实例。尝试启动 24/7 实例后出现的错误如下:
启动实例 java-app1 时出错 OpsWorks 未能获得代表您启动实例所需的凭据。请等待一分钟后再试。如果此错误仍然存在,请检查堆栈 IAM 角色的权限。
该错误表明我没有为我的堆栈的 IAM 角色正确设置权限。我创建了一个 OpsWorks 堆栈,其中包含对角色 ARN 的引用,该角色 ARN 为角色权限设置了 AWSOpsWorksFullAccess 和 AWSOpsWorksRole 策略。我原以为这两种策略中的一种就足够了。
我可以在该堆栈中创建一个 OpsWorks 层,也可以创建一个 OpsWorks 实例。创建的实例使用 Stack 的 DefaultInstanceProfileArn。就我而言,该 ARN 引用了包含以下策略的角色: AmazonEC2FullAccess AWSOpsWorksFullAccess AWSOpsWorks 角色 AmazonS3FullAccess
我知道我应用的策略非常广泛,但此时我只是想启动一个 OpsWorks 实例。需要应用什么策略才能使 OpsWorks 拥有在我的 Stack 中启动实例的正确权限?
【问题讨论】:
【参考方案1】:这有点晚了:-)
我最近遇到了这个问题。 附加的角色是: AmazonEC2FullAccess AWSOpsWorksFullAccess AWSOpsWorksCMServiceRole
这让我可以创建、启动、停止和删除。
【讨论】:
【参考方案2】:这让我最困惑。路过这个坐骑会带来很多景点。
打开堆栈设置,您将找到您当前的 IAM ROLE
按照以下文档附加内联策略。
https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-servicerole.html
如果您创建自定义服务角色,则必须确保它授予 AWS OpsWorks Stacks 管理您的堆栈所需的所有权限。以下 JSON 示例是标准服务角色的策略声明;自定义服务角色应在其策略声明中至少包含以下权限。
"Version": "2008-10-17",
"Statement": [
"Action": [
"ec2:*",
"iam:PassRole",
"cloudwatch:GetMetricStatistics",
"cloudwatch:DescribeAlarms",
"ecs:*",
"elasticloadbalancing:*",
"rds:*"
],
"Effect": "Allow",
"Resource": [
"*"
],
"Condition":
"StringEquals":
"iam:PassedToService": "ec2.amazonaws.com"
]
【讨论】:
以上是关于启动实例的 OpsWorks 角色的主要内容,如果未能解决你的问题,请参考以下文章
Opsworks 实例无法启动:状态:start_failed:没有这样的食谱:apt
从 EC2 上的自定义 AMI 创建 AWS Opsworks 实例时未启动