web-dev-qa-db-fra.com

AWS Codebuild échoue lors du téléchargement de la source. Message: Accès refusé

J'ai créé un projet CodeBuild qui utilise une image docker pour node8 . Le but de ce projet CodeBuild est de faire des tests unitaires. Il faut un artefact d'entrée de CodeCommit. Et dans le buildspec.yml, il exécute une commande de test.

Ceci est mon (simple) fichier 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"

La construction échoue à la phase DOWNLOAD_SOURCE avec les éléments suivants:

PHASE - DOWNLOAD_SOURCE 

Heure de début Il y a 2 minutes 

Heure de fin Il y a 2 minutes

Message Accès refusé

Les seuls journaux dans les journaux de construction sont les suivants 

[Conteneur] 2018/01/12 11:30:22 En attente de l'agent ping 

[Conteneur] 2018/01/12 11:30:22 En attente de DOWNLOAD_SOURCE 

Merci d'avance. 

Capture d'écran des stratégies CodeBuild. 

 enter image description here

6
Qais Abou Jaoudé

J'ai trouvé un correctif. C'était un problème avec mes permissions. J'ai ajouté ceci pour le faire fonctionner.

{
"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/*"
    }
]

}

4
Qais Abou Jaoudé

J'ai eu une erreur similaire et publierai mon correctif au cas où cela aiderait quelqu'un d'autre. J'utilisais CodePipeline et j'avais deux versions distinctes en cours. La construction n ° 1 achève sa construction et l'artefact de sortie correspondant à l'artefact d'entrée de la construction n ° 2. La construction n ° 2 échouait dans la phase DOWNLOAD_SOURCE avec l'erreur suivante:

AccessDenied: Access Denied status code: 403

Le problème était que dans mes spécifications de construction pour la construction n ° 1, les artefacts n'étaient pas définis. Après avoir appelé les fichiers/dossiers d'artefact dans la construction n ° 1, la construction n ° 2 a été en mesure de télécharger la source sans problème.

1
Sina