4
votes

Étape CodeDeploy de CodePipeline en raison d'autorisations de rôle insuffisantes

J'ai un CodePipeline en 3 étapes sur AWS .

  1. Source: extrait lors de la validation d'une branche spécifique de CodeCommit (succès)

  2. Build: exécute des tests sur une image docker via CodeBuild (succès)

  3. Deploy: effectue un déploiement sur un groupe de déploiement (alias certaines instances EC2 spécifiquement balisées) via CodeDeploy (échec).

L'étape 3 échoue avec

Impossible d'accéder à l'artefact avec la clé d'objet Amazon S3 'someitem- / BuildArtif / 5zyjxoZ' situé dans Amazon S3 seau d'artefacts 'codepipeline-eu-west-1-somerandomnumber'. Le fourni le rôle ne dispose pas des autorisations suffisantes.

À quel rôle le dernier fait-il référence?

Le rôle de service de CodePipeline ou le rôle de service de CodeDeploy ?

Je suis presque certain d'avoir joint les politiques appropriées aux deux cependant ...

Voici un extrait de mon rôle de service CodePipeline

 entrez la description de l'image ici


2 commentaires

Je suppose que c'est le rôle CodeDeploy, car c'est le CodePipeline qui met l'artefact dans le seau (bien que cela ne signifie pas nécessairement qu'il peut également le récupérer).


Cela est dû au fait que l'artefact n'a pas été créé. Reportez-vous à cette réponse ( stackoverflow.com/a/60983084/4842112 ) et à cet article - medium.com/@shanikae/…


4 Réponses :


2
votes

essayez de donner à la politique "CodeDeploy" un accès complet, cela devrait fonctionner.


0 commentaires

0
votes

Le message d'erreur doit faire référence au rôle CodeDeploy. L'action CodeDeploy transmet l'artefact S3 par référence à CodeDeploy, le rôle CodeDeploy doit donc avoir un accès en lecture à l'artefact CodePipeline.


0 commentaires

1
votes

Cela peut également être dû au fait que le BuildArtifact n'existe pas. Vérifiez le chemin spécifié dans votre compartiment S3 pour voir si l'objet existe réellement. CodePipeline donne simplement à CodeDeploy une référence à un artefact qu'il pense a été construit et téléchargé, mais il ne le sait pas vraiment.


0 commentaires

1
votes

Ce problème n'est pas lié aux rôles attribués à Codepipeline ou à Codebuild. Si vous étudiez, vous trouverez que dans le compartiment S3 'codepipeline-eu-west-1-somerandomnumber', il n'y a pas de dossier "BuildArtif" et certainement pas de fichier - "5zyjxoZ".

Le problème est que Codebuild n'envoie aucun artefact à Codedeploy, remplacez les "Artefacts d'entrée" de Codebuild par la sortie de l'étape Source du Pipeline et le problème serait résolu.


0 commentaires