Telepítés Azure konténer-állományokba Azure konténer-nyilvántartásból egy szolgáltatási megbízó segítségével
Az Azure Container Registry egy Azure-alapú, felügyelt tárolóregisztrációs szolgáltatás, amely privát Docker-tárolólemezképek tárolására szolgál. Ez a cikk azt ismerteti, hogyan lehet lekérni egy Azure Container Registryben tárolt tárolórendszerképeket az Azure Container Instancesben való üzembe helyezéskor. A beállításjegyzék-hozzáférés konfigurálásának egyik módja a Microsoft Entra szolgáltatásnév és -jelszó létrehozása, valamint a bejelentkezési hitelesítő adatok tárolása egy Azure-kulcstartóban.
Előfeltételek
Azure-tárolóregisztrációs adatbázis: Szüksége van egy Azure-tárolóregisztrációs adatbázisra – és legalább egy tárolórendszerképre a beállításjegyzékben –, hogy végrehajthassa a jelen cikkben leírt lépéseket. Ha regisztrációs adatbázisra van szüksége, olvassa el a Tárolóregisztrációs adatbázis létrehozása az Azure CLI használatával című témakört.
Azure CLI: A cikkben szereplő parancssori példák az Azure CLI-t használják, és a Bash-rendszerhéjhoz vannak formázva. Telepítheti az Azure CLI-t helyileg, vagy használhatja az Azure Cloud Shellt.
Korlátozások
- A Windows-tárolók nem támogatják a rendszer által hozzárendelt felügyelt identitás által hitelesített rendszerkép-lekéréseket az ACR-vel, csak a felhasználó által hozzárendelteket.
Regisztrációs adatbázis hitelesítésének konfigurálása
Olyan éles környezetben, ahol "fej nélküli" szolgáltatásokhoz és alkalmazásokhoz biztosít hozzáférést, ajánlott a beállításjegyzék-hozzáférést szolgáltatásnév használatával konfigurálni. A szolgáltatásnév lehetővé teszi, hogy azure-beli szerepköralapú hozzáférés-vezérlést (Azure RBAC) biztosítson a tárolólemezképekhez. Konfigurálhat például egy olyan szolgáltatásnevet, amely csak lekérés céljából férhet hozzá a regisztrációs adatbázishoz.
Az Azure Container Registry további hitelesítési lehetőségeket biztosít.
A következő szakaszban létrehoz egy Azure Key Vaultot és egy szolgáltatásnevet, és a szolgáltatásnév hitelesítő adatait a tárolóban tárolja.
Kulcstároló létrehozása
Ha még nem rendelkezik tárolóval az Azure Key Vaultban, hozzon létre egyet az Azure CLI alábbi parancsaival.
Frissítse a változót RES_GROUP
egy meglévő erőforráscsoport nevével, amelyben létre szeretné hozni a kulcstartót, és ACR_NAME
adja meg a tárolóregisztrációs adatbázis nevét. A rövidség kedvéért a cikkben szereplő parancsok feltételezik, hogy a beállításjegyzék, a kulcstartó és a tárolópéldányok ugyanabban az erőforráscsoportban vannak létrehozva.
Adja meg az új kulcstartó nevét a következőben AKV_NAME
: . A tároló nevének egyedinek kell lennie az Azure-ban, 3–24 alfanumerikus karakter hosszúságúnak kell lennie, betűvel kell kezdődnie, betűvel vagy számjegygel kell végződnie, és nem tartalmazhat egymást követő kötőjeleket.
RES_GROUP=myresourcegroup # Resource Group name
ACR_NAME=myregistry # Azure Container Registry registry name
AKV_NAME=mykeyvault # Azure Key Vault vault name
az keyvault create -g $RES_GROUP -n $AKV_NAME
Szolgáltatásnév létrehozása és a hitelesítő adatok tárolása
Most hozzon létre egy szolgáltatásnevet, és tárolja a hitelesítő adatait a kulcstartóban.
Az alábbi parancsok az az ad sp create-for-rbac használatával hozzák létre a szolgáltatásnevet, az az keyvault titkos kódkészlet pedig a szolgáltatásnév jelszavát a tárolóban tárolja. Mindenképpen jegyezze fel a szolgáltatásnév appId azonosítóját a létrehozáskor.
# Create service principal
az ad sp create-for-rbac \
--name http://$ACR_NAME-pull \
--scopes $(az acr show --name $ACR_NAME --query id --output tsv) \
--role acrpull
SP_ID=xxxx # Replace with your service principal's appId
# Store the registry *password* in the vault
az keyvault secret set \
--vault-name $AKV_NAME \
--name $ACR_NAME-pull-pwd \
--value $(az ad sp show --id $SP_ID --query password --output tsv)
Az --role
előző parancs argumentuma konfigurálja a szolgáltatásnevet az acrpull szerepkörrel, amely csak lekéréses hozzáférést biztosít a beállításjegyzékhez. Ha leküldéses és lekéréses hozzáférést is szeretne biztosítani, módosítsa az --role
argumentumot acrpush értékre.
Ezután tárolja a szolgáltatásnév appId azonosítóját a tárolóban, amely a hitelesítéshez az Azure Container Registrynek átadott felhasználónév.
# Store service principal ID in vault (the registry *username*)
az keyvault secret set \
--vault-name $AKV_NAME \
--name $ACR_NAME-pull-usr \
--value $(az ad sp show --id $SP_ID --query appId --output tsv)
Létrehozott egy Azure Key Vault-tárolót, és tárolt benne két titkos kulcsot:
$ACR_NAME-pull-usr
: A szolgáltatásnév azonosítója, amely a tárolóregisztrációs adatbázis felhasználóneveként szolgál.$ACR_NAME-pull-pwd
: A szolgáltatásnév jelszava, amely a tárolóregisztrációs adatbázis jelszavaként szolgál.
Innentől ezekre a titkos kulcsokra név alapján hivatkozhat, amikor Ön vagy az alkalmazások és szolgáltatások rendszerképeket kérnek le a regisztrációs adatbázisból.
Tároló üzembe helyezése az Azure CLI használatával
Most, hogy a szolgáltatásnév hitelesítő adatai az Azure Key Vault titkos kulcsaiban vannak tárolva, az alkalmazások és szolgáltatások felhasználhatják őket a privát beállításjegyzék eléréséhez.
Először kérje le a beállításjegyzék bejelentkezési kiszolgálójának nevét az az acr show paranccsal. A bejelentkezési kiszolgáló neve kisbetűs, és hasonló a következőhöz myregistry.azurecr.io
: .
ACR_LOGIN_SERVER=$(az acr show --name $ACR_NAME --resource-group $RES_GROUP --query "loginServer" --output tsv)
A következő az container create parancs végrehajtásával helyezzen üzembe egy tárolópéldányt. A parancs az Azure Key Vaultban tárolt szolgáltatásnév hitelesítő adatait használja a tárolóregisztrációs adatbázisba való hitelesítéshez, és feltételezi, hogy korábban leküldte az aci-helloworld rendszerképet a beállításjegyzékbe. Frissítse az --image
értéket, ha a beállításjegyzéktől eltérő lemezképet szeretne használni.
az container create \
--name aci-demo \
--resource-group $RES_GROUP \
--image $ACR_LOGIN_SERVER/aci-helloworld:v1 \
--registry-login-server $ACR_LOGIN_SERVER \
--registry-username $(az keyvault secret show --vault-name $AKV_NAME -n $ACR_NAME-pull-usr --query value -o tsv) \
--registry-password $(az keyvault secret show --vault-name $AKV_NAME -n $ACR_NAME-pull-pwd --query value -o tsv) \
--dns-name-label aci-demo-$RANDOM \
--query ipAddress.fqdn
Az --dns-name-label
értéknek egyedinek kell lennie az Azure-ban, ezért az előző parancs véletlenszerű számot fűz a tároló DNS-névcímkééhez. A parancs kimenete a tároló teljes tartománynevét jeleníti meg, például:
"aci-demo-25007.eastus.azurecontainer.io"
Miután a tároló sikeresen elindult, a böngészőben a teljes tartománynévre lépve ellenőrizheti, hogy az alkalmazás sikeresen fut-e.
Üzembe helyezés Azure Resource Manager-sablonnal
Az Azure-tárolóregisztrációs adatbázis tulajdonságait egy Azure Resource Manager-sablonban adhatja meg, ha a imageRegistryCredentials
tulajdonságot belefogadja a tárolócsoport definíciójához. Megadhatja például közvetlenül a beállításjegyzék hitelesítő adatait:
[...]
"imageRegistryCredentials": [
{
"server": "imageRegistryLoginServer",
"username": "imageRegistryUsername",
"password": "imageRegistryPassword"
}
]
[...]
A tárolócsoport teljes beállításaiért tekintse meg a Resource Manager-sablonreferenciát.
Az Azure Key Vault titkos kulcsainak Resource Manager-sablonban való hivatkozásával kapcsolatos részletekért lásd: Az Azure Key Vault használata biztonságos paraméterértékek átadásához az üzembe helyezés során.
Üzembe helyezés az Azure Portalon
Ha tárolórendszerképeket tart fenn egy Azure-tárolóregisztrációs adatbázisban, egyszerűen létrehozhat egy tárolót az Azure Container Instancesben az Azure Portal használatával. Amikor a portál használatával tárolópéldányt helyez üzembe egy tárolóregisztrációs adatbázisból, engedélyeznie kell a beállításjegyzék rendszergazdai fiókját. A rendszergazdai fiók úgy lett kialakítva, hogy egyetlen felhasználó hozzáférjen a beállításjegyzékhez, főként tesztelési célokra.
Az Azure Portalon keresse meg a tárolóregisztrációs adatbázist.
Ha ellenőrizni szeretné, hogy a rendszergazdai fiók engedélyezve van-e, válassza az Access-kulcsokat, majd a Rendszergazda felhasználó területen válassza az Engedélyezés lehetőséget.
Válassza az Adattárak lehetőséget, majd válassza ki a telepíteni kívánt adattárat, kattintson a jobb gombbal az üzembe helyezni kívánt tárolólemezkép címkéjére, és válassza a Futtató példány lehetőséget.
Adja meg a tároló nevét és az erőforráscsoport nevét. Igény szerint módosíthatja az alapértelmezett értékeket is.
Az üzembe helyezés befejezése után az értesítési panelen navigálhat a tárolócsoportra, és megkeresheti annak IP-címét és egyéb tulajdonságait.
Következő lépések
Az Azure Container Registry-hitelesítéssel kapcsolatos további információkért lásd : Hitelesítés azure-tárolóregisztrációs adatbázissal.