{{site.data.keyword.attribute-definition-list}}
Autenticação no {{site.data.keyword.registryshort_notm}} com o IAM
Faça a autenticação no {{site.data.keyword.registryshort_notm}} usando chaves de API do IAM ou tokens de portador para enviar e baixar imagens nos namespaces do seu registro.
Todas as contas exigem políticas de acesso IAM. Para configurar e gerenciar políticas de acesso do IAM, consulte Definindo políticas de acesso do IAM.
O acesso ao {{site.data.keyword.registrylong_notm}} é automatizado, que geralmente usa chaves de API, ou interativo, que geralmente usa tokens de acesso.
Se você tiver uma política de acesso do IAM, mas estiver recebendo erros do tipo “ Access denied ”, consulte “Por que estou recebendo erros do tipo ‘ Access denied ’?” para obter ajuda.
Se você deseja usar suas imagens de contêiner em implementações do Kubernetes, consulte Como usar um segredo de extração de imagem para acessar imagens em outras contas do {{site.data.keyword.cloud_notm}} ou registros privados externos de namespaces Kubernetes não padrão.
Como acessar seus namespaces na automação
É possível usar chaves de API de ID de serviço para automatizar o push e o pull de imagens de contêiner para/de seus namespaces.
As chaves de API estão vinculadas aos IDs de usuário ou aos IDs de serviço da sua conta, e você pode utilizá-las em todo o site {{site.data.keyword.cloud}}. Você pode usar uma chave de API na interface de linha de comando (CLI) ou como parte de um processo de automação para se autenticar com sua identidade de usuário ou de serviço. Uma chave de API de usuário está associada a um usuário e suas políticas de acesso. Uma chave de API de ID de serviço tem suas próprias políticas de acesso. Você pode ter vários IDs de serviço com políticas detalhadas diferentes, de modo que sua automação tenha capacidades específicas e limitadas.
Ao criar um cluster do tipo {{site.data.keyword.containerlong_notm}} ou {{site.data.keyword.openshiftlong}}, o cluster é criado com um ID de serviço IAM {{site.data.keyword.cloud_notm}}, ao qual é atribuída uma política de acesso de serviço
IAM do tipo “Leitor” para {{site.data.keyword.registrylong_notm}}. As credenciais do ID de serviço são autenticadas em uma chave de API do ID de serviço sem expiração, que é armazenada nos segredos de extração de imagem em
seu cluster. Os segredos de extração de imagem são incluídos no namespace do Kubernetes default e na lista de segredos na conta de serviço default para esse namespace do Kubernetes. Se você precisar de mais chaves
de API de ID de serviço ou se a chave de API de ID de serviço estiver ausente, será possível criar uma chave de API de ID de serviço manualmente.
É possível usar chaves de API de ID de serviço nos locais a seguir:
- Clusters do {{site.data.keyword.containerlong_notm}} ou do {{site.data.keyword.openshiftlong_notm}}. Ao criar clusters do {{site.data.keyword.containerlong_notm}} e do {{site.data.keyword.openshiftlong_notm}}, um ID de serviço é criado automaticamente para cada cluster. Se você desejar mais de um ID de serviço, será possível criá-los manualmente.
- Clusters Kubernetes e {{site.data.keyword.redhat_openshift_full}} que não estão no {{site.data.keyword.cloud_notm}}. Deve-se criar seu próprio ID de serviço, chave de API e segredo de extração.
- CLI do Docker e outros clientes. Deve-se criar seu próprio ID de serviço e chave de API.
Criando uma chave de API de ID de serviço manualmente
Crie uma chave de API do ID de serviço que pode ser usada para efetuar login no registro.
Para criar uma chave de API de ID de serviço, conclua as etapas a seguir:
-
Crie um ID de serviço. Consulte
ibmcloud iam service-id-create. -
Designe políticas de serviço ao ID de serviço para controlar o nível de acesso que é permitido quando o ID de serviço é usado para autenticação com o {{site.data.keyword.registrylong_notm}}. Consulte Gerenciando o acesso aos recursos.
-
Crie uma chave de API de ID de serviço. Consulte Gerenciando chaves de API de ID de serviço e
ibmcloud iam service-api-key-create.
Criando uma chave de API de usuário manualmente
Crie uma chave de API do usuário que pode ser usada para efetuar login no registro.
Se você criar uma chave de API de usuário, as políticas de acesso do usuário serão usadas.
Para criar uma chave de API de usuário, consulte Gerenciando chaves de API de usuário e ibmcloud iam api-key-create.
Como usar software cliente para fazer a autenticação na automação
Use uma chave de API para efetuar login no registro usando clientes comuns.
Os clientes exigem uma chave de API e um domínio, substituindo API_KEY por sua chave de API e REGISTRY_DOMAIN pelo domínio do registro em que seus namespaces são configurados.
| Região | Região que era conhecida anteriormente como | REGISTRY_DOMAIN |
|---|---|---|
global |
Não aplicável | icr.io |
au-syd |
ap-south |
au.icr.io |
br-sao |
Não aplicável | br.icr.io |
ca-mon |
Não aplicável | ca2.icr.io |
ca-tor |
Não aplicável | ca.icr.io |
eu-de |
eu-central |
de.icr.io |
eu-es |
Não aplicável | es.icr.io |
eu-gb |
uk-south |
uk.icr.io |
in-che |
Não aplicável | in.icr.io |
in-mum |
Não aplicável | in2.icr.io |
jp-osa |
Não aplicável | jp2.icr.io |
jp-tok |
ap-north |
jp.icr.io |
us-south |
Não aplicável | us.icr.io |
Para obter mais informações sobre como usar o {{site.data.keyword.registrylong_notm}} em um pipeline do {{site.data.keyword.contdelivery_short}}, consulte Usando um registro de imagem privado.
São fornecidos exemplos de como fazer a autenticação automática com o registro para os seguintes clientes:
Se você receber uma mensagem 400 Bad Request, a combinação de nome de usuário e senha não é válida.
Usando o Buildah para autenticar com o registro
É possível usar o Buildah para fazer a autenticação com o registro, assim, você poderá enviar por push e fazer pull das imagens para o registro e a partir dele.
Use a chave de API e o domínio para efetuar login no registro, executando o comando Buildah a seguir e substituindo API_KEY pela chave de API e REGISTRY_DOMAIN pelo domínio:
buildah login -u iamapikey -p API_KEY REGISTRY_DOMAIN
Usando o Docker para autenticar com o registro
É possível usar o Docker para se autenticar com o registro para que seja possível enviar as imagens por push e fazer pull delas para/do registro.
Use a chave de API e o domínio para efetuar login no registro, executando o comando Docker a seguir e substituindo API_KEY pela chave de API e REGISTRY_DOMAIN pelo domínio:
docker login -u iamapikey -p API_KEY REGISTRY_DOMAIN
Usando o Podman para autenticar com o registro
É possível usar o Podman para fazer a autenticação com o registro, assim, você poderá enviar por push e fazer pull das imagens para o registro e a partir dele.
Use a chave de API e o domínio para efetuar login no registro, executando o comando Podman a seguir e substituindo API_KEY pela chave de API e REGISTRY_DOMAIN pelo domínio:
podman login -u iamapikey -p API_KEY REGISTRY_DOMAIN
Usando o Skopeo para autenticar com o registro
É possível usar o Skopeo para fazer a autenticação com o registro, assim, você poderá enviar por push e fazer pull das imagens para o registro e a partir dele.
Por exemplo, use o comando Skopeo a seguir para fazer pull de uma imagem do Docker Hub e enviá-la por push para o seu namespace. Substitua REGISTRY_DOMAIN pelo nome de seu domínio,
NAMESPACE por seu namespace e API_KEY por sua chave de API:
skopeo --insecure-policy --override-os linux copy docker://busybox:latest docker://REGISTRY_DOMAIN/NAMESPACE/busybox:latest --dest-creds iamapikey:API_KEY
Como acessar seus namespaces de forma interativa
É possível usar tokens de acesso e de atualização para enviar por push e fazer pull de imagens para os seus namespaces e a partir deles de forma interativa.
São fornecidos exemplos de como acessar seus namespaces de forma interativa para os seguintes clientes:
Usando o Buildah para acessar seu namespace
Efetue login no registro usando a CLI do Buildah.
É possível usar a CLI do Buildah para efetuar login no registro, usando um token de acesso e substituindo REGISTRY_DOMAIN pelo domínio:
ibmcloud iam oauth-tokens | sed -ne '/IAM token/s/.* //p' | buildah login -u iambearer --password-stdin REGISTRY_DOMAIN
Usando o Docker para acessar seu namespace
Efetue login no registro usando a CLI do Docker.
É possível usar a CLI do Docker para efetuar login no registro usando um token de atualização na CLI do {{site.data.keyword.cloud_notm}}:
ibmcloud cr login --client docker
Use a CLI do Docker para efetuar login no registro utilizando um token de acesso:
-
Gere um token de acesso usando
ibmcloud iam oauth-tokens. -
Efetue login no registro usando o comando
docker login. SubstituaBEARER_TOKENpelo seu token de acesso eREGISTRY_DOMAINpelo domínio:docker login -u iambearer --password BEARER_TOKEN REGISTRY_DOMAIN
Usando o Podman para acessar seu namespace
Faça login no registro e extraia uma imagem usando a CLI, onde IMAGE_NAME é o nome da imagem.
ibmcloud cr login --client podman
podman pull IMAGE_NAME
Usando o Skopeo para acessar seu namespace
Efetue login no registro usando a CLI do Skopeo.
É possível usar a CLI do Skopeo para efetuar login no registro, usando um token de acesso e substituindo REGISTRY_DOMAIN pelo domínio:
ibmcloud iam oauth-tokens | sed -ne '/IAM token/s/.* //p' | skopeo login -u iambearer --password-stdin REGISTRY_DOMAIN
Como acessar seus namespaces programaticamente
Use o seu próprio código para acessar seus namespaces no {{site.data.keyword.registrylong_notm}}.
A maioria dos usuários pode usar o ibmcloud cr login para simplificar docker login, mas se você estiver implementando automação ou usando um cliente
diferente, talvez seja melhor fazer a autenticação manualmente. Deve-se apresentar um nome de usuário e uma senha. No {{site.data.keyword.registrylong_notm}}, o nome do usuário indica o tipo de segredo que é apresentado na senha.
Os nomes de usuários a seguir são válidos:
iambearerA senha contém um token de acesso do IAM. Esse tipo de autenticação é de curta duração, mas pode ser derivada de todos os tipos de identidade do IAM. Por exemplo, deibmcloud iam oauth-tokens.iamrefreshA senha contém um token de atualização do IAM, que é usado internamente pelo registro para gerar um token de acesso ao IAM. Esse tipo de autenticação é de duração mais longa. Esse tipo de autenticação é usado pelo comandoibmcloud cr login.iamapikeyA senha é uma chave de API do IAM, que é usada internamente pelo registro para gerar um token de acesso ao IAM. Esse tipo de autenticação é o tipo preferencial para automação. Use uma chave de API do usuário ou uma chave de API do ID de serviço. Para obter mais informações, consulte Como acessar seus namespaces na automação.