我正在使用codedeploy将我的代码部署到服务器。 3天后它工作正常。但突然之间虽然以前工作得很好但却没有承担起任何角色。
error : {
"Code" : "AssumeRoleUnauthorizedAccess",
"Message" : "EC2 cannot assume the role Ec2Codedeploy"}
" LASTUPDATED" :" 2017-07-10T06:49:59Z"
我的信任关系是:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "codedeploy.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
文档之间也存在矛盾。
http://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html
没有。 1表示服务应该是" codedeploy.amazonaws.com"
no.2表示服务应该是" ec2.amazonaws.com"
问题在重新启动后仍然存在。
在这个问题上帮助我。
答案 0 :(得分:0)
您似乎有一个专为AWS CodeDeploy使用的角色,但您已将其分配给Amazon EC2实例。这由错误消息指示: EC2不能承担角色Ec2Codedeploy
来自Create a Service Role for AWS CodeDeploy:
您为AWS CodeDeploy创建的服务角色必须被授予访问您将部署应用程序的实例的权限。这些权限使AWS CodeDeploy能够读取应用于实例的标签或与实例关联的Auto Scaling组名称。
您添加到服务角色的权限在访问Amazon EC2实例和Auto Scaling组时指定AWS CodeDeploy可以执行的操作。要添加这些权限,请将AWS提供的策略
AWSCodeDeployRole
附加到服务角色。
这与您将分配给 Amazon EC2实例的角色分开,后者会生成可供实例上的应用程序使用的凭据。
这些应该是两个具有不同分配权限的独立角色。