17

Ich habe ein benutzerdefiniertes Docker-Image in ECS hochgeladen. Ich habe die Berechtigungen geöffnet, um zu versuchen, dieses Problem zu lösen (ich werde es wieder sperren, sobald ich es zur Arbeit bringen kann). Ich versuche, das Docker-Image für den elastischen Beanstalk zu verwenden. Ich habe einen Docker aktiviert elastischen Bohnengarten Umgebung eingerichtet. Laut den AWS-Dokumenten muss ich, wenn ich mein Bild aus AWS heraushole, keine Anmeldeinformationen eingeben. Also lade ich meine Dockerrun.aws.json Datei hoch und versuche sie zu installieren. Es schlägt mit dem Fehler fehl:AWS Docker-Bereitstellung

Command failed on instance. Return code: 1 Output: Failed to authenticate with ECR for registry '434875166128' in 'us-east-1'. Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.

Die /var/log/eb-activity.log Informationen haben nichts nützliches darin.

Hier ist meine Dockerrun.aws.json Datei:

{ 
    "AWSEBDockerrunVersion": "1", 
    "Image": { 
    "Name": "{id000xxxx}.dkr.ecr.us-east-1.amazonaws.com/my-repo:1.0.0", 
    "Update": "true" 
    }, 
    "Ports": [ 
    { 
     "ContainerPort": "4000" 
    } 
    ], 
    "Logging": "/var/log/app-name" 
} 

ich auch versucht haben, die Authentifizierung mit dem dockercfg.json Datei in S3 hinzugefügt wird. Es hat auch nicht für mich funktioniert.

Note that I am using a business account instead of a personal account, so there may be some unknown variances as well.

Vielen Dank!

Update: Mein Benutzer hat im Moment auch volle Berechtigungen, also sollte es keine Erlaubnis geben, die in die Quere kommt.

+0

Überprüfen Sie die ECR-Repository-Einstellungen/Berechtigungen wie hier: https://media.amazonwebservices.com/blog/2015/ecr_permissions_1.png –

+0

Stellen Sie auch sicher, dass die IAM-Rolle an Bohnenstange angeschlossen ist (Die Instanz, die den Pull ausführt, hat über IAM-Berechtigungen Zugriff auf ECR ​​und ECS: http://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_IAM_policies.html –

+0

Danke @MarcYoung. Ich habe diese eingerichtet richtig schon. –

Antwort

38

Ich hatte das gleiche Problem.

Lösung: In AWS -> IAM -> Roles - > wählen Sie die Rolle, die Ihre Bohnenstange verwendet.

In meinem Fall ist es

Unter Berechtigungen für die Rolle aws-elasticbeanstalk-ec2-role gesetzt wurde, befestigen Politik: AmazonEC2ContainerRegistryReadOnly

In ECR besteht keine Notwendigkeit, alle Berechtigungen dieser Rolle zu geben.

+0

Du bist großartig! Genau das habe ich vermisst. –

+2

'aws-elasticbeanstalk-ec2-role' ist das Standardinstanzprofil, wenn Sie eine Umgebung in der AWS Elastic Beanstalk-Verwaltungskonsole starten. - http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-instanceprofile.html –

+0

Lesen Sie in der Dokumentation, wo die Berechtigung 'AmazonEC2ContainerRegistryReadOnly' verwendet wird: http://docs.aws.amazon.com/ elasticbeanstalk/neuste/dg/create_deploy_docker.container.console.html – zatziky

0

Sie können notwendige Service Rollen für elastische Bohnenstengel intialize (aws-elasticbeanstalk-EC2-Rolle, aws-elasticbeanstalk-Service-Rolle, AWSServiceRoleForECS) durch die neue Konsole von Elastic Beanstalk verwenden. Sie müssen dies nur einmal für jedes AWS-Konto tun:

  • Gehen Sie zu der Elastic Beanstalk-Konsole.
  • Akzeptieren Sie das "neue Design": Wenn Sie oben auf der Konsole die Meldung "Wir testen ein neues Design" sehen, akzeptieren Sie, dass Sie die neue Version der Konsole verwenden. Achtung, es scheint, dass Sie nicht zu der alten Konsole zurückkehren können.
  • Starten Sie den Assistenten zum Erstellen neuer Anwendungen und verwenden Sie eine Standard-Beispielanwendung in der Technologie.
  • Beenden Sie den gesamten Schritt des Assistenten bis zum Fortsetzen, und schauen Sie sich das Security-Pannel an: Sie sehen die beiden Rollen "aws-elasticbeanstalk-ec2-role" und "aws-elasticbeanstalk-service-role". Beenden Sie den Assistenten, um die Beispielanwendung zu erstellen.
  • Nach einer Weile soll die Anwendung
  • Im Notfall ausgeführt werden, auf die IAM-Konsole gehen und die Rollen aws-elasticbeanstalk-EC2-Rolle und aws-elasticbeanstalk-Service-Rolle löschen und die Assistenten erneut ausführen.

Ich habe das "Befehl fehlgeschlagen am Beispiel.Rückkehrcode: 1 Ausgabe: Authentifizierung bei ECR für Registrierung fehlgeschlagen "und ein anderer merkwürdiger Fehler (" Die von Ihnen angegebene AWS Access Key ID existiert nicht in unseren Datensätzen. (ElasticBeanstalk :: ManifestDownloadError) ") ​​mithilfe der neuen Konsole hatte immer noch diesen Fehler mit dem alten.

Verwandte Themen