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

Bir 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 login komutuyla 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, kayıt defteriniz ile oturum kimliğini sorunsuz bir şekilde doğrulamak için az acr login az 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 için kullanın.

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 docker ö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 kullanmak, Azure rol tabanlı erişim denetimi (Azure RBAC) sağlar. 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ğrulamanız 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ı olarak 00000000-0000-0000-0000-000000000000 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, uygulama veya hizmetiniz bunu başsız kimlik doğrulaması için kullanabilir. Hizmet sorumluları, bir kayıt defterine Azure rol tabanlı erişim denetimi (Azure RBAC) sağlar ve bir kayıt defterine birden çok hizmet sorumlusu atabilirsiniz. Birden çok hizmet sorumlusu, farklı uygulamalar için farklı erişim tanımlamanıza olanak sağlar.

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

  • Acr Pulll: çekme

  • AcrPush: çekme ve itme

  • Sahip: Diğer kullanıcılara roller çekme, itme ve atama

Rollerin tam listesi için bkz. Azure Container Registry izinler.

Cli betikleri için Azure kapsayıcı kayıt defteriyle kimlik doğrulaması için bir hizmet sorumlusu oluşturma ve daha fazla rehberlik için bkz. Azure Container Registry sorumluları ile kimlik doğrulamasını yönetme.

Yönetici hesabı

Her kapsayıcı kayıt defteri, varsayılan olarak devre dışı bırakılmış bir yönetici kullanıcı hesabı içerir. Yönetici kullanıcısını etkinleştirerek ve kimlik bilgilerini Azure portal azure CLI, Azure PowerShell veya diğer Azure araçlarını kullanarak yönetebilirsiniz. Yönetici hesabının kayıt defteri üzerinde tam izinleri vardır.

Yönetici hesabı şu anda bazı senaryoların bir kapsayıcı kayıt defterinden belirli Azure hizmetlerine görüntü dağıtması için gereklidir. Örneğin, kapsayıcı görüntüsünü doğrudan bir kayıt defterinden Kapsayıcılar için Azure Azure portal'a dağıtmak için Azure Container Instances veya Azure Web Apps gerekir.

Önemli

Yönetici hesabı, temel olarak 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şmanız önerilmez. Yönetici hesabıyla kimlik doğrulayıcı olan tüm kullanıcılar kayıt defterine itme ve çekme erişimi olan tek bir kullanıcı olarak görünür. Bu hesabı değiştirmek veya devre dışı bırakmak, kimlik bilgilerini kullanan tüm kullanıcılar için kayıt defteri erişimini devre dışı bırakmanızı sağlar. Bağımsız kimlik, kullanıcılar ve hizmet sorumluları için başsız senaryolar için önerilir.

Yönetici hesabına iki parola sağlanır ve her ikisi de yeniden üretebilirsiniz. İki parola, siz diğer parolayı yeniden oluşturma sırasında bir parola kullanarak kayıt defteri bağlantısını sürdürmeye olanak sağlar. Yönetici hesabı etkinse, kayıt defterinde temel kimlik doğrulaması istendiğinde kullanıcı adını ve docker login parolayı komuta geçebilirsiniz. Örnek:

docker login myregistry.azurecr.io

Oturum açma kimlik bilgilerini yönetmeye yönelik önerilen yöntemler için docker oturum açma komutu başvurusuna bakın.

Yönetici kullanıcısını mevcut bir kayıt defterinde etkinleştirmek için --admin-enabled Azure CLI'da az acr update komutunun parametresini kullanabilirsiniz:

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

Kayıt defterinize giderek, AYARLAR altında Erişim Azure portal'ı ve ardından Yönetici kullanıcı altında Etkinleştir'i seçerek yönetici kullanıcısını oturum açabilirsiniz.

Kullanıcı arabiriminde yönetici kullanıcı arabirimini Azure portal

Sonraki adımlar