Aracılığıyla paylaş


ACR Görevlerinde Azure tarafından yönetilen kimlik kullanma

Bir ACR görevinde Azure kaynakları için yönetilen kimliği etkinleştirin; böylece görev, kimlik bilgilerini sağlamaya veya yönetmeye gerek kalmadan diğer Azure kaynaklarına erişebilir. Örneğin, bir görev adımının kapsayıcı görüntülerini başka bir kayıt defterine çekmesini veya göndermesini sağlamak için yönetilen kimlik kullanın.

Bu makalede, ACR görevinde kullanıcı tarafından atanan veya sistem tarafından atanan yönetilen kimliği etkinleştirmek için Azure CLI'yi kullanmayı öğreneceksiniz. Azure Cloud Shell'i veya Azure CLI'nın yerel yüklemesini kullanabilirsiniz. Yerel olarak kullanmak isterseniz, sürüm 2.0.68 veya üzeri gereklidir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Çizim amacıyla, bu makaledeki örnek komutlar az acr task create komutunu kullanarak yönetilen kimliği etkinleştiren temel bir görüntü derleme görevi oluşturur. Yönetilen kimlik kullanarak bir ACR görevinden güvenli kaynaklara erişmeye yönelik örnek senaryolar için bkz:

Yönetilen kimlik neden kullanılır?

Azure kaynakları için yönetilen kimlik, seçilen Azure hizmetlerine Microsoft Entra Id'de otomatik olarak yönetilen bir kimlik sağlar. Bir ACR görevini yönetilen kimlikle yapılandırarak görevin, görev adımlarında kimlik bilgilerini geçirmeden diğer güvenli Azure kaynaklarına erişebilmesini sağlayabilirsiniz.

Yönetilen kimlikler iki türdedir:

  • Birden çok kaynağa atayabileceğiniz ve istediğiniz kadar kalıcı hale getirmek için kullanıcı tarafından atanan kimlikler. Kullanıcı tarafından atanan kimlikler şu anda önizleme aşamasındadır.

  • ACR görevi gibi belirli bir kaynağa özgü olan ve bu kaynağın kullanım ömrü boyunca devam eden sistem tarafından atanan kimlik.

Bir ACR görevinde kimlik türlerinden birini veya her ikisini de etkinleştirebilirsiniz. Kimlik için herhangi bir güvenlik sorumlusu gibi başka bir kaynağa erişim izni verin. Görev çalıştırıldığında, erişim gerektiren herhangi bir görev adımında kaynağa erişmek için kimliği kullanır.

Yönetilen kimlik kullanma adımları

Yönetilen kimliği ACR göreviyle kullanmak için bu üst düzey adımları izleyin.

1. (İsteğe bağlı) Kullanıcı tarafından atanan kimlik oluşturma

Kullanıcı tarafından atanan bir kimlik kullanmayı planlıyorsanız, mevcut bir kimliği kullanın veya Azure CLI veya diğer Azure araçlarını kullanarak kimliği oluşturun. Örneğin az identity create komutunu kullanın.

Yalnızca sistem tarafından atanan bir kimlik kullanmayı planlıyorsanız bu adımı atlayın. ACR görevini oluştururken sistem tarafından atanan bir kimlik oluşturursunuz.

2. ACR görevinde kimliği etkinleştirme

ACR görevi oluşturduğunuzda, isteğe bağlı olarak kullanıcı tarafından atanan kimliği, sistem tarafından atanan bir kimliği veya her ikisini birden etkinleştirin. Örneğin, Azure CLI'da --assign-identity az acr task create komutunu çalıştırdığınızda parametresini geçirin.

Sistem tarafından atanan bir kimliği etkinleştirmek için, veya assign-identity [system]değeri olmadan geçirin--assign-identity. Aşağıdaki örnek komut, görüntüyü oluşturan ve sistem tarafından atanan yönetilen kimliği etkinleştiren genel bir GitHub deposundan hello-world bir Linux görevi oluşturur:

az acr task create \
    --image hello-world:{{.Run.ID}} \
    --name hello-world --registry MyRegistry \
    --context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
    --file Dockerfile \
    --commit-trigger-enabled false \
    --assign-identity

Kullanıcı tarafından atanan bir kimliği etkinleştirmek için, kimliğin kaynak kimliğinin değerini geçirin--assign-identity. Aşağıdaki örnek komut, görüntüyü oluşturan ve kullanıcı tarafından atanan yönetilen kimliği etkinleştiren genel bir GitHub deposundan hello-world bir Linux görevi oluşturur:

az acr task create \
    --image hello-world:{{.Run.ID}} \
    --name hello-world --registry MyRegistry \
    --context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
    --file Dockerfile \
    --commit-trigger-enabled false
    --assign-identity <resourceID>

az identity show komutunu çalıştırarak kimliğin kaynak kimliğini alabilirsiniz. myResourceGroup kaynak grubundaki myUserAssignedIdentity kimliğinin kaynak kimliği şu biçimdedir:

"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUserAssignedIdentity"

3. Diğer Azure kaynaklarına erişmek için kimlik izinleri verme

Görevinizin gereksinimlerine bağlı olarak, diğer Azure kaynaklarına erişmek için kimlik izinlerini verin. Örnekler şunları içerir:

  • Yönetilen kimliğe Azure'da hedef kapsayıcı kayıt defterine çekme, gönderme ve çekme veya diğer izinlerle bir rol atayın. Kayıt defteri rollerinin tam listesi için bkz. Azure Container Registry’deki roller ve izinler.
  • Yönetilen kimliğe Azure anahtar kasasında gizli dizileri okumak için bir rol atayın.

Kaynaklara rol tabanlı erişimi yönetmek için Azure CLI'yi veya diğer Azure araçlarını kullanın. Örneğin, kimliğe kaynağa bir rol atamak için az role assignment create komutunu çalıştırın.

Aşağıdaki örnek, yönetilen kimliğe kapsayıcı kayıt defterinden çekme izinlerini atar. komutu, görev kimliğinin asıl kimliğini ve hedef kayıt defterinin kaynak kimliğini belirtir.

az role assignment create \
  --assignee <principalID> \
  --scope <registryID> \
  --role acrpull

4. (İsteğe bağlı) Göreve kimlik bilgileri ekleme

Göreviniz görüntüleri başka bir özel kayıt defterine çekmek veya göndermek veya diğer kaynaklara erişmek için kimlik bilgilerine ihtiyaç duyuyorsa, göreve kimlik bilgileri ekleyin. Kimlik bilgileri eklemek için az acr task credential add komutunu çalıştırın ve kimliğin --use-identity kimlik bilgilerine erişebildiğini belirtmek için parametresini geçirin.

Örneğin, Azure kapsayıcı kayıt defteri hedef kayıt defteriyle kimlik doğrulaması yapmak üzere sistem tarafından atanan bir kimliğin kimlik bilgilerini eklemek için geçirinuse-identity [system]:

az acr task credential add \
    --name helloworld \
    --registry myregistry \
    --login-server targetregistry.azurecr.io \
    --use-identity [system]

Kayıt defteri hedef kayıt defteriyle kimlik doğrulaması yapmak üzere kullanıcı tarafından atanan bir kimliğin kimlik bilgilerini eklemek için, kimliğin istemci kimliğinin değerini geçirinuse-identity. Örnek:

az acr task credential add \
    --name helloworld \
    --registry myregistry \
    --login-server targetregistry.azurecr.io \
    --use-identity <clientID>

az identity show komutunu çalıştırarak kimliğin istemci kimliğini alabilirsiniz. İstemci kimliği, formunun xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxGUID'sidir.

--use-identity Kayıt defterinde genel ağ erişimi devre dışı bırakılmışsa ve ACR görevlerini çalıştırmak için yalnızca belirli güvenilen hizmetlere bağlıysa parametresi isteğe bağlı değildir. Bkz. Güvenilir hizmet olarak ACR Görevleri örneği.

5. Görevi çalıştırma

Bir görevi yönetilen kimlikle yapılandırdıktan sonra, görevi çalıştırın. Örneğin, bu makalede oluşturulan görevlerden birini test etmek için az acr task run komutunu kullanarak el ile tetikleyin. Ek, otomatik görev tetikleyicileri yapılandırdıysanız, görev otomatik olarak tetiklendiğinde çalışır.

Sonraki adımlar

Bu makalede, ACR görevinde kullanıcı tarafından atanan veya sistem tarafından atanan yönetilen kimliği etkinleştirmeyi ve kullanmayı öğrendiniz. Yönetilen kimlik kullanarak bir ACR görevinden güvenli kaynaklara erişme senaryoları için bkz: