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

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.

Deploy with Azure portal

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. The admin account is designed for a single user to access the registry, mainly for testing purposes.

  1. Az Azure Portalon keresse meg a tárolóregisztrációs adatbázist.

  2. A rendszergazdai fiók engedélyezésének ellenőrzéséhez válassza az Access-kulcsokat, majd Rendszergazda felhasználónál válassza az Engedélyezés lehetőséget.

  3. 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.

  4. 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.

    Create menu for Azure Container Instances

  5. 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.

    Details view for Azure Container Instances container group

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.