別の AWS アカウントの Beanstalk と ECR に関する問題に直面しています。
「Dockerrun.aws.json」で、プルしようとしているイメージは、別の AWS アカウント (同じ組織だが異なるアカウント ID) に属しています。
"Image": {
"Name": "XXXXXXX.dkr.ecr.eu-central-1.amazonaws.com/YYYYYYY",
"Update": "true"
},
ECR アクセス許可で、Beanstalk がイメージ (別の AWS アカウント) をプルすることを許可するポリシーを既に追加しました。
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "Allow webapp aws account",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ZZZZZZZZZZZ:root"
},
"Action": [
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"ecr:BatchCheckLayerAvailability",
"ecr:PutImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload",
"ecr:DescribeRepositories",
"ecr:GetRepositoryPolicy",
"ecr:ListImages",
"ecr:DescribeImages",
"ecr:DeleteRepository",
"ecr:BatchDeleteImage",
"ecr:SetRepositoryPolicy",
"ecr:DeleteRepositoryPolicy",
"ecr:GetLifecyclePolicy",
"ecr:PutLifecyclePolicy",
"ecr:DeleteLifecyclePolicy",
"ecr:GetLifecyclePolicyPreview",
"ecr:StartLifecyclePolicyPreview"
]
}
]
}
しかし、Beanstalk 環境を構築しようとしていますが、まだ次のエラーが発生します。
because: Failed to authenticate with ECR for registry 'XXXXXX' in 'eu-central-1' (ElasticBeanstalk::ExternalInvocationError)
caused by: Failed to authenticate with ECR for registry 'XXXXX' in 'eu-central-1' (Executor::NonZeroExitStatus
どうすればこの問題を解決できるのだろうか。dockerrun.aws.json で Authentication パラメータを使用できれば、すばらしいはずです。ただし、トークンは 12 時間後に期限切れになるため、ECR で機能するかどうかはわかりません。
"Authentication": {
"Bucket": "elasticbeanstalk-eu-central-1-XXXXX",
"Key": "aws_credentials.json"
}、