IBM Cloud Docs
使用受信任的配置文件访问 Container Registry

使用受信任的配置文件访问 Container Registry

您可以使用受信任配置文件授予不同的 IBM Cloud® 身份访问您账户中的 IBM Cloud Container Registry 资源。 根据公司目录中的SAML属性,自动授予联合身份用户访问您帐户的权限。

用户无需成为账户成员即可创建可信的个人资料。 如果用户的身份提供商( IdP )与信任条件中使用的 IdP 匹配,则可以使用该配置文件。

当您首次创建可信配置文件时,您可以与以下实体类型建立信任条件:联合用户和服务ID。 创建可信资料后,您可以添加更多条件,在同一资料中组合多个实体类型。

有关可信配置文件的更多信息,请参阅 创建可信配置文件

使用可信配置文件访问自动化中的命名空间

您可以使用服务ID API密钥来自动推送和拉取容器镜像,使其进出受信任配置文件有权访问的命名空间。

您可以在以下位置使用服务标识 API 密钥:

  • IBM Cloud Kubernetes Service 或 Red Hat OpenShift on IBM Cloud 集群。
  • Kubernetes 和 集群不在 上。Red Hat® OpenShift® IBM Cloud
  • Docker CLI 和其他客户机。

创建可信的个人资料

您需要在同一账户下创建一个可信的个人资料,以便访问您想要访问的注册资源。 然后可以将单独账户中的服务ID添加到该可信配置文件中,以建立信任,请参阅 使用CLI建立与服务ID的信任。 记下可信的个人资料ID,因为该ID将作为登录的用户名。

手动创建服务标识 API 密钥

创建服务 ID API 密钥,用于登录注册表。

要创建服务 ID API 密钥,请参阅 管理服务 ID API 密钥ibmcloud iam service-api-key-create.

使用客户端软件进行自动化身份验证

使用通用客户端通过API密钥登录注册表。

客户需要API密钥、用户名和域名,请将 API_KEY 替换为您的API密钥,将 PROFILE_ID 替换为可信配置文件ID,将 REGISTRY_DOMAIN 替换为设置命名空间的注册表域名。

注册域名
区域 前身为 REGISTRY_DOMAIN
global 不适用 icr.io
au-syd ap-south au.icr.io
br-sao 不适用 br.icr.io
ca-tor 不适用 ca.icr.io
eu-de eu-central de.icr.io
eu-es 不适用 es.icr.io
eu-gb uk-south uk.icr.io
jp-osa 不适用 jp2.icr.io
jp-tok ap-north jp.icr.io
us-south 不适用 us.icr.io

如需了解如何在 Continuous Delivery 管道中使用 IBM Cloud Container Registry,请参阅 使用私有图片注册表

以下客户端提供了如何自动验证注册表的示例:

如果收到 400 Bad Request 消息,说明用户名和密码组合无效。

使用 Buildah 通过可信配置文件与注册表进行身份验证

您可以使用 Buildah 与注册表进行身份验证,这样就可以向注册表推送和从注册表拉取映像。

使用 API 密钥、配置文件 ID 和 通过运行以下 Buildah 命令登录注册表,替换 PROFILE_ID 使用受信任的个人资料 ID,API_KEY 使用 API 密钥,以及 REGISTRY_DOMAIN 使用域名:

buildah login -u PROFILE_ID -p API_KEY REGISTRY_DOMAIN

使用 Docker 通过可信配置文件与注册表进行身份验证

可以使用 Docker 通过注册表进行认证,以便可以向注册表推送映像,以及从注册表拉出映像。

使用API密钥和 域名 登录注册表,运行以下 Docker 命令,将 PROFILE_ID 替换为可信配置文件ID,将 API_KEY 替换为API密钥,将 REGISTRY_DOMAIN 替换为域名:

docker login -u PROFILE_ID -p API_KEY REGISTRY_DOMAIN

使用 Podman 通过可信配置文件与注册表进行身份验证

您可以使用 Podman 与注册表进行身份验证,这样就可以向注册表推送和从注册表拉取映像。

使用API密钥和 域名 登录注册表,运行以下 Podman 命令,将 PROFILE_ID 替换为可信配置文件ID,将 API_KEY 替换为API密钥,将 REGISTRY_DOMAIN 替换为域名:

podman login -u PROFILE_ID -p API_KEY REGISTRY_DOMAIN

使用 Skopeo 通过可信配置文件与注册表进行身份验证

您可以使用 Skopeo 与注册表进行身份验证,这样您就可以向注册表推送或从注册表拉取映像。

例如,您可以使用以下 Skopeo 命令从 Docker Hub中提取图像并将其推送到您的命名空间。 将 REGISTRY_DOMAIN 替换为 您的域名,将 NAMESPACE 替换为您的命名空间,将 PROFILE_ID 替换为可信配置文件ID,将 API_KEY 替换为您的API密钥:

skopeo --insecure-policy --override-os linux copy docker://busybox:latest docker://REGISTRY_DOMAIN/NAMESPACE/busybox:latest --dest-creds PROFILE_ID:API_KEY