讓您的容器登錄內容可供公開使用

為匿名 (未驗證) 提取存取設定 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 內功能狀態的程式。

下一步