阿里云容器镜像仓库服务提供了丰富的权限控制方式,可以细粒度的控制账号对镜像仓库的访问权限。相关文档可以参见访问控制文档
但有时候,我们只是让别人能够访问自己的镜像仓库,不想为TA创建一个子账号然后授权。这种情况下可以利用临时用户名和密码的方式授权。
查看镜像仓库的开发文档,我们发现有这么一个API可以创建一个有效期为1小时的临时用户和密码
Get /tokens HTTP/1.1
调用这个API,可以获得一个临时用户名及密码,以及有效期。那么我们尝试用aliyuncli 来访问一下,看看结果是怎样的:
$ aliyun cr GET /tokens --endpoint=cr.cn-hangzhou.aliyuncs.com
{
"data": {
"expireDate": 1571805689000,
"authorizationToken": "***",
"tempUserName": "cr_temp_user"
},
"requestId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
解读一下返回的结果,tempUserName
的值cr_temp_user
是临时用户名,authorizationToken
的值是对应的临时密码。
用docker登录一下,成功了。
$docker login registry.cn-hangzhou.aliyuncs.com
Username: cr_temp_user
Password: (输入authorizationToken值)
Login Succeeded
那么,这个临时用户名的有效期是多长呢?从上面对API调用的expireDate
值是以ms表示的Unix epoch time。我们可以再Mac上用如下命令解读:
$date -r 1571805689
Wed Oct 23 12:41:29 CST 2019
也就是说有效期为1个小时。
好的,现在你可以放心大胆的让别人临时访问你的镜像仓库了。Enjoy ACR。