【问题标题】:The provided role does not have sufficient permissions to access CodeDeploy提供的角色没有足够的权限访问 CodeDeploy
【发布时间】:2020-03-30 07:47:15
【问题描述】:

我正在实施 CodePipeline;使用 GitHub、CodeBuild 和 Amazon ECS(蓝/绿)。我使用的角色,是Pipeline生成的角色:ecsTaskExecutionRole

生成时,它配备以下政策AmazonECSTaskExecutionRolePolicy(包含以下操作):

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ecr:GetAuthorizationToken",
            "ecr:BatchCheckLayerAvailability",
            "ecr:GetDownloadUrlForLayer",
            "ecr:BatchGetImage",
            "logs:CreateLogStream",
            "logs:PutLogEvents"
        ],
        "Resource": "*"
    }
]}

以及以下信任关系

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "codebuild.amazonaws.com",
          "ecs-tasks.amazonaws.com",
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

鉴于该角色是自动生成的,人们会假设它要么拥有所有必要的权限(使管道运行),要么 AWS 将有一个关于分配哪些权限的指南(分配给策略或信任关系配置)。

尽管更新了信任关系以包括:

"Service": [
      "codebuild.amazonaws.com",
      "ecs-tasks.amazonaws.com",
      "ec2.amazonaws.com",
      "codedeploy.amazonaws.com",
      "codepipeline.amazonaws.com",
      "s3.amazonaws.com"
    ]

我仍然收到错误:

我在过去 1-2 年的多个博客/论坛中看到了这个问题;令人难以置信的是,这仍然没有正确记录为 AWS 教程(或相关博客)的一部分。

【问题讨论】:

    标签: amazon-iam amazon-ecs aws-code-deploy aws-codepipeline


    【解决方案1】:

    “提供的角色没有足够的权限访问 CodeDeploy”

    此错误表明 CodePipeline 角色缺少“codedeploy:”相关权限。

    可以补充一下吗

    codedeploy:*
    

    到角色再试一次。

    如果您不想添加所有 CodeDeploy 权限,则需要调查 Cloudtrail 中的“AccessDenied”调用并仅允许这些调用。通常这些是必需的:

    {
          "Action": [
            "codedeploy:CreateDeployment",
            "codedeploy:GetApplicationRevision",
            "codedeploy:GetApplication",
            "codedeploy:GetDeployment",
            "codedeploy:GetDeploymentConfig",
            "codedeploy:RegisterApplicationRevision"
          ],
          "Resource": "*",
          "Effect": "Allow"
        },
    

    此处记录了默认的“CodePipeline 服务角色策略”:

    [1] 管理 CodePipeline 服务角色 - 查看默认 CodePipeline 服务角色策略 - https://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-custom-role.html#view-default-service-role-policy

    【讨论】:

    • 谢谢,我解决了这个问题,然后发现了其他几个问题。努力回答的绿色勾号,非常感谢。
    猜你喜欢
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 2018-02-19
    • 2016-06-05
    • 1970-01-01
    相关资源
    最近更新 更多