为了确保您在使用阿里云容器镜像服务ACR时能够安全的访问和管理容器镜像,ACR提供了适用于Docker、containerd等客户端登录的身份认证。身份认证鉴权成功后可安全的进行容器镜像或Helm Chart的上传和下载。
背景信息
访问凭证用于Docker、containerd等客户端登录的身份认证,认证成功后的鉴权是基于配置的RAM访问控制策略,认证鉴权成功后可进行容器镜像或Helm Chart的上传和下载。建议您配置不同于控制台登录的密码,避免在客户端密码泄露影响您的其他业务。
访问凭证独立于阿里云账号及密码。凭证信息包含两类:
固定密码:没有时效限制,请注意妥善保管。如果遗失,可以通过再次设置来重置固定密码。
临时密码:有效时间为1小时。若通过STS方式请求,临时密码的有效时间则等同于本次请求STS Token的有效时间。
主账号和子账号之间是独立的。在配置访问凭证时,主账号的访问凭证子账号不能使用,子账号需要配置自己的访问凭证。
使用固定密码
容器镜像服务ACR暂不支持角色登录,请您使用临时密码登录。
操作步骤
登录容器镜像服务控制台。
在顶部菜单栏,选择所需地域。
在左侧导航栏,选择实例列表。
在实例列表页面单击目标企业版实例。
在企业版实例管理页面左侧导航栏选择 。
在访问凭证页面,单击设置固定密码。
在设置固定密码对话框中,输入密码和确认密码。然后单击确定。
后续步骤
登录企业版实例。
设置专有网络或公网的访问控制。具体操作,请参见配置公网的访问控制或配置专有网络的访问控制。
在终端中输入访问凭证,登录企业版实例。参考示例如下:
docker login <企业版实例名称>-registry.<企业版实例所在的地域>.cr.aliyuncs.com
使用临时密码
前提条件
您可以在OpenAPI Explorer中直接运行GetAuthorizationToken接口获取目标实例的登录临时账号和临时密码。
操作步骤
使用以下内容,通过脚本编辑模式创建自定义权限策略并为RAM用户授权。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetAuthorizationToken", "cr:PullRepository", "cr:PushRepository" ], "Resource": "*" } ] }
执行如下命令,获取临时密钥。
说明ACR_ENDPOINT="<acr service endpoint>"
其中<acr service endpoint>
为ACR实例所在地域的服务接入点。export ALIYUN_AK="<aliyun access key>" # 步骤1查看的AccessKeyID。 export ALIYUN_SK="<aliyun access key secret >" # 步骤1查看的AccessKeySecret。 export ACR_INSTANCE_ID="<id of acr instance >" # 目标ACR实例ID。 export ACR_ENDPOINT="<acr service endpoint>"
aliyun cr GetAuthorizationToken --endpoint $ACR_ENDPOINT --InstanceId $ACR_INSTANCE_ID --access-key-id $ALIYUN_AK --access-key-secret $ALIYUN_SK | jq -r '.AuthorizationToken'
后续步骤
登录企业版实例。
设置专有网络或公网的访问控制。具体操作,请参见配置公网的访问控制或配置专有网络的访问控制。
在终端中输入访问凭证,登录企业版实例。参考示例如下:
docker login --username=cr_temp_user <企业版实例名称>-registry.<企业版实例所在的地域>.cr.aliyuncs.com
相关文档
访问凭证配置完成后,您可以参考使用企业版实例推送和拉取镜像更好地管理和存储容器镜像。