小编One*_*erd的帖子

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

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

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

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ecr:GetAuthorizationToken",
            "ecr:BatchCheckLayerAvailability",
            "ecr:GetDownloadUrlForLayer",
            "ecr:BatchGetImage",
            "logs:CreateLogStream",
            "logs:PutLogEvents"
        ],
        "Resource": "*"
    }
]}
Run Code Online (Sandbox Code Playgroud)

以及以下信任关系

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "codebuild.amazonaws.com",
          "ecs-tasks.amazonaws.com",
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

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

尽管如此,更新信任关系以包括:

"Service": [
      "codebuild.amazonaws.com",
      "ecs-tasks.amazonaws.com",
      "ec2.amazonaws.com",
      "codedeploy.amazonaws.com",
      "codepipeline.amazonaws.com",
      "s3.amazonaws.com"
    ]
Run Code Online (Sandbox Code Playgroud)

我仍然收到错误: 在此处输入图片说明

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

amazon-ecs amazon-iam aws-code-deploy aws-codepipeline

6
推荐指数
1
解决办法
4847
查看次数

您如何引用 aws 机密管理器机密“值”,并将其应用于代码构建 buildspec 命令?

我能够在构建规范中检索秘密(给定https://aws.amazon.com/about-aws/whats-new/2019/11/aws-codebuild-adds-support-for-aws-secrets-manager/ ):

secrets-manager:
secret_key_param: secret_name
Run Code Online (Sandbox Code Playgroud)

但是,这样做时,它会给出:

{"secret_key":"secret_value"}
Run Code Online (Sandbox Code Playgroud)

我只需要“ secret_value ”,在代码构建构建规范中是否有一种简单的方法可以做到这一点?

注意:我已经看到:如何将命令的输出分配给代码构建中的变量,它没有回答问题!它只是引用 cli 命令来检索值(作为整个 json 转储的一部分)

最终目标是能够:

phases:
  pre_build:
    commands:
      - echo Logging in to DockerHub...
      - docker login --username XXXX --password "secret_value"
Run Code Online (Sandbox Code Playgroud)

TIA

docker aws-codebuild aws-secrets-manager

3
推荐指数
1
解决办法
1783
查看次数