讓您的容器登錄內容可供公開使用
為匿名 (未驗證) 提取存取設定 Azure 容器登錄是選擇性功能,可讓任何具有網際網路存取權的使用者能夠從登錄中提取任何內容。
匿名提取存取是一項預覽功能,適用於標準和進階服務層。 若要設定匿名提取存取,請使用 Azure CLI (2.21.0 版或更新版本) 來更新登錄。 若要安裝或升級,請參閱安裝 Azure CLI。
關於匿名提取存取
根據預設,只有已驗證的使用者才有權從 Azure 容器登錄提取或推送內容。 啟用匿名 (未經驗證的) 提取存取,會使所有登錄內容可供公開讀取 (提取)。 匿名提取存取可用於不需要使用者驗證的案例,例如散發公用容器映像。
- 藉由更新現有登錄的屬性來啟用匿名提取存取。
- 啟用匿名提取存取後,您可以隨時停用該存取。
- 未經驗證的用戶端只能使用資料平面作業。
- 登錄可能會對未經驗證的要求進行高比率的節流。
- 如果您先前已向登錄進行驗證,請務必先清除認證,再嘗試進行匿名提取作業。
警告
匿名提取存取目前會套用至登錄中的所有存放庫。 如果使用存放庫範圍的權杖來管理存放庫存取,則所有使用者都可以從啟用匿名提取的登錄中提取這些存放庫。 建議在啟用匿名提取存取時刪除權杖。
設定匿名提取存取
使用者可以使用 Azure CLI 來啟用、停用及查詢匿名提取存取的狀態。 下列範例會示範如何啟用、停用和查詢匿名提取存取的狀態。
啟用匿名提取存取
使用 az acr update 命令更新登錄,並傳遞 --anonymous-pull-enabled
參數。 依預設會在登錄中停用匿名提取。
az acr update --name myregistry --anonymous-pull-enabled
重要
如果您先前已使用 Docker 認證向登錄進行驗證,請執行 docker logout
以確保您在嘗試匿名提取作業之前已清除現有的認證。 否則,您可能會看到類似「提取存取遭拒」的錯誤訊息。
使用 docker login
以及標記用於推送到您的登錄的映像時,請記得一定要指定完整登錄名稱 (全部小寫)。 在所提供的範例中,完整名稱為 myregistry.azurecr.io
。
如果您先前已使用 Docker 認證向登錄進行驗證,請執行下列命令來清除現有的認證,否則會清除任何先前的驗證。
docker logout myregistry.azurecr.io
這有助於您嘗試匿名提取作業。 如果您遇到任何問題,您可能會看到類似「提取存取遭拒」的錯誤訊息。
停用匿名提取存取
將 --anonymous-pull-enabled
設定為 false
以停用匿名提取存取。
az acr update --name myregistry --anonymous-pull-enabled false
查詢匿名提取存取的狀態
使用者可以使用 az acr show 命令搭配 --query 參數來查詢 “anonymous-pull” 的狀態。 以下是範例:
az acr show -n <registry_name> --query anonymousPullEnabled
此命令會傳回布林值,顯示「匿名提取」是否已啟用 (true) 或已停用 (false)。 這可簡化使用者驗證 ACR 內功能狀態的流程。