承担角色,信任关系问题

时间:2017-07-10 11:45:15

标签: amazon-ec2 aws-code-deploy

我正在使用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"
}
]
}

文档之间也存在矛盾。

  1. http://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html

  2. http://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_iam-ec2.html#troubleshoot_iam-ec2_errors-info-doc

  3. 没有。 1表示服务应该是" codedeploy.amazonaws.com"

    no.2表示服务应该是" ec2.amazonaws.com"

    问题在重新启动后仍然存在。

    在这个问题上帮助我。

1 个答案:

答案 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实例的角色分开,后者会生成可供实例上的应用程序使用的凭据。

这些应该是两个具有不同分配权限的独立角色。