通过身份验证启用工件缓存 - Azure CLI

本文是教程系列文章中的第三部分。 第一部分概述了工件缓存及其功能、优势和限制。 在第二部分中,你将了解如何使用 Azure CLI 启用工件缓存功能。

本文将引导你完成使用 Azure CLI 启用具有身份验证的工件缓存的步骤。 必须使用凭据集来执行经过身份验证的拉取或访问专用存储库。

先决条件

配置具有身份验证的工件缓存 - Azure CLI

创建凭据 - Azure CLI

在配置凭据之前,必须在 Azure 密钥保管库中创建和存储机密,并从密钥保管库检索机密。 详细了解如何在密钥保管库中创建和存储凭据以及在密钥保管库中设置和检索机密

  1. 运行 az acr credential set create 命令以创建凭据。

    • 例如,为给定 MyRegistry Azure 容器注册表创建凭据。
    az acr credential-set create 
    -r MyRegistry \
    -n MyRule \
    -l docker.io \ 
    -u https://MyKeyvault.vault.azure.cn/secrets/usernamesecret \
    -p https://MyKeyvault.vault.azure.cn/secrets/passwordsecret
    
  2. 运行 az acr credential set update 以更新凭据集上的用户名或密码 KV 机密 ID。

    • 例如,更新给定 MyRegistry Azure 容器注册表的凭据上的用户名或密码 KV 机密 ID。
    az acr credential-set update -r MyRegistry -n MyRule -p https://MyKeyvault.vault.azure.cn/secrets/newsecretname
    
  3. 运行 az-acr-credential-set-show 以显示凭据。

    • 例如,显示给定 MyRegistry Azure 容器注册表的凭据。
    az acr credential-set show -r MyRegistry -n MyCredSet
    

使用凭据创建缓存规则 - Azure CLI

  1. 运行 az acr cache create 命令以创建缓存规则。

    • 例如,使用给定 MyRegistry Azure 容器注册表的凭据创建缓存规则。
    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyCredSet
    
  2. 运行 az acr cache update 命令以更新缓存规则上的凭据。

    • 例如,更新给定 MyRegistry Azure 容器注册表的缓存规则上的凭据。
    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    
    • 例如,从给定 MyRegistry Azure 容器注册表的现有缓存规则中删除凭据。
    az acr cache update -r MyRegistry -n MyRule --remove-cred-set
    
  3. 运行 az acr cache show 命令以显示缓存规则。

    • 例如,显示给定 MyRegistry Azure 容器注册表的缓存规则。
     az acr cache show -r MyRegistry -n MyRule
    

分配对密钥保管库的权限

  1. 获取用于访问密钥保管库的系统标识的主体 ID。

    PRINCIPAL_ID=$(az acr credential-set show 
                    -n MyCredSet \ 
                    -r MyRegistry  \
                    --query 'identity.principalId' \ 
                    -o tsv) 
    
  2. 在拉取映像之前,运行 az keyvault set-policy 命令以分配对密钥保管库的访问权限。

    • 例如,若要为凭据分配权限,请访问密钥保管库机密
    az keyvault set-policy --name MyKeyVault \
    --object-id $PRINCIPAL_ID \
    --secret-permissions get
    

拉取映像

  1. 使用 Docker 命令按注册表登录服务器名称、存储库名称及其所需标记从缓存中拉取映像。

    • 例如,使用给定注册表登录服务器 myregistry.azurecr.cn 的所需标记 latest 从存储库 hello-world 中拉取映像。
     docker pull myregistry.azurecr.cn/hello-world:latest
    

清理资源

  1. 运行 az acr cache list 命令以列出 Azure 容器注册表中的缓存规则。

    • 例如,列出给定 MyRegistry Azure 容器注册表的缓存规则。
     az acr cache list -r MyRegistry
    
  2. 运行 az acr cache delete 命令以删除缓存规则。

    • 例如,删除给定 MyRegistry Azure 容器注册表的缓存规则。
    az acr cache delete -r MyRegistry -n MyRule
    
  3. 运行 az acr credential set list 以列出 Azure 容器注册表中的凭据。

    • 例如,列出给定 MyRegistry Azure 容器注册表的凭据。
    az acr credential-set list -r MyRegistry
    
  4. 运行 az-acr-credential-set-delete 以删除凭据。

    • 例如,删除给定 MyRegistry Azure 容器注册表的凭据。
    az acr credential-set delete -r MyRegistry -n MyCredSet
    

后续步骤