Authenticate with an Azure container registry

Egy Azure-tárolóregisztrációs adatbázissal többféleképpen is hitelesíthetők, amelyek mindegyike egy vagy több beállításjegyzék-használati forgatókönyvre alkalmazható.

Az ajánlott módszerek a következők:

  • Hitelesítés közvetlenül egy beállításjegyzékben egyéni bejelentkezéssel
  • Az alkalmazások és a tárolóvezénylők felügyelet nélküli vagy "fej nélküli" hitelesítést végezhetnek a Microsoft Entra szolgáltatásnévvel

Ha tárolóregisztrációs adatbázist használ az Azure Kubernetes Service-szel (AKS) vagy egy másik Kubernetes-fürttel, tekintse meg az Azure Container Registry kubernetesből történő hitelesítésének forgatókönyveit.

Hitelesítési lehetőségek

Az alábbi táblázat az elérhető hitelesítési módszereket és a tipikus forgatókönyveket sorolja fel. Részletekért tekintse meg a csatolt tartalmat.

Method Hitelesítés Forgatókönyvek Azure szerepköralapú hozzáférés-vezérlés (Azure RBAC) Korlátozások
Egyéni AD-identitás  az acr login az Azure CLI-ben

Connect-AzContainerRegistry az Azure PowerShellben
Fejlesztők, tesztelők interaktív leküldése/lekérése Igen Az AD-jogkivonatot 3 óránként meg kell újítani
AD szolgáltatásnév  docker login

az acr login az Azure CLI-ben

Connect-AzContainerRegistry az Azure PowerShellben

Beállításjegyzék bejelentkezési beállításai API-kban vagy eszközökben

Kubernetes lekérési titkos kód   
Felügyelet nélküli leküldés CI/CD-folyamatból

Felügyelet nélküli lekérés az Azure-ba vagy külső szolgáltatásokba
Igen Az SP-jelszó alapértelmezett lejárati ideje 1 év
Felügyelt identitás Azure-erőforrásokhoz  docker login

az acr login az Azure CLI-ben

Connect-AzContainerRegistry az Azure PowerShellben
Felügyelet nélküli leküldés az Azure CI/CD-folyamatból

Felügyelet nélküli lekérés az Azure-szolgáltatásokhoz

Igen Csak olyan Azure-szolgáltatásokból használható, amelyek támogatják az Azure-erőforrások felügyelt identitását
AKS-fürt felügyelt identitása  Beállításjegyzék csatolása az AKS-fürt létrehozásakor vagy frissítésekor Felügyelet nélküli lekérés az AKS-fürthöz ugyanabban vagy egy másik előfizetésben Nem, csak lekéréses hozzáférés Csak AKS-fürttel érhető el

Nem használható bérlők közötti hitelesítéshez
AKS-fürtszolgáltatásnév  Engedélyezés az AKS-fürt létrehozásakor vagy frissítésekor Felügyelet nélküli lekérés az AKS-fürthöz egy másik AD-bérlő beállításjegyzékéből Nem, csak lekéréses hozzáférés Csak AKS-fürttel érhető el
Rendszergazda felhasználó  docker login  Interaktív leküldés/lekérés egyéni fejlesztő vagy tesztelő által

Rendszerkép központi telepítése a beállításjegyzékből a Azure-alkalmazás Szolgáltatásba vagy az Azure Container Instancesbe
Nem, mindig lekéréses és leküldéses hozzáférés Beállításjegyzékenként egy fiók, több felhasználó számára nem ajánlott
Tárház hatókörű hozzáférési jogkivonat  docker login

az acr login az Azure CLI-ben

Connect-AzContainerRegistry az Azure PowerShellben

Kubernetes lekérési titkos kód 
Interaktív leküldés/lekérés az adattárba egyéni fejlesztő vagy tesztelő által

Felügyelet nélküli lekérés az adattárból egyéni rendszer vagy külső eszköz által
Igen Jelenleg nincs integrálva az AD-identitással

Egyéni bejelentkezés a Microsoft Entra-azonosítóval

Amikor közvetlenül a beállításjegyzékkel dolgozik, például leküldi a rendszerképeket egy fejlesztői munkaállomásról egy ön által létrehozott beállításjegyzékbe, az egyéni Azure-identitás használatával hitelesíthet. Jelentkezzen be az Azure CLI-be az login használatával, majd futtassa az az acr bejelentkezési parancsot:

az login
az acr login --name <acrName>

Amikor bejelentkezik az acr login, a parancssori felület a végrehajtáskor az login létrehozott jogkivonatot használja a munkamenet zökkenőmentes hitelesítéséhez a beállításjegyzékben. A hitelesítési folyamat befejezéséhez a Docker parancssori felületét és a Docker-démont telepíteni kell, és a környezetben kell futnia. az acr login A Docker-ügyfél használatával állít be egy Microsoft Entra-jogkivonatot a docker.config fájlban. Miután így bejelentkezett, a rendszer gyorsítótárazza a hitelesítő adatait, és a munkamenet későbbi docker parancsai nem igényelnek felhasználónevet vagy jelszót.

Tipp.

Az egyéni identitás hitelesítésére is használható az acr login , ha docker-lemezképeken kívüli összetevőket szeretne leküldni vagy lekérni a beállításjegyzékbe, például OCI-összetevőket.

A beállításjegyzék-hozzáféréshez a használt az acr login jogkivonat 3 órán át érvényes, ezért azt javasoljuk, hogy a parancs futtatása docker előtt mindig jelentkezzen be a beállításjegyzékbe. Ha a jogkivonat lejár, a parancs ismételt használatával az acr login frissítheti azt.

Az Azure-identitások használata az acr login azure-beli szerepköralapú hozzáférés-vezérlést (Azure RBAC) biztosít. Bizonyos esetekben előfordulhat, hogy saját egyéni identitással rendelkező adatbázisba szeretne bejelentkezni a Microsoft Entra ID-ban, vagy konfigurálnia kell más Azure-felhasználókat meghatározott Azure-szerepkörökkel és engedélyekkel. Szolgáltatásközi forgatókönyvek esetén, illetve egy munkacsoport vagy fejlesztési munkafolyamat igényeinek kezeléséhez, ahol nem szeretné kezelni az egyéni hozzáférést, az Azure-erőforrásokhoz tartozó felügyelt identitással is bejelentkezhet.

az acr login with --expose-token

Bizonyos esetekben hitelesítenie az acr login kell, ha a Docker démon nem fut a környezetben. Előfordulhat például, hogy egy szkriptben kell futtatnia az acr login az Azure Cloud Shellben, amely biztosítja a Docker CLI-t, de nem futtatja a Docker démont.

Ebben a forgatókönyvben először futtassa az acr login a paramétert --expose-token . Ez a beállítás a Docker parancssori felületén való bejelentkezés helyett egy hozzáférési jogkivonatot tesz elérhetővé.

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

A kimenet az itt rövidített hozzáférési jogkivonatot jeleníti meg:

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

A beállításjegyzék-hitelesítéshez javasoljuk, hogy biztonságos helyen tárolja a token hitelesítő adatait, és kövesse az ajánlott eljárásokat a Docker bejelentkezési hitelesítő adatainak kezeléséhez. Tárolhatja például a jogkivonat értékét egy környezeti változóban:

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

Ezután futtassa docker logina felhasználónevet, 00000000-0000-0000-0000-000000000000 és használja a hozzáférési jogkivonatot jelszóként:

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

Hasonlóképpen használhatja a parancs által helm registry login visszaadott az acr login jogkivonatot a beállításjegyzékben való hitelesítéshez:

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

Service principal

Ha hozzárendel egy egyszerű szolgáltatást a beállításjegyzékhez, az alkalmazás vagy szolgáltatás használhatja a fej nélküli hitelesítéshez. A szolgáltatásnevek lehetővé teszik az Azure szerepköralapú hozzáférés-vezérlését (Azure RBAC) egy beállításjegyzékben, és több szolgáltatásnevet is hozzárendelhet egy beállításjegyzékhez. A több szolgáltatásnév lehetővé teszi a különböző alkalmazások eltérő hozzáférésének meghatározását.

Az ACR hitelesítési jogkivonat az ACR-be való bejelentkezéskor jön létre, és a későbbi műveletek során frissül. Ennek a jogkivonatnak az élettartama 3 óra.

A tárolóregisztrációs adatbázishoz elérhető szerepkörök a következők:

  • AcrPull: lekérés

  • AcrPush: lekérés és leküldés

  • Tulajdonos: szerepkörök lekérése, leküldése és hozzárendelése más felhasználókhoz

A szerepkörök teljes listájáért tekintse meg az Azure Container Registry szerepköreit és engedélyeit.

Ha parancssori felületi szkripteket szeretne létrehozni egy szolgáltatásnév létrehozásához az Azure-tárolóregisztrációs adatbázissal való hitelesítéshez, és további útmutatást az Azure Container Registry szolgáltatásnévvel történő hitelesítésével kapcsolatban talál.

Rendszergazdai fiók

Each container registry includes an admin user account, which is disabled by default. Engedélyezheti a rendszergazda felhasználót, és kezelheti a hitelesítő adatait az Azure Portalon, vagy az Azure CLI, az Azure PowerShell vagy más Azure-eszközök használatával. A rendszergazdai fiók teljes engedélyekkel rendelkezik a beállításjegyzékhez.

A rendszergazdai fiókra jelenleg szükség van bizonyos helyzetekben, amikor lemezképet helyeznek üzembe egy tárolóregisztrációs adatbázisból bizonyos Azure-szolgáltatásokba. A rendszergazdai fiókra például akkor van szükség, ha az Azure Portal használatával közvetlenül üzembe helyez egy tárolórendszerképet egy beállításjegyzékből az Azure Container Instances vagy az Azure Web Apps for Containers szolgáltatásban.

Fontos

The admin account is designed for a single user to access the registry, mainly for testing purposes. We do not recommend sharing the admin account credentials among multiple users. All users authenticating with the admin account appear as a single user with push and pull access to the registry. A fiók módosítása vagy letiltása letiltja a beállításjegyzék-hozzáférést minden olyan felhasználó számára, aki a hitelesítő adatait használja. A fej nélküli forgatókönyvekhez egyéni identitás használata ajánlott a felhasználók és a szolgáltatásnevek számára.

A rendszergazdai fiók két jelszóval rendelkezik, amelyek mindegyike újragenerálható. A rendszergazdai fiókokhoz létrehozott új jelszavak azonnal elérhetők. A rendszergazdai fiókok jelszavainak újragenerálása 60 másodpercet vesz igénybe a replikáláshoz, és elérhető lesz. A két jelszó lehetővé teszi a beállításjegyzékhez való csatlakozás fenntartását egy jelszó használatával, miközben újragenerálja a másikat. Ha a rendszergazdai fiók engedélyezve van, a felhasználónevet és a jelszót is átadhatja a docker login parancsnak, amikor a rendszer alapszintű hitelesítést kér a beállításjegyzékhez. Például:

docker login myregistry.azurecr.io

A bejelentkezési hitelesítő adatok kezelésével kapcsolatos ajánlott eljárásokért tekintse meg a Docker bejelentkezési parancsainak hivatkozását.

Ha engedélyezni szeretné a rendszergazda felhasználót egy meglévő beállításjegyzékhez, használja az az acr --admin-enabledupdate parancs paraméterét az Azure CLI-ben:

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

A rendszergazda felhasználót az Azure Portalon engedélyezheti a beállításjegyzékben való navigálással, a Standard kiadás TTINGS területen az Access-kulcsok kiválasztásával, majd az Engedélyezés Rendszergazda felhasználó alatt.

Enable admin user UI in the Azure portal

Következő lépések