Share via


啟用具有驗證的成品快取:Azure CLI

本文是六部分教學課程系列的第五部分。 第一部分提供快取成品快取的概觀,以及其功能、優點和限制。 在第二部分中,您會了解如何使用 Azure 入口網站,以啟用成品快取功能。 在第三部分中,您會了解如何使用 Azure CLI,以啟用成品快取功能。 在第四部分中,您會了解如何使用 Azure 入口網站啟用具有驗證的成品快取功能。

本文將逐步引導您使用 Azure CLI 啟用具有驗證的成品快取。 您必須使用認證以執行已驗證的提取,或存取私人存放庫。

必要條件

設定具有驗證的成品快取:Azure CLI

建立認證:Azure CLI

設定認證之前,您必須在 Azure KeyVault 中建立和儲存祕密,並從 Key Vault 擷取祕密。 深入了解如何在 Key Vault 中建立和儲存認證,以及從 Key Vault 設定和擷取祕密

  1. 執行 az acr credential set create 命令以建立認證。

    • 例如,為指定的 MyRegistry Azure Container Registry 建立認證。
    az acr credential-set create 
    -r MyRegistry \
    -n MyRule \
    -l docker.io \ 
    -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \
    -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
    
  2. 執行 az acr credential set update 以更新認證集上的使用者名稱或密碼 KV 祕密識別碼。

    • 例如,為指定的 MyRegistry Azure Container Registry 更新認證上的使用者名稱或密碼 KV 祕密識別碼。
    az acr credential-set update -r MyRegistry -n MyRule -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. 執行 az-acr-credential-set-show 以顯示認證。

    • 例如,顯示指定 MyRegistry Azure Container Registry 的認證。
    az acr credential-set show -r MyRegistry -n MyCredSet
    

建立具有認證的快取規則:Azure CLI

  1. 執行 az acr cache create 命令以建立快取規則。

    • 例如,為指定的 MyRegistry Azure Container Registry,建立具有認證的快取規則。
    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyCredSet
    
  2. 執行 az acr cache update 命令,以更新快取規則上的認證。

    • 例如,為指定的 MyRegistry Azure Container Registry 更新快取規則上的認證。
    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    
    • 例如,從指定 MyRegistry Azure Container Registry 的現有快取規則中移除認證。
    az acr cache update -r MyRegistry -n MyRule --remove-cred-set
    
  3. 執行 az acr cache show 命令以顯示快取規則。

    • 例如,顯示指定 MyRegistry Azure Container Registry 的快取規則。
     az acr cache show -r MyRegistry -n MyRule
    

將權限指派給 Key Vault

  1. 取得用以存取 Key Vault 的系統身分識別主體標識碼。

    PRINCIPAL_ID=$(az acr credential-set show 
                    -n MyCredSet \ 
                    -r MyRegistry  \
                    --query 'identity.principalId' \ 
                    -o tsv) 
    
  2. 執行 az keyvault set-policy 命令,以在提取映像之前,將存取權指派給 Key Vault。

    • 例如,指派認證存取 KeyVault 祕密的權限
    az keyvault set-policy --name MyKeyVault \
    --object-id $PRINCIPAL_ID \
    --secret-permissions get
    

提取映像

  1. 使用 Docker 命令,依據登錄登入伺服器名稱、存放庫名稱及其所需標籤從快取提取映像。

    • 例如,針對指定的登錄登入伺服器 myregistry.azurecr.io,從所需標籤為 latest 的存放庫 hello-world 提取映像。
     docker pull myregistry.azurecr.io/hello-world:latest
    

清除資源

  1. 執行 az acr cache list 命令,以列出 Azure Container Registry 中的快取規則。

    • 例如,列出指定 MyRegistry Azure Container Registry 的快取規則。
     az acr cache list -r MyRegistry
    
  2. 執行 az acr cache delete 命令,以刪除快取規則。

    • 例如,刪除指定 MyRegistry Azure Container Registry 的快取規則。
    az acr cache delete -r MyRegistry -n MyRule
    
  3. 執行 az acr credential set list,以列出 Azure Container Registry 中的認證。

    • 例如,列出指定 MyRegistry Azure Container Registry 的認證。
    az acr credential-set list -r MyRegistry
    
  4. 執行 az-acr-credential-set-delete 以刪除認證。

    • 例如,刪除指定 MyRegistry Azure Container Registry 的認證。
    az acr credential-set delete -r MyRegistry -n MyCredSet
    

下一步

  • 請前進到下一篇文章,以查看登錄快取的疑難排解指南。