![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL2YWYjlTMhZmNwMDZkNmYwczMwATNlZzNyImM5E2NwUGOiFjN3EmNx8CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
阿裡雲容器鏡像倉庫服務提供了豐富的權限控制方式,可以細粒度的控制賬号對鏡像倉庫的通路權限。相關文檔可以參見
通路控制文檔但有時候,我們隻是讓别人能夠通路自己的鏡像倉庫,不想為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。