Skip to content

ufcg-lsd/aws-ecr-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

Documentação AWS

Important

Caso você precise migrar container images do GitLab Registry para o AWS ECR:

  1. Complete a sessão de Pré-requisitos
  2. Complete a sessão de Configurando o AWS CLI
  3. Complete a sessão de Organização de Usuários e Permissões
  4. Vá para o diretório migration-from-gitlab e continue de lá

1. Introdução

Esta documentação tem como objetivo orientar o uso do AWS CLI para acessar e gerenciar o AWS Elastic Container Registry (ECR). Aqui você encontrará boas práticas, comandos essenciais e informações sobre a organização de usuários e permissões.

2. Pré-requisitos

Tip

No MacOS você pode instalar a AWS CLI via brew:

brew install awscli

Note

Nos nossos exemplos usamos docker (recomendado), mas você pode usar outro container runtime (por exemplo, Podman, containerd, etc.)

3. Configurando o AWS CLI

  1. Acesse o portal da AWS no link: https://lsd-ufcg.awsapps.com/start

  2. Ao logar, você verá a conta AWS-LSD, expanda seu conteúdo para mais informações. Você agora verá um menu com: <nome_role> | Access Keys 🔑

  3. Clique em Access Keys 🔑 para configurar o acesso à conta.

  4. Escola seu sistema operacional listado (macOS and Linux | Windows | PowerShell)

  5. Veja a primeira opção listada (AWS IAM Identity Center credentials (Recommended))

  6. Copie o comando:

aws configure sso
  1. Em SSO session name escolha um nome para sua sessão

  2. Em SSO start URL copie o link do portal da AWS (passo 5)

  3. Em SSO region copie a região do portal da AWS (passo 5)

  4. Em SSO registration scopes não modifique nada e apenas dê Enter

  5. Você será redirecionado para seu navegador padrão pedindo a confirmação de acesso

  6. Clique no botão de Allow access no seu navegador

  7. Feche a aba e volte para o terminal. Você então será apresentado com as opções de seus papéis (roles). Escolha a role que te foi dado o acesso.

  8. Em CLI default client Region digite a mesma região configurada no passo 9

  9. Em CLI default output format escolha um dos possíveis formatos:

  • json
  • text
  • table
  • yaml
  • yaml-stream
  1. Em CLI profile name digite default.

Important

Caso tenha configurado um nome diferente de default, você precisará passar a opção --profile <nome_perfil> para qualquer comando da awscli.

Pronto! Agora você está apto a usar a awscli para suas tarefas.

Important

A partir de agora, para ter permissões de acesso à AWS você precisará apenas digitar:

aws sso login

4. Organização de Usuários e Permissões

Projetos

Para agrupar repositórios semelhantes, a AWS oferece o conceito de namespaces. Assim, o path de uma imagem seria:

<namespace>/<nome_repositório>:<tag>

Cada projeto teria um namespace próprio e, dentro desse namespace, seus usuários poderiam criar repositórios a fim de armazenar imagens de container.

Por exemplo, para o projeto suporte, um possível path para uma imagem seria:

suporte/nginx:alpine

Warning

É importante que o nome do namespace seja genérico, de modo a evitar a fragmentação de um projeto em times. Em vez de termos dois projetos com suporte-cloud e suporte-services, o recomendado seria um único namespace suporte. Dessa forma, o time de cloud poderia criar repositórios em suporte/cloud/* e o time de services em suporte/services/*.

Permissões

ECR (Amazon Elastic Container Registry)

Todo usuário pertencente a um projeto possui a seguintes permissões dentro de seu namespace:

  • criar repositórios
  • listar imagens de seus repositórios
  • atribuir tags a suas imagens
  • dar pull em imagens
  • dar push em imagens
  • deletar imagens
  • deletar repositórios

Adicionalmente, todos os usuários podem listar os repositórios de todos os projetos, sem a permissão das ações acima.

Quando é necessário criar um ticket?

É necessário criar um ticket apenas para criação de projetos na AWS e adição/remoção de usuários em projetos. Recomendamos que o professor responsável pelo projeto crie um ticket pedindo a criação do projeto, fornecendo uma lista de emails com domínio lsd (e.g., [email protected], etc).

5. Trabalhando com o AWS ECR

Tip

Para operações com repositórios públicos, use o comando aws ecr-public (e.g., aws ecr-public describe-repositories)

Listando Repositórios

aws ecr describe-repositories

Construindo e Tagueando Imagens Docker

  1. Construa sua imagem:

    docker build -t <nome_imagem> .
  2. Tagueie a imagem com a URI do repositório:

    docker tag <nome_imagem>:<tag> 851296927411.dkr.ecr.us-east-1.amazonaws.com/<namespace>/<nome_repositório>:<tag>

6. Enviando Imagens Docker para o ECR

  1. Autentique o Docker no ECR:

    aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 851296927411.dkr.ecr.us-east-1.amazonaws.com

Warning

Certifique-se que <namespace>/<nome_repositório> existe no AWS ECR. Para criar repositórios rode:

aws ecr create-repository --repository-name <namespace>/<nome_repositório>
  1. Envie a imagem:

    docker push 851296927411.dkr.ecr.us-east-1.amazonaws.com/<namespace>/<nome_repositório>:<tag>

7. Baixando Imagens Docker do ECR

docker pull 851296927411.dkr.ecr.us-east-1.amazonaws.com/<namespace>/<nome_repositório>:<tag>

8. Solução de Problemas

  • Erros comuns:
    • Problemas de autenticação: Verifique seu login no IAM Identity Center.
    • Permissões ausentes: Confirme se sua conta tem permissões adequadas.
    • Problemas no Docker: Verifique se o Docker está instalado e configurado corretamente.

9. Boas Práticas

  • Use tags consistentes para as imagens.
  • Exclua imagens antigas ou não utilizadas regularmente.

10. Referências

11. Contato e Suporte

  • Entre em contato com o suporte para questões relacionadas ao IAM Identity Center ou ECR.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages