Azure CLI ile Azure Container Registry'nizde yapıt önbelleğini etkinleştirme

Bu makalede, Azure Container Registry'nizde (ACR) yapıt önbelleği özelliğini kimlik doğrulamasıyla veya kimlik doğrulaması olmadan etkinleştirmek için Azure CLI kullanmayı öğreneceksiniz.

Burada listelenen önkoşullara ek olarak etkin aboneliği olan bir Azure hesabına ihtiyacınız vardır. Ücretsiz hesap oluşturun.

Önkoşullar

Bu makalede adlı MyRegistryörnek bir ACR örneği kullanacağız.

Kimlik bilgilerini oluşturma

Kimlik bilgilerini yapılandırmadan önce Azure Key Vault'ta gizli dizi oluşturup depolayabildiğinizden ve Key Vault'tangizli dizileri alabildiğinizden emin olun.

  1. komutunu çalıştırın az acr credential set create:

    az acr credential-set create 
    -r MyRegistry \
    -n MyDockerHubCredSet \
    -l docker.io \ 
    -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \
    -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
    
  2. Kimlik bilgisi kümesindeki kullanıcı adı veya parola Key Vault gizli dizi kimliğini güncelleştirmek için komutunu çalıştırın az acr credential set update :

    az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Kimlik bilgilerini göstermek için az acr credential-set show komutunu çalıştırın:

    az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
    

Önbellek kuralı oluşturma

Ardından, depodan yapıtları önbelleğinize çeken önbellek kuralını oluşturun ve yapılandırın.

  1. Yeni bir önbellek kuralı oluşturmak için komutunu çalıştırın az acr cache create:

    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
    
  2. Önbellek kuralındaki kimlik bilgilerini güncelleştirmek için komutunu çalıştırın az acr cache update:

    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    

    Kimlik bilgilerini kaldırmanız gerekiyorsa komutunu çalıştırın az acr cache update -r MyRegistry -n MyRule --remove-cred-set.

  3. Önbellek kurallarını göstermek için komutunu çalıştırın az acr cache show:

     az acr cache show -r MyRegistry -n MyRule
    

Tavsiye

Kimlik bilgilerini kullanmadan önbellek kuralı oluşturmak için, kimlik bilgileri belirtilmeden aynı komutu kullanın. Örneğin, az acr cache create --registry Myregistry --name MyRule --source-repo MySourceRepository --target-repo MyTargetRepository. Docker Hub gibi bazı kaynaklar için önbellek kuralı oluşturmak için kimlik bilgileri gerekir.

Azure RBAC ile Key Vault'a izin atama

Azure Key Vault'a erişebilmeleri için kullanıcılara uygun izinleri atamak için Azure RBAC'yi kullanabilirsiniz.

Key Vault'a Microsoft.KeyVault/vaults/secrets/getSecret/action erişmek için izin gereklidir. Bu eylemi içeren en az ayrıcalıklı rol olduğundan, Key Vault Gizli Dizileri Kullanıcı Azure yerleşik rolü genellikle atanır. Alternatif olarak, bu izni içeren özel bir rol oluşturabilirsiniz.

Kullanılan adımlar, Azure CLI veya Bash kullanıp kullanmadığınıza bağlı olarak değişir.

  1. Key Vault'a erişmek için kullanılan sistem kimliğinin asıl kimliğini alın:

    az acr credential-set show --name MyCredentialSet --registry MyRegistry 
    

    3. adımda ihtiyacınız olacak ana kimlik değerini not edin.

  2. Kaynak kimliğini almak için Key Vault'un özelliklerini görüntüleyin:

    az keyvault show --name MyKeyVaultName --resource-group MyResouceGroup
    

    Sonraki adım için bu kaynak kimliği değerine ihtiyacınız olacak.

  3. Kimlik kümesinin sistem kimliğine Key Vault Gizli Anahtarları Kullanıcı rolünü atayın.

    az role assignment create --role "Key Vault Secrets User" --assignee CredentialSetPrincipalID --scope KeyVaultResourceID 
    
    

Tavsiye

Key Vault'un kaynak kimliğini kullanmak, Key Vault'taki tüm gizli bilgilere erişim sağlar. İsterseniz, yalnızca kullanıcı adı ve parola bilgilerine erişim verebilirsiniz. Bunu yapmak için, 2. adımdaki komut yerine aşağıdaki komutları çalıştırarak yalnızca kullanıcı adı ve parola gizli dizilerini alın:

az keyvault secret show --vault-name MyKeyVaultName --name MyUsernameSecretName
az keyvault secret show --vault-name MyKeyVaultName --name MyPasswordSecretName

Ardından, önce KeyVaultResourceID dizisini kullanıcı adı gizlisinin kimliği ile, ardından KeyVaultResourceID dizisini parola gizlisinin kimliği ile değiştirerek 3. adımı iki kez gerçekleştirin.

Erişim ilkeleriyle Key Vault'a izin atama

Alternatif olarak, izin atamak için erişim ilkelerini kullanabilirsiniz.

  1. Key Vault'a erişmek için kullanılan sistem kimliğinin asıl kimliğini alın:

    az acr credential-set show --name CredentialSet --registry MyRegistry
    

    Sonraki adımda gerek duyacağınız için asıl kimlik değerini not alın.

  2. az keyvault set-policy Görüntüyü çekmeden önce Key Vault'a erişim atamak için komutunu çalıştırın. Örneğin, KeyVault sırrına erişmek üzere kimlik bilgilerine izin vermek için:

    az keyvault set-policy --name MyKeyVault --object-id MyCredentialSetPrincipalID --secret-permissions get
    

Resminizi çekin

Önbelleğinizden görüntü çekmek için Docker komutunu kullanın ve kayıt defteri oturum açma sunucusu adını, depo adını ve istenen etiketini sağlayın. Örneğin, kayıt defteri oturum açma sunucusu hello-worldiçin istenen etikete latest sahip bir görüntüyü depodan myregistry.azurecr.io çekmek için şunu çalıştırın:

 docker pull myregistry.azurecr.io/hello-world:latest

Kaynakları temizleme

Artık gerekli olmadığında, oluşturduğunuz önbellek kuralını ve kimlik bilgilerini silin.

  1. Önbellek kuralını silmek için komutunu çalıştırın az acr cache delete:

    az acr cache delete -r MyRegistry -n MyRule
    
  2. Kimlik bilgilerini silmek için komutunu çalıştırın az acr credential-set delete:

    az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
    

Sonraki adımlar