node.js - 下载源代码时 AWS Codebuild 失败。消息 : Access Denied

标签 node.js amazon-web-services amazon-elastic-beanstalk aws-codepipeline aws-codebuild

我创建了一个使用 docker image for node8 的 CodeBuild 项目.此 CodeBuild 项目的目的是进行单元测试。它从 CodeCommit 获取一个输入项目。并在 buildspec.yml 中运行测试命令。

这是我的(简单的)buildspec 文件:

version: 0.2

phases:
  install:
    commands:
     - echo "install phase started"
     - npm install
     - echo "install phase ended"
  pre_build: 
    commands:
     - echo "pre_build aka test phase started"
     - echo "mocha unit test"
     - npm test
     - echo "mocha unit test ended"
  build:
    commands:
     - echo "build phase started"
     - echo "build complete"

构建在 DOWNLOAD_SOURCE 阶段失败,原因如下:

PHASE - DOWNLOAD_SOURCE

Start time 2 minutes ago

End time 2 minutes ago

Message Access Denied

构建日志中唯一的日志如下

[Container] 2018/01/12 11:30:22 Waiting for agent ping

[Container] 2018/01/12 11:30:22 Waiting for DOWNLOAD_SOURCE

提前致谢。

CodeBuild 政策的屏幕截图。

enter image description here

最佳答案

我找到了解决办法。这是我的权限问题。我添加了这个以使其工作。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Resource": [
            "arn:aws:logs:eu-west-1:723698621383:log-group:/aws/codebuild/project",
            "arn:aws:logs:eu-west-1:723698621383:log-group:/aws/codebuild/project:*"
        ],
        "Action": [
            "logs:CreateLogGroup",
            "logs:CreateLogStream",
            "logs:PutLogEvents"
        ]
    },
    {
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::codepipeline-eu-west-1-*"
        ],
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion"
        ]
    },
    {
        "Effect": "Allow",
        "Action": [
            "ssm:GetParameters"
        ],
        "Resource": "arn:aws:ssm:eu-west-1:723698621383:parameter/CodeBuild/*"
    }
  ]
}

关于node.js - 下载源代码时 AWS Codebuild 失败。消息 : Access Denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48225778/

相关文章:

node.js - Nodejs + Express + swig : how do I check the request before rendering?

python - 从 AWS EB Linux 实例运行 manage.py

amazon-web-services - 增加 aws beanstalk 中 .net core api 的请求大小限制

node.js - AWS 弹性 beanstalk 上的 spawn casperjs ENOENT 错误

node.js - 如何使用 VSCode 通过 Firestore 触发器调试 Google Cloud Functions?

node.js - 如何保护 Node js API 的安全

node.js - 开发期间的 npm peerDependencies

mysql - 无法从 php 连接到 AWS RDS MySQL

amazon-web-services - 为什么我无法 ssh 进入此 EC2 实例?

amazon-web-services - AWS Elastic Beanstalk 无法访问 AWS MSK