принятие роли, проблемы доверительных отношений

Я использую 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

нет. 1 говорит, что сервис должен называться codedeploy.amazonaws.com.

№2 говорит, что сервис должен быть "ec2.amazonaws.com"

проблема сохраняется и после перезагрузки.

любезно помогите мне в этом вопросе.


person Paramjeet Singh    schedule 10.07.2017    source источник
comment
Где вы получаете AssumeRoleUnauthorizedAccess сообщение об ошибке? Если роль используется CodeDeploy, ваши доверительные отношения верны. Однако сообщение об ошибке предполагает, что он используется EC2. Неправильно ли назначена роль и инстансу EC2?   -  person John Rotenstein    schedule 10.07.2017
comment
Я прикрепил эту роль к экземпляру, в котором должен быть развернут код, и использовал ту же роль с codedeploy. я думаю, это ошибка, не так ли ???   -  person Paramjeet Singh    schedule 11.07.2017
comment
да. Вы должны предоставить CodeDeploy одну роль, которая позволит ему получить доступ к определенным сервисам AWS. Это отличается от роли, которую вы дадите своим экземплярам EC2, которая предназначена для предоставления разрешений приложениям, запущенным на экземплярах EC2.   -  person John Rotenstein    schedule 11.07.2017


Ответы (1)


Похоже, что у вас есть роль, предназначенная для использования AWS CodeDeploy, но вы назначили ее инстансу Amazon EC2. На это указывает сообщение об ошибке: EC2 не может взять на себя роль Ec2Codedeploy

Из Создайте роль службы для AWS CodeDeploy:

Сервисной роли, которую вы создаете для AWS CodeDeploy, должны быть предоставлены разрешения на доступ к экземплярам, ​​в которых вы будете развертывать приложения. Эти разрешения позволяют AWS CodeDeploy читать теги, примененные к экземплярам, ​​или имена групп Auto Scaling, связанные с экземплярами.

Разрешения, которые вы добавляете для роли службы, определяют операции, которые AWS CodeDeploy может выполнять при доступе к вашим инстансам Amazon EC2 и группам Auto Scaling. Чтобы добавить эти разрешения, прикрепите предоставленную AWS политику AWSCodeDeployRole к роли службы.

Это отдельная роль, которую вы назначаете своим инстансам Amazon EC2, которая генерирует учетные данные, которые могут использоваться приложениями в инстансах.

Это должны быть две отдельные роли с разными назначенными разрешениями.

person John Rotenstein    schedule 11.07.2017
comment
спасибо @John за вашу помощь .. это решило проблему для меня. большое спасибо. - person Paramjeet Singh; 11.07.2017