sma*_*art 6 amazon-ec2 amazon-web-services aws-code-deploy
我正在尝试使用我的GitHub设置CodeDeploy,但我发现了一些问题.
我已经在政策service role文档中提到过了AWSCodeDeployRole.
在我的代码部署应用程序创建过程中,我遇到了一个问题:
Cannot assume role provided.
Run Code Online (Sandbox Code Playgroud)
正如我所看到的,我的角色AWSCodeDeployRole拥有很多自动缩放权限,但我不希望这样:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "autoscaling:CompleteLifecycleAction",
        "autoscaling:DeleteLifecycleHook",
        "autoscaling:DescribeAutoScalingGroups",
        "autoscaling:DescribeLifecycleHooks",
        "autoscaling:PutLifecycleHook",
        "autoscaling:RecordLifecycleActionHeartbeat",
        "autoscaling:CreateAutoScalingGroup",
        "autoscaling:UpdateAutoScalingGroup",
        "autoscaling:EnableMetricsCollection",
        "autoscaling:DescribeAutoScalingGroups",
        "autoscaling:DescribePolicies",
        "autoscaling:DescribeScheduledActions",
        "autoscaling:DescribeNotificationConfigurations",
        "autoscaling:DescribeLifecycleHooks",
        "autoscaling:SuspendProcesses",
        "autoscaling:ResumeProcesses",
        "autoscaling:AttachLoadBalancers",
        "autoscaling:PutScalingPolicy",
        "autoscaling:PutScheduledUpdateGroupAction",
        "autoscaling:PutNotificationConfiguration",
        "autoscaling:PutLifecycleHook",
        "autoscaling:DescribeScalingActivities",
        "autoscaling:DeleteAutoScalingGroup",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceStatus",
        "ec2:TerminateInstances",
        "tag:GetTags",
        "tag:GetResources",
        "sns:Publish",
        "cloudwatch:DescribeAlarms",
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:DescribeInstanceHealth",
        "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
        "elasticloadbalancing:DeregisterInstancesFromLoadBalancer"
      ],
      "Resource": "*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)
在一些谷歌搜索期间,我发现CodeDeploy应用程序可能期望类似于:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "codedeploy.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试手动创建此策略时,它也会失败并显示错误:
This policy contains the following error: Has prohibited field Principal For more information about the IAM policy grammar, see AWS IAM Policies.
Run Code Online (Sandbox Code Playgroud)
那么,预期的服务角色是Code Deploy Application什么?
顺便说一句,代码部署正在我的EC2实例上运行.
那么,根据@迈克尔评论,我发现我的一些差异Trust relationships policy的Service role.
看起来默认AWSCodeDeployRole无法正确处理Code Deploy.
为了解决这个问题,我已经"Service": [
"ec2.amazonaws.com"]用"Service": [
"codedeploy.amazonaws.com"]
它的工作原理!
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2238 次  |  
        
|   最近记录:  |