Azure kapsayıcı kayıt defteriyle kimlik doğrulama

Azure kapsayıcı kayıt defteriyle kimlik doğrulaması yapmak için her biri bir veya daha fazla kayıt defteri kullanım senaryosu için geçerli olan çeşitli yollar vardır.

Önerilen yöntemler şunlardır:

Azure Kubernetes Service (AKS) veya başka bir Kubernetes kümesiyle kapsayıcı kayıt defteri kullanıyorsanız bkz. Kubernetes'teAzure Container Registry kimlik doğrulaması senaryoları.

Kimlik doğrulaması seçenekleri

Aşağıdaki tabloda, kullanılabilir kimlik doğrulama yöntemleri ve tipik senaryolar liste almaktadır. Ayrıntılar için bağlantılı içeriğe bakın.

Yöntem Kimlik doğrulaması Senaryolar Azure rol tabanlı erişim denetimi (Azure RBAC) Sınırlamalar
Bireysel AD kimliği  az acr login Azure CLI'de

Connect-AzContainerRegistryAzure PowerShell
Geliştiriciler, testçiler tarafından etkileşimli itme/çekme Yes AD belirteci 3 saatte bir yenilenmeli
AD hizmet sorumlusu  docker login

az acr login Azure CLI'de

Connect-AzContainerRegistryAzure PowerShell

API'lerde veya araçlarda kayıt defteri oturum açma ayarları

Kubernetes çekme gizli   
CI/CD işlem hattından katılımsız anında yükleme

Azure'a veya dış hizmetlere katılımsız çekme
Yes SP parolası varsayılan süre sonu 1 yıl
Azure kaynakları için yönetilen kimlik  docker login

az acr login Azure CLI'de

Connect-AzContainerRegistryAzure PowerShell
Azure CI/CD işlem hattından katılımsız anında yükleme

Azure hizmetlerde katılımsız çekme

Yes Yalnızca Azure kaynakları için yönetilen kimlikleri destekleyen belirli Azure hizmetlerinden kullanın
AKS kümesi yönetilen kimliği  AKS kümesi oluşturulduğunda veya güncelleştirildiğinde kayıt defteri ekleme Aynı veya farklı bir abonelikte AKS kümesine katılımsız çekme Hayır, yalnızca çekme erişimi Yalnızca AKS kümesiyle kullanılabilir

Kiracılar arası kimlik doğrulaması için kullanılamaz
AKS kümesi hizmet sorumlusu  AKS kümesi oluşturulduğunda veya güncelleştirildiğinde etkinleştirme Başka bir AD kiracısı kayıt defterinden AKS kümesine katılımsız çekme Hayır, yalnızca çekme erişimi Yalnızca AKS kümesiyle kullanılabilir
Yönetici kullanıcı  docker login  Bireysel geliştirici veya test uzmanı tarafından etkileşimli itme/çekme

Görüntünün kayıt defterinden Azure App Service veya Azure Container Instances
Hayır, her zaman çekme ve anında erişim Kayıt defteri başına tek hesap, birden çok kullanıcı için önerilmez
Depo kapsamlı erişim belirteci  docker login

az acr login Azure CLI'de

Connect-AzContainerRegistryAzure PowerShell

Kubernetes çekme gizli 
Bireysel geliştirici veya test uzmanı tarafından depoya etkileşimli itme/çekme

Tek tek sistem veya dış cihaz tarafından depodan katılımsız çekme
Yes Şu anda AD kimliğiyle tümleşik değil

Azure AD ile bireysel oturum açma

Görüntüleri bir geliştirme iş istasyonuna çekme ve oluşturduğunuz kayıt defterine itme gibi doğrudan kayıt defteriniz ile çalışırken, bireysel Azure kimliğinizi kullanarak kimlik doğrulamasından geçin. az loginkomutuyla Azure CLI'de oturum açma ve az acr login komutunu çalıştırma:

az login
az acr login --name <acrName>

ile oturum açabilirsiniz. CLI, oturumda kayıt defterinizin kimliğini sorunsuz bir şekilde doğrulamak için az acr loginaz login yürütülürken oluşturulan belirteci kullanır. Kimlik doğrulama akışını tamamlamak için Ortamınıza Docker CLI ve Docker daemon'larının yüklenmiş ve çalışıyor olması gerekir. az acr logindocker istemcisini dosyada bir Azure Active Directory belirteci ayarlamak için docker.config kullanır. Bu şekilde oturum açtıktan sonra kimlik bilgileriniz önbelleğe kaydedilir ve oturumda sonraki komutlar docker için kullanıcı adı veya parola gerekli değildir.

İpucu

Ayrıca, kayıt defterinize OCI yapıtları gibi Docker görüntüleri dışında yapıtlar itmek veya çekmek istediğinizde az acr login tek bir kimliğin kimliğini doğrulamak az acr login

Kayıt defteri erişimi için tarafından kullanılan belirteç 3 saat boyunca geçerlidir, bu nedenle bir komut çalıştırmadan önce her zaman az acr login kayıt defterinde oturum açmanız az acr logindocker önerilir. Belirtecin süresi dolırsa, yeniden kimlik doğrulaması az acr login yapmak için komutunu kullanarak belirteci yenileyin.

Azure az acr login kimlikleriyle az acr login Bazı senaryolarda, Azure AD'de kendi bireysel kimliğiniz ile bir kayıt defterinde oturum açmak veya belirli Azure rollerine ve izinlerine sahip diğer Azure kullanıcılarını yapılandırmak istiyor olabilir. Hizmetler arası senaryolarda veya tek tek erişimi yönetmek istemeyebilirsiniz. Bir çalışma grubu veya geliştirme iş akışının ihtiyaçlarını karşılamak için Azure kaynakları için yönetilen kimlikle de oturum açabilirsiniz.

az acr login with --expose-token

Bazı durumlarda, Ortamınız içinde az acr login Docker daemon'ı çalışmıyorsa ile kimlik doğrulaması gerekir. Örneğin, Azure Cloud Shell'da Docker CLI sağlayan ancak Docker daemon'ı çalıştırmadan betikte az acr login çalıştırmanız gerekir.

Bu senaryo için önce az acr login parametresiyle --expose-token çalıştırın. Bu seçenek, Docker CLI aracılığıyla oturum açmak yerine erişim belirteci sağlar.

az acr login --name <acrName> --expose-token

Çıkışta erişim belirteci burada kısaltılmış olarak görüntülenir:

{
  "accessToken": "eyJhbGciOiJSUzI1NiIs[...]24V7wA",
  "loginServer": "myregistry.azurecr.io"
}

Kayıt defteri kimlik doğrulaması için, belirteç kimlik bilgilerini güvenli bir konumda depolamanız ve Docker oturum açma kimlik bilgilerini yönetmek için önerilen uygulamaları izlemenizi öneririz. Örneğin, belirteç değerini bir ortam değişkende depolar:

TOKEN=$(az acr login --name <acrName> --expose-token --output tsv --query accessToken)

Ardından, kullanıcı docker login adı 00000000-0000-0000-0000-000000000000 olarak geçerek ve erişim belirteci parola olarak kullanarak çalıştırın:

docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password $TOKEN

Benzer şekilde, kayıt defteriyle kimlik doğrulaması yapmak az acr login için helm registry login komutuyla tarafından döndürülen belirteci kullanabilirsiniz:

echo $TOKEN | helm registry login myregistry.azurecr.io \
            --username 00000000-0000-0000-0000-000000000000 \
            --password-stdin

Hizmet sorumlusu

Kayıt defterinize bir hizmet sorumlusu atarsanız, uygulamanız veya hizmetiniz bunu gözetimsiz kimlik doğrulaması için kullanabilir. Hizmet sorumluları, Azure rol tabanlı erişim denetimi 'ne (Azure RBAC) bir kayıt defterine izin verir ve bir kayıt defterine birden çok hizmet sorumlusu atayabilirsiniz. Birden çok hizmet sorumlusu, farklı uygulamalar için farklı erişim tanımlamanızı sağlar.

Bir kapsayıcı kayıt defteri için kullanılabilir roller şunlardır:

  • Acrpull: çekme

  • Acrpush: çekme ve gönderme

  • Sahip: diğer kullanıcılara roller çekme, gönderme ve atama

Rollerin tüm listesi için bkz. Azure Container Registry rolleri ve izinleri.

CLı betikleri için bir Azure Container Registry ile kimlik doğrulamaya yönelik bir hizmet sorumlusu oluşturma ve daha fazla rehberlik için bkz. hizmet sorumluları ile Azure Container Registry kimlik doğrulaması.

Yönetici hesabı

Her kapsayıcı kayıt defteri, varsayılan olarak devre dışı bırakılan bir yönetici kullanıcı hesabı içerir. yönetici kullanıcıyı etkinleştirebilir ve Azure portal kimlik bilgilerini yönetebilir veya azure clı, Azure PowerShell ya da diğer azure araçlarını kullanarak yapılandırabilirsiniz. Yönetici hesabının kayıt defteri için tam izinleri vardır.

Yönetici hesabı şu anda bir kapsayıcı kayıt defterinden belirli Azure hizmetlerine görüntü dağıtmaya yönelik bazı senaryolar için gereklidir. Örneğin, bir kayıt defterinden doğrudan Azure Container Instances veya kapsayıcılar için Azure Web Apps'e bir kapsayıcı görüntüsü dağıtmak üzere Azure Portal kullandığınızda yönetici hesabı gerekir.

Önemli

Yönetici hesabı, genellikle test amacıyla tek bir kullanıcının kayıt defterine erişmesi için tasarlanmıştır. Yönetici hesabı kimlik bilgilerini birden çok kullanıcı arasında paylaşmayı önermiyoruz. Yönetici hesabıyla kimlik doğrulaması yapan tüm kullanıcılar, kayıt defterine gönderme ve çekme erişimi olan tek bir kullanıcı olarak görüntülenir. Bu hesabın değiştirilmesi veya devre dışı bırakılması, kimlik bilgilerini kullanan tüm kullanıcılar için kayıt defteri erişimini devre dışı bırakır. Gözetimsiz senaryolara yönelik kullanıcılar ve hizmet sorumluları için bireysel kimlik önerilir.

Yönetici hesabı, her ikisi de yeniden üretilbilen iki parolayla sağlanır. İki parola, diğerini yeniden oluştururken bir parola kullanarak kayıt defteriyle bağlantıyı korumanıza olanak sağlar. Yönetici hesabı etkinleştirilmişse, docker login kayıt defterine temel kimlik doğrulaması sorulduğunda, Kullanıcı adını ve parolayı komuta geçirebilirsiniz. Örneğin:

docker login myregistry.azurecr.io

Oturum açma kimlik bilgilerini yönetmek için önerilen uygulamalar için Docker Login komut başvurusuna bakın.

Mevcut bir kayıt defteri için yönetici kullanıcıyı etkinleştirmek üzere, --admin-enabled Azure CLI 'de --admin-enabled komutunun parametresini kullanabilirsiniz:

az acr update -n <acrName> --admin-enabled true

Kayıt defterinizde gezinerek yönetici kullanıcıyı Azure portal etkinleştirebilirsiniz, Ayarlaraltında erişim anahtarları ' nı seçip Yönetici Kullanıcıaltında etkinleştirin .

Enable admin user UI in the Azure portal

Sonraki adımlar