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:
- Bireysel oturum açma bilgileriyle doğrudan kayıt defterinde kimlik doğrulaması yapma
- Uygulamalar ve kapsayıcı orchestrator'ları, Azure Active Directory (Azure AD) hizmet sorumlusu kullanarak katılımsız veya "gözetimsiz" kimlik doğrulaması gerçekleştirerek
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'deConnect-AzContainerRegistryAzure PowerShell |
Geliştiriciler, testçiler tarafından etkileşimli itme/çekme | Yes | AD belirteci 3 saatte bir yenilenmeli |
| AD hizmet sorumlusu | docker loginaz acr login Azure CLI'deConnect-AzContainerRegistryAzure PowerShellAPI'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 loginaz acr login Azure CLI'deConnect-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 loginaz acr login Azure CLI'deConnect-AzContainerRegistryAzure PowerShellKubernetes ç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.
