Envie imagens para o Harbor para aumentar a segurança com controle de acesso baseado em papéis, verificação automatizada de vulnerabilidades e gerenciamento simplificado de imagens para seus aplicativos conteinerizados. Para enviar uma imagem local a uma instância do Harbor, marque-a com o nome do repositório e envie a imagem.
Antes de começar
Para enviar uma imagem, é preciso configurar o ambiente com os recursos e as permissões necessários, incluindo um projeto do Harbor. Para mais informações, consulte Criar projetos do Harbor.
Papéis necessários do IAM
Para enviar imagens para instâncias de registro do Harbor, entre em contato com o administrador do projeto do IAM para solicitar o seguinte papel:
- Leitor de instâncias do Harbor (
harbor-instance-viewer): receber, listar e observar instâncias do Harbor no namespace do projeto. Esse papel inclui as permissões necessárias para visualizar os detalhes das instâncias do Harbor, de modo que você possa recuperar os URLs de registro necessários para enviar imagens.
Papéis do RBAC do Harbor necessários
Ao contrário dos papéis do IAM do GDC, o envio de imagens requer permissões específicas no sistema interno de controle de acesso baseado em papéis (RBAC, na sigla em inglês) do Harbor. Solicite as permissões necessárias ao administrador. Aplique o acesso com privilégio mínimo solicitando apenas os papéis necessários para suas tarefas específicas.
- Desenvolvedor: necessário para enviar imagens para um repositório do Harbor. Para mais informações sobre todos os papéis disponíveis, consulte a documentação do Harbor sobre permissões de usuário por papel: https://goharbor.io/docs/2.12.0/administration/managing-users/user-permissions-by-role/.
Marcar a imagem local
Siga estas etapas para marcar uma imagem local com o nome do repositório:
- É preciso estar autenticado na instância do Harbor. Para mais informações, consulte Configurar a autenticação do Docker para instâncias de registro do Harbor.
Defina o nome da imagem. O formato do nome completo de uma imagem é:
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGESubstitua:
INSTANCE_URL: o URL da instância do Harbor. Por exemplo,harbor-1.org-1.zone1.google.gdc.test. Consiga o URL da instância do Harbor usando o console do GDC ou a CLI gdcloud.HARBOR_PROJECT_NAME: o nome do projeto do Harbor. Por exemplo,my-project.IMAGE_NAME: o nome da imagem. Por exemplo,nginx.
Veja um exemplo de nome de imagem completo:
harbor-1.org-1.zone1.google.gdc.test/my-project/nginxMarque a imagem local com o nome do repositório:
docker tag SOURCE-IMAGE INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
Substitua:
SOURCE-IMAGE: o nome ou ID da imagem local. Por exemplo,nginx.TAG: o nome da tag. Por exemplo,staging. Se você não especificar uma tag, o Docker vai aplicar a tag mais recente por padrão.
Enviar a imagem com tag para uma instância de registro do Harbor
Depois que a imagem for marcada, envie-a para a instância do registro do Harbor:
- Verifique se você está autenticado na instância do Harbor.
- Envie a imagem marcada com o comando:
docker push
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
Quando você envia uma imagem, ela é armazenada na instância e no projeto do Harbor especificados.
Depois de enviar a imagem, acesse a interface da instância do Harbor para conferir a imagem.
A seguir
Depois de enviar a imagem para o registro do Harbor, é possível extraí-la para o ambiente local para verificação. Também é possível configurar regras de retenção de tags para manter seus repositórios automaticamente e analisar os resultados da verificação de segurança para detectar vulnerabilidades: