Felügyelt Azure-identitás használata egy Azure Container Registryben való hitelesítéshez
Az Azure-erőforrások felügyelt identitásával hitelesítheti magát egy másik Azure-erőforrás azure-tárolóregisztrációs adatbázisában anélkül, hogy meg kellene adnia vagy kezelnie kellene a beállításjegyzék hitelesítő adatait. Állítson be például egy felhasználó által hozzárendelt vagy rendszer által hozzárendelt felügyelt identitást egy Linux rendszerű virtuális gépen, hogy a tárolóregisztrációs adatbázis tárolólemezképeihez olyan egyszerűen férhessen hozzá, mint egy nyilvános beállításjegyzék. Vagy állítson be egy Azure Kubernetes Service-fürtöt úgy, hogy a felügyelt identitásával lekérje a tárolólemezképeket az Azure Container Registryből podtelepítésekhez.
Ebből a cikkből többet tudhat meg a felügyelt identitásokról, valamint az alábbiakról:
- Felhasználó által hozzárendelt vagy rendszer által hozzárendelt identitás engedélyezése Azure-beli virtuális gépen
- Identitáshozzáférés biztosítása azure-tárolóregisztrációs adatbázishoz
- A felügyelt identitás használata a beállításjegyzék eléréséhez és egy tárolólemezkép lekéréséhez
Az Azure-erőforrások létrehozásához ehhez a cikkhez az Azure CLI 2.0.55-ös vagy újabb verzióját kell futtatnia. A verzió azonosításához futtassa a következőt: az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.
A tárolóregisztrációs adatbázis beállításához és egy tárolórendszerkép leküldéséhez helyileg is telepítenie kell a Dockert. A Docker csomagokat biztosít, amelyekkel a Docker egyszerűen konfigurálható bármely macOS, Windows vagy Linux rendszeren.
Miért érdemes felügyelt identitást használni?
Ha még nem ismeri az Azure-erőforrások felügyelt identitására vonatkozó funkciót, tekintse meg ezt az áttekintést.
Miután kiválasztott Azure-erőforrásokat felügyelt identitással állított be, adja meg az identitásnak azt a hozzáférést, amelyet egy másik erőforráshoz szeretne használni, ugyanúgy, mint bármely biztonsági tag. Például hozzárendelhet egy felügyelt identitást egy szerepkörhöz lekéréses, leküldéses és lekéréses vagy más engedélyekkel egy Azure-beli privát beállításjegyzékhez. (A beállításjegyzék-szerepkörök teljes listáját lásd: Azure Container Registry-szerepkörök és engedélyek.) Identitás-hozzáférést adhat egy vagy több erőforráshoz.
Ezután az identitással hitelesíthet bármely olyan szolgáltatásban, amely támogatja a Microsoft Entra-hitelesítést anélkül, hogy a kódban hitelesítő adatokat használ. A forgatókönyvtől függően válassza ki, hogyan hitelesítheti a felügyelt identitást. Ha az identitással szeretne hozzáférni egy Azure-tárolóregisztrációs adatbázishoz egy virtuális gépről, hitelesítenie kell magát az Azure Resource Managerrel.
Container Registry létrehozása
Ha még nem rendelkezik Azure-tárolóregisztrációs adatbázissal, hozzon létre egy beállításjegyzéket, és küldjön hozzá egy minta tárolórendszerképet. A lépésekért tekintse meg a rövid útmutatót: Privát tárolóregisztrációs adatbázis létrehozása az Azure CLI használatával.
Ez a cikk feltételezi, hogy a tárolórendszerkép a aci-helloworld:v1
beállításjegyzékben van tárolva. A példák a myContainerRegistry beállításjegyzék-nevét használják. A későbbi lépésekben cserélje le a saját beállításjegyzék- és rendszerképneveit.
Docker-kompatibilis virtuális gép létrehozása
Hozzon létre egy Docker-kompatibilis Ubuntu virtuális gépet. Az Azure CLI-t is telepítenie kell a virtuális gépre. Ha már rendelkezik Azure-beli virtuális géppel, hagyja ki ezt a lépést a virtuális gép létrehozásához.
Helyezzen üzembe egy alapértelmezett Ubuntu Azure-beli virtuális gépet az az vm create használatával. Az alábbi példa egy myDockerVM nevű virtuális gépet hoz létre egy myResourceGroup nevű meglévő erőforráscsoportban:
az vm create \
--resource-group myResourceGroup \
--name myDockerVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
A virtuális gép létrehozása néhány percig tart. Amikor a parancs befejeződik, jegyezze fel az publicIpAddress
Azure CLI által megjelenített elemet. Ezzel a címmel SSH-kapcsolatokat létesíthet a virtuális géppel.
A Docker telepítése a virtuális gépen
Ha Docker-tárolókat szeretne futtatni a virtuális gépen, telepítenie kell a Dockert. Ez a szakasz a Docker Ubuntu virtuális gépen való telepítésének lépéseit ismerteti, biztosítva, hogy a virtuális gép készen álljon a tárolólemezképek lekérésére és futtatására az Azure Container Registryből.
A virtuális gép futtatása után hozzon létre egy SSH-kapcsolatot a virtuális géppel. Cserélje le a publicIpAddress elemet a virtuális gép nyilvános IP-címére.
ssh azureuser@publicIpAddress
Futtassa a következő parancsot a Docker virtuális gépen való telepítéséhez:
sudo apt update
sudo apt install docker.io -y
A telepítés után futtassa a következő parancsot annak ellenőrzéséhez, hogy a Docker megfelelően fut-e a virtuális gépen:
sudo docker run -it mcr.microsoft.com/hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
[...]
Az Azure CLI összetevő telepítése
Az Azure CLI telepítésének lépéseit követve telepítheti az Azure CLI-t az Ubuntu virtuális gépére. Ebben a cikkben győződjön meg arról, hogy a 2.0.55-ös vagy újabb verziót telepíti.
Lépjen ki az SSH-munkamenetből.
1. példa: Hozzáférés felhasználó által hozzárendelt identitással
Identitás létrehozása
Hozzon létre egy identitást az előfizetésben az az identity create paranccsal. Használhatja ugyanazt az erőforráscsoportot, amelyet korábban a tárolóregisztrációs adatbázis vagy a virtuális gép létrehozásához használt, vagy egy másikat.
az identity create --resource-group myResourceGroup --name myACRId
Az identitás a következő lépésekben való konfigurálásához használja az az identity show parancsot az identitás erőforrás-azonosítójának és szolgáltatásnév-azonosítójának változókban való tárolásához.
# Get resource ID of the user-assigned identity
userID=$(az identity show --resource-group myResourceGroup --name myACRId --query id --output tsv)
# Get service principal ID of the user-assigned identity
spID=$(az identity show --resource-group myResourceGroup --name myACRId --query principalId --output tsv)
Mivel egy későbbi lépésben szüksége lesz az identitás azonosítójára, amikor bejelentkezik a parancssori felületre a virtuális gépről, adja meg az értéket:
echo $userID
Az azonosító az alábbi formában érhető el:
/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myACRId
A virtuális gép konfigurálása az identitással
A következő az vm identity assign parancs konfigurálja a Docker virtuális gépet a felhasználó által hozzárendelt identitással:
az vm identity assign --resource-group myResourceGroup --name myDockerVM --identities $userID
Identitáshozzáférés biztosítása a tárolóregisztrációs adatbázishoz
Most konfigurálja az identitást a tárolóregisztrációs adatbázis eléréséhez. Először használja az az acr show parancsot a beállításjegyzék erőforrás-azonosítójának lekéréséhez:
resourceID=$(az acr show --resource-group myResourceGroup --name myContainerRegistry --query id --output tsv)
Az az role assignment create paranccsal rendelje hozzá az AcrPull-szerepkört az identitáshoz. Ez a szerepkör lekérési engedélyeket biztosít a beállításjegyzékhez. A lekérési és leküldéses engedélyek biztosításához rendelje hozzá az AcrPush szerepkört.
az role assignment create --assignee $spID --scope $resourceID --role acrpull
Az identitás használata a beállításjegyzék eléréséhez
SSH az identitással konfigurált Docker virtuális gépre. Futtassa az alábbi Azure CLI-parancsokat a virtuális gépen telepített Azure CLI használatával.
Először jelentkezzen be az Azure CLI-be a virtuális gépen konfigurált identitás használatával. Ebben <userID>
az esetben cserélje le az előző lépésben lekért identitás azonosítóját.
az login --identity --username <userID>
Ezután hitelesítse magát a beállításjegyzékben az az acr-bejelentkezéssel. A parancs használatakor a parancssori felület a futtatáskor az login
létrehozott Active Directory-jogkivonatot használja a munkamenet zökkenőmentes hitelesítéséhez a tárolóregisztrációs adatbázissal. (A virtuális gép beállításától függően előfordulhat, hogy futtatnia kell ezt a parancsot és docker parancsokat a sudo
.)
az acr login --name myContainerRegistry
Üzenetnek kell megjelennie Login succeeded
. Ezután hitelesítő adatok megadása nélkül futtathat docker
parancsokat. Futtassa például a docker-lekérést a aci-helloworld:v1
rendszerkép lekéréséhez, és adja meg a regisztrációs adatbázis bejelentkezési kiszolgálójának nevét. A bejelentkezési kiszolgáló neve a tárolóregisztrációs adatbázis nevéből (az összes kisbetűből) áll, mycontainerregistry.azurecr.io
amelyet .azurecr.io
követ például a .
docker pull mycontainerregistry.azurecr.io/aci-helloworld:v1
A virtuális gép konfigurálása rendszer által felügyelt identitással
A rendszer által hozzárendelt felügyelt identitás az Azure egyik funkciója, amely lehetővé teszi, hogy a virtuális gép automatikusan kezelje saját identitását az Azure Active Directoryban. Ez a szakasz azt ismerteti, hogyan konfigurálhatja a virtuális gépet egy rendszer által hozzárendelt identitással az Azure Container Registry biztonságos eléréséhez.
A virtuális gép konfigurálása rendszer által felügyelt identitással
Az alábbi az vm identity assign parancs rendszer által hozzárendelt identitással konfigurálja a Docker virtuális gépet:
az vm identity assign --resource-group myResourceGroup --name myDockerVM
Az az vm show paranccsal beállíthat egy változót a virtuális gép identitásának értékére principalId
(a szolgáltatásnév azonosítójára) a későbbi lépésekben való használathoz.
spID=$(az vm show --resource-group myResourceGroup --name myDockerVM --query identity.principalId --out tsv)
Identitáshozzáférés biztosítása a tárolóregisztrációs adatbázishoz
Most konfigurálja az identitást a tárolóregisztrációs adatbázis eléréséhez. Először használja az az acr show parancsot a beállításjegyzék erőforrás-azonosítójának lekéréséhez:
resourceID=$(az acr show --resource-group myResourceGroup --name myContainerRegistry --query id --output tsv)
Az az role assignment create paranccsal rendelje hozzá az AcrPull-szerepkört az identitáshoz. Ez a szerepkör lekérési engedélyeket biztosít a beállításjegyzékhez. A lekérési és leküldéses engedélyek biztosításához rendelje hozzá az AcrPush szerepkört.
az role assignment create --assignee $spID --scope $resourceID --role acrpull
Az identitás használata a beállításjegyzék eléréséhez
SSH az identitással konfigurált Docker virtuális gépre. Futtassa az alábbi Azure CLI-parancsokat a virtuális gépen telepített Azure CLI használatával.
Először hitelesítse az Azure CLI-t az login használatával a virtuális gépen a rendszer által hozzárendelt identitás használatával.
az login --identity
Ezután hitelesítse magát a beállításjegyzékben az az acr-bejelentkezéssel. A parancs használatakor a parancssori felület a futtatáskor az login
létrehozott Active Directory-jogkivonatot használja a munkamenet zökkenőmentes hitelesítéséhez a tárolóregisztrációs adatbázissal. (A virtuális gép beállításától függően előfordulhat, hogy futtatnia kell ezt a parancsot és docker parancsokat a sudo
.)
az acr login --name myContainerRegistry
Üzenetnek kell megjelennie Login succeeded
. Ezután hitelesítő adatok megadása nélkül futtathat docker
parancsokat. Futtassa például a docker-lekérést a aci-helloworld:v1
rendszerkép lekéréséhez, és adja meg a regisztrációs adatbázis bejelentkezési kiszolgálójának nevét. A bejelentkezési kiszolgáló neve a tárolóregisztrációs adatbázis nevéből (az összes kisbetűből) áll, mycontainerregistry.azurecr.io
amelyet .azurecr.io
követ például a .
docker pull mycontainerregistry.azurecr.io/aci-helloworld:v1
Következő lépések
Ebben a cikkben megismerkedett a felügyelt identitások Azure Container Registryvel való használatával, valamint a következőkkel:
- Felhasználó által hozzárendelt vagy rendszer által hozzárendelt identitás engedélyezése egy Azure-beli virtuális gépen
- Identitáshozzáférés biztosítása azure-tárolóregisztrációs adatbázishoz
- A felügyelt identitás használata a beállításjegyzék eléréséhez és egy tárolólemezkép lekéréséhez
- További információ az Azure-erőforrások felügyelt identitásairól.
- Megtudhatja, hogyan használhat rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitást az App Service és az Azure Container Registry használatával.
- Megtudhatja, hogyan helyezhet üzembe egy tárolórendszerképet az Azure Container Registryből felügyelt identitás használatával.