Início
Autenticação de registro integrada e autorização
Permitindo que pods façam referência a imagens em projetos
Permitindo que pods façam referência a imagens de outros registros
Início
Os registros do Docker podem ter uma camada de segurança para prevenir que pessoas não autorizadas tenham acesso a certas imagens. Se você está usando o OpenShift integrado ao registro do Docker e está fazendo pull de imagens localizadas no mesmo espelho do projeto, então a conta de serviço do seu pod provavelmente já tem permissões e nenhuma configuração adicional precisa ser feita. Se este não for o seu caso, então configurações adicionais são necessárias.
Autenticação de registro integrada e autorização
O registro do Docker integrado ao OpenShift pode autenticar usando o mesmo token da API do OpenShift. Para rodar o comando docker login no registro integrado, você pode escolher qualquer usuário e e-mail, mas a senha deve ser um token OpenShift valido. Para fazer o pull de uma imagem, o usuário autenticado deve ter permissão get no espelho solicitado imagestreams/layers. Para fazer o push de uma imagem, o usuário autenticado deve ter permissão update no espelho solicitado imagestrams/layers.
Todas as contas de serviços em um projeto tem permissão de fazer pull de qualquer imagem no mesmo projeto, e a conta de serviço builder tem permissão de fazer push de qualquer imagem no mesmo projeto.
Permitindo que pods façam referência a imagens em projetos
Quando estiver usando registro integrado para permitir que pods do projeto-A façam referência a imagens no projeto-B, uma conta de serviço no projeto-A deve ser vinculada a função system:image-puller no projeto-B:
$ oc policy add-role-to-user system:image-puller system:serviceaccount:project-A:default --namespace=project-B
Depois de adicionar a função, os pods no projeto-A que fazer referência a conta de serviço default irão ter a capacidade de fazer o pull de imagens do projeto-B.
Para permitir acesso a qualquer conta de serviço no projeto-A use o grupo:
$ oc policy add-role-to-group system:image-puller system:serviceaccounts:projeto-A --namespace=projeto-B
Permitindo que pods façam referência a imagens de outros registros
Para fazer pull de uma imagem segura do Docker que não faz parte do registro integrado do OpenShift, você deve criar uma secret dockercfg e adicionar a sua conta de serviço.
Se você já tem um arquivo .dockercfg para o registro seguro, você pode criar uma secret a partir deste arquivo ao executar o seguinte comando:
$ oc secrets new <pull_secret_name> .dockercfg=<path/to/.dockercfg>
Se você não tem um arquivo .dockercfg para o registro seguro, você pode criar uma secret ao executar o seguinte comando:
$ oc secrets new-dockercfg <pull_secret_name> --docker-server=<registry_server> --docker-usernamd=<user_name> --docker-password=<password> --docker-email=<email>
Para usar uma secret para fazer pull de imagens para os pods, você deve adicionar a secret na sua conta de serviço. O nome da conta de serviço neste exemplo deve ser o mesmo nome da conta de serviço que o pod vai utilizar; a conta de serviço default é "default";
$ oc secrets add serviceaccount/default secrets/<pull_secret_name> --for=pull
Para usar uma secret para executar o push e o pull de imagens no build, a secret deve ser lida dentro do pod. Você pode fazer isso executando o seguinte comando:
$ oc secrets add serviceaccount/builder secrets/<pull_secret_name>
Comentários
0 comentário
Por favor, entre para comentar.