17

ECSにアップロードされたカスタムドッカーイメージがあります。私はこの問題を解決しようとするアクセス許可を開いた(私はこれを動作させることができれば再びロックダウンする)。私は弾力のある豆腐にドッカー画像を展開しようとしています。私はドッカーが弾力のある豆の環境を設定できるようにしました。 AWSのドキュメントによると、AWS内からイメージを引き出す場合、私は信任状を渡す必要はありません。だから私はDockerrun.aws.jsonファイルをアップロードし、それをインストールしようとします。エラーで失敗します:AWS Dockerの配備

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.

/var/log/eb-activity.log情報には何も役立ちません。私もS3でdockercfg.jsonファイルを使用して認証を追加しようとしている

{ 
    "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" 
} 

は、ここに私のDockerrun.aws.jsonファイルです。それは私にとってもうまくいかなかった。

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

ありがとう!

更新:私のユーザーは今でも完全なアクセス許可を持っているため、アクセス許可のある方法でアクセスする必要はありません。

+0

ここでECRリポジトリの設定/権限を確認してください:https://media.amazonwebservices.com/blog/2015/ecr_permissions_1.png –

+0

また、IAMの役割がBeanstalkに接続されていることを確認してください(プルを実行しているインスタンス)は、IAM権限を使用してECRとECSの両方にアクセスできます。http://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_IAM_policies.html –

+0

ありがとう@MarcYoung。 –

答えて

38

私は同じ問題を抱えていました。

解決策: AWS -> IAM -> Roles - >では、あなたのbeanstalkが使用している役割を選択してください。それは役割の権限の下aws-elasticbeanstalk-ec2-role

に設定した。私の場合は

、ポリシーを添付:ECRではAmazonEC2ContainerRegistryReadOnly

このロールにすべての権限を付与する必要はありません。

+0

あなたは素晴らしいです!これはまさに私が欠けていたものです。 –

+2

aws-elasticbeanstalk-ec2-roleは、AWS Elastic Beanstalk管理コンソールで環境を起動するときのデフォルトのインスタンスプロファイルです。 - http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-instanceprofile.html –

+0

「AmazonEC2ContainerRegistryReadOnly」という許可が使用されているドキュメントへのリンク:http://docs.aws.amazon.com/ elasticbeanstalk/latest/dg/create_deploy_docker.container.console.html – zatziky

0

あなたは、Elastic Beanstalkでの新しいコンソールを使用して、Elastic Beanstalkで(AWS-elasticbeanstalk-EC2-役割、AWS-elasticbeanstalkサービス-役割、AWSServiceRoleForECS)のために必要なサービスの役割をintializeすることができます。 各AWSアカウントでこれを1回だけ実行する必要があります。

  • エラスティックbeanstalkコンソールに移動します。
  • 「新しいデザイン」を受け入れる:コンソールの上部に「新しいデザインをテストしています」というメッセージが表示されたら、新しいバージョンのコンソールを使用することを受け入れるようにします。警告、古いコンソールにはロールバックできないようです。
  • 新しいアプリケーションの作成ウィザードを起動し、このテクノロジでデフォルトのサンプルアプリケーションを使用します。
  • レジュームするまでウィザードのすべてのステップを完了して、Security pannelを確認します.2つのロール「aws-elasticbeanstalk-ec2-role」と「aws-elasticbeanstalk-service-role」が表示されます。そして、ウィザードを終了してサンプルアプリケーションを作成します。
  • 緊急の場合は、IAMコンソールでaws-elasticbeanstalk-ec2-roleおよびaws-elasticbeanstalk-service-roleロールを削除し、ウィザードを再度実行してください。

「コマンドが失敗しました」というインスタンスが修正されました。新しいコンソールを使用して、1つの出力:1出力:レジストリのECRでの認証に失敗しました」とその他の異常なエラー(「提供したAWSアクセスキーIDがGoogleのレコード(ElasticBeanstalk :: ManifestDownloadError)

関連する問題