天天看點

利用臨時使用者名和密碼登入容器鏡像倉庫

利用臨時使用者名和密碼登入容器鏡像倉庫

阿裡雲容器鏡像倉庫服務提供了豐富的權限控制方式,可以細粒度的控制賬号對鏡像倉庫的通路權限。相關文檔可以參見

通路控制文檔

但有時候,我們隻是讓别人能夠通路自己的鏡像倉庫,不想為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。

繼續閱讀