As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Autenticação em repositórios de imagens
Este tópico descreve como autenticar-se em repositórios de imagens online com o Elastic Beanstalk. Para repositórios privados, o Elastic Beanstalk deve se autenticar antes de poder extrair e implantar suas imagens. Para o Amazon ECR Public, a autenticação é opcional, mas fornece limites de taxa mais altos e maior confiabilidade.
Usar imagens de um repositório do Amazon ECR
Você pode armazenar suas imagens personalizadas do Docker AWS com o Amazon Elastic Container Registry
Quando você armazena suas imagens do Docker no Amazon ECR, o Elastic Beanstalk autentica automaticamente no registro do Amazon ECR no perfil de instância do ambiente. Portanto, você precisará fornecer às suas instâncias permissão para acessar as imagens no seu repositório do Amazon ECR. Para fazer isso, adicione permissões ao perfil de instância do seu ambiente anexando a política EC2 ContainerRegistryReadOnly gerenciada da Amazon ao perfil da instância. Isso fornece acesso somente leitura a todos os repositórios do Amazon ECR na sua conta. Você também tem a opção de acessar apenas um único repositório usando o seguinte modelo para criar uma política personalizada:
Substitua o nome de recurso da Amazon (ARN) na política acima pelo ARN de seu repositório.
Você precisará especificar as informações da imagem no arquivo Dockerrun.aws.json. A configuração será diferente dependendo da plataforma usada.
Para a plataforma Docker gerenciada pelo ECS, use a chave image em um objeto de definição de contêiner :
"containerDefinitions": [
{
"name": "my-image",
"image": "account-id.dkr.ecr.us-east-2.amazonaws.com/repository-name:latest",
Para a plataforma Docker, consulte a imagem por URL. O URL vai na definição Image do seu arquivo Dockerrun.aws.json:
"Image": {
"Name": "account-id.dkr.ecr.us-east-2.amazonaws.com/repository-name:latest",
"Update": "true"
},
Usando AWS Secrets Manager
Configure o Elastic Beanstalk para se autenticar com seu repositório privado antes da implantação para permitir o acesso às imagens do seu contêiner.
Essa abordagem usa a fase de pré-compilação do processo de implantação do Elastic Beanstalk com dois componentes:
-
ebextensions para definir variáveis de ambiente que armazenam credenciais de repositório
-
scripts de hook de plataforma para executar docker login antes de extrair imagens
Os scripts de gancho recuperam um nome de usuário e uma senha de variáveis de ambiente que são preenchidas a partir de um único AWS Secrets Manager segredo no formato JSON. Esse recurso requer plataformas Elastic Beanstalk Docker e Docker gerenciadas por ECS lançadas em ou após 13 de janeiro de 2026. Para obter mais detalhes, consulte segredos do ambiente.
Para configurar o Elastic Beanstalk para se autenticar em seu repositório privado com AWS Secrets Manager
nota
Antes de continuar, verifique se você configurou suas credenciais AWS Secrets Manager e configurou as permissões necessárias do IAM. Consulte Pré-requisitos para configurar segredos como variáveis de ambiente para obter detalhes.
-
Crie a seguinte estrutura de diretórios para o seu projeto:
├── .ebextensions │ └── env.config ├── .platform │ ├── confighooks │ │ └── prebuild │ │ └── 01login.sh │ └── hooks │ └── prebuild │ └── 01login.sh ├── Dockerfile -
Use AWS Secrets Managerpara salvar as credenciais do seu repositório privado como um segredo formatado em JSON.
aws secretsmanager create-secret --name repo-credentials \ --secret-string '{"username":"myuser","password":"mypassword"}' -
Crie o seguinte arquivo
env.confige coloque-o no diretório.ebextensions, como mostrado na estrutura de diretórios anterior. Essa configuração usa o aws:elasticbeanstalk:application:environmentsecrets namespace com extração de chave JSON para inicializar as variáveis de ambiente e do ElasticUSERBeanstalk a partir dePASSWDcampos individuais no segredo.option_settings: aws:elasticbeanstalk:application:environmentsecrets: USER: arn:aws:secretsmanager:us-east-1:111122223333:secret:repo-credentials-AbCd12:username PASSWD: arn:aws:secretsmanager:us-east-1:111122223333:secret:repo-credentials-AbCd12:password -
Crie o arquivo de
01login.shscript a seguir e coloque-o nos seguintes locais (também mostrados na estrutura de diretórios anterior):-
.platform/confighooks/prebuild/01login.sh -
.platform/hooks/prebuild/01login.sh
#!/bin/bash echo $PASSWD | docker login -u $USER --password-stdinO
01login.shscript usa as variáveis de ambiente configuradas na Etapa 3 e passa a senha para docker login viastdin. Para obter mais informações sobre a autenticação do Docker, consulte docker loginna documentação do Docker. Observações
-
A plataforma Docker gerenciada pelo ECS usa a sintaxe nativa do ECS para referenciar segredos. Para obter mais informações, consulte Passe segredos do Secrets Manager por meio das variáveis de ambiente do Amazon ECS no Amazon Elastic Container Service Developer Guide.
-
Para obter mais informações sobre ganchos de plataforma, consulte Estendendo as plataformas Hooks de plataforma Linux do Elastic Beanstalk.
-
Depois de configurada a autenticação, o Elastic Beanstalk pode extrair e implantar imagens do seu repositório privado.
Usar o arquivo Dockerrun.aws.json
Esta seção descreve outra abordagem para autenticar o Elastic Beanstalk em um repositório privado. Com essa abordagem, gere um arquivo de autenticação com o comando do Docker e, depois, carregue o arquivo de autenticação em um bucket do Amazon S3. Você também deve incluir as informações do bucket no arquivo Dockerrun.aws.json.
Como gerar e fornecer um arquivo de autenticação ao Elastic Beanstalk
-
Gere um arquivo de autenticação com o comando docker login. Para repositórios no Docker Hub, execute docker login:
$docker loginPara outros registros, inclua o URL do servidor de registro:
$docker loginregistry-server-urlnota
Se o ambiente do Elastic Beanstalk usar a versão da plataforma Docker da AMI do Amazon Linux (que precede o Amazon Linux 2), leia as informações relevantes em Configuração do Docker na AMI do Amazon Linux (que precede o Amazon Linux 2).
Para obter mais informações sobre o arquivo de autenticação, consulte Store images on Docker Hub
e docker login no site do Docker. -
Faça upload de uma cópia do arquivo de autenticação chamado
.dockercfgem um bucket do Amazon S3 seguro.-
O bucket do Amazon S3 deve ser hospedado no Região da AWS mesmo ambiente que o está usando. O Elastic Beanstalk não pode fazer download de arquivos de um bucket do Amazon S3 hospedado em outras regiões.
-
Conceda permissões para a operação
s3:GetObjectà função do IAM no perfil da instância. Para obter mais informações, consulte Gerenciar perfis de instância do Elastic Beanstalk.
-
-
Inclua as informações do bucket do Amazon S3 no parâmetro
Authenticationno arquivoDockerrun.aws.json.O exemplo a seguir mostra o uso de um arquivo de autenticação chamado
mydockercfgem um bucket chamadoamzn-s3-demo-bucketpara usar uma imagem privada em um registro de terceiros. Para obter o número de versão correto para oAWSEBDockerrunVersion, consulte a observação que segue o exemplo.{ "AWSEBDockerrunVersion": "version-no", "Authentication": { "Bucket": "amzn-s3-demo-bucket", "Key": "mydockercfg" }, "Image": { "Name": "quay.io/johndoe/private-image", "Update": "true" }, "Ports": [ { "ContainerPort": "1234" } ], "Volumes": [ { "HostDirectory": "/var/app/mydb", "ContainerDirectory": "/etc/mysql" } ], "Logging": "/var/log/nginx" }Versões do Dockerrun.aws.json
O parâmetro
AWSEBDockerrunVersionindica a versão do arquivoDockerrun.aws.json.-
O Docker AL2 e AL2023 as plataformas usam as seguintes versões do arquivo.
Dockerrun.aws.json v3: ambientes que usam o Docker Compose.
Dockerrun.aws.json v1: ambientes que não usam o Docker Compose.
-
O ECS executado no Amazon Linux 2 e o ECS executado no AL2023 usam o
Dockerrun.aws.json v2arquivo. A plataforma descontinuada ECS-The Multicontainer Docker Amazon Linux AMI (AL1) também usou essa mesma versão.
-
Depois que o Elastic Beanstalk puder autenticar com o registro online que hospeda o repositório privado, as imagens poderão ser implantadas e extraídas.
Usando imagens do Amazon ECR público
O Amazon ECR Public é um registro público de contêineres que hospeda imagens do Docker. Embora os repositórios públicos do Amazon ECR estejam acessíveis ao público, a autenticação fornece limites de taxa mais altos e melhor confiabilidade para suas implantações.
nota
A autenticação pública do Amazon ECR não é suportada nas regiões (cn-*) e AWS GovCloud regiões (us-gov-*) da China. Nessas regiões, o Elastic Beanstalk usará pulls não autenticados.
Para habilitar a autenticação pública do Amazon ECR, adicione as seguintes permissões ao perfil de instância do seu ambiente. Para obter mais informações sobre a autenticação pública do Amazon ECR, consulte Autenticação de registro no Amazon ECR público, no Guia do usuário Amazon Elastic Container Registry Public:
Depois que essas permissões forem anexadas ao seu perfil de instância, o Elastic Beanstalk se autenticará automaticamente nos registros públicos do Amazon ECR. Você pode referenciar imagens públicas do Amazon ECR usando o formato public.ecr.aws/ padrão no seu arquivo registry-alias/repository-name:tagDockerrun.aws.json ou Dockerfile.