【问题标题】:assuming role, trust relationship issues担任角色,信任关系问题
【发布时间】:2017-07-11 17:23:38
【问题描述】:

我正在使用 codedeploy 将我的代码部署到服务器。 3天前它工作正常。但突然它无法发挥作用,虽然它以前工作正常。

error : {
"Code" : "AssumeRoleUnauthorizedAccess",
"Message" : "EC2 cannot assume the role Ec2Codedeploy"}

“上次更新时间”:“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

没有。 1 表示服务应该是“codedeploy.amazonaws.com”

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

重启后问题仍然存在。

请在这个问题上帮助我。

【问题讨论】:

  • 您在哪里收到AssumeRoleUnauthorizedAccess 错误消息?如果 CodeDeploy 正在使用该角色,那么您的信任关系是正确的。但是,错误消息表明 EC2 正在使用它。角色是否也错误地分配给了 EC2 实例?
  • 我已将此角色附加到要部署代码的实例上,并使用与 codedeploy 相同的角色。我想这是错误不是吗???
  • 是的。您需要为 CodeDeploy 赋予一个角色,以允许其访问某些 AWS 服务。这与您将赋予 EC2 实例的角色不同,这样做是为了向在 EC2 实例上运行的应用程序授予权限。

标签: amazon-ec2 aws-code-deploy


【解决方案1】:

您似乎拥有一个专为 AWS CodeDeploy 使用的角色,但您已将其分配给 Amazon EC2 实例。这由错误消息指示:EC2 无法承担角色 Ec2Codedeploy

来自Create a Service Role for AWS CodeDeploy

您为 AWS CodeDeploy 创建的服务角色必须被授予访问您将部署应用程序的实例的权限。这些权限使 AWS CodeDeploy 能够读取应用于实例的标签或与实例关联的 Auto Scaling 组名称。

您添加到服务角色的权限指定 AWS CodeDeploy 在访问您的 Amazon EC2 实例和 Auto Scaling 组时可以执行的操作。要添加这些权限,请将 AWS 提供的策略 AWSCodeDeployRole 附加到服务角色。

这与您将分配给您的Amazon EC2 实例 的角色不同,后者会生成可供实例上的应用程序使用的凭证。

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

【讨论】:

  • 感谢@John 的帮助。这为我解决了这个问题。非常感谢。
猜你喜欢
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-16
  • 2020-11-08
  • 2018-09-10
  • 2021-03-09
  • 1970-01-01
相关资源
最近更新 更多