Azure VM Image Builder-engedélyek konfigurálása az Azure CLI használatával
A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai
Amikor regisztrál az Azure-beli VM Image Builder szolgáltatásra, az előfizetése hozzáférést kap egy virtuálisgép-rendszerkép-készítő szolgáltatásnévhez (SPN). Ez a regisztráció emellett engedélyezi a szolgáltatás engedélyét egy átmeneti erőforráscsoport létrehozására, kezelésére és törlésére. A képkészítési folyamathoz a közreműködői szerepkör hozzárendelésére is szükség van az átmeneti erőforráscsoportban.
Ha azt szeretné, hogy a VM Image Builder lemezképeket terjesszen, létre kell hoznia egy felhasználó által hozzárendelt identitást az Azure-ban, amely jogosult képek olvasására és írására. Előfordulhat például, hogy lemezképeket szeretne terjeszteni felügyelt képekre vagy az Azure Compute Gallerybe. Ha az Azure Storage-hoz fér hozzá, akkor a létrehozott felhasználó által hozzárendelt identitásnak engedélyre van szüksége a privát vagy nyilvános tárolók olvasásához.
A rendszerkép létrehozása előtt be kell állítania az engedélyeket és a jogosultságokat. A következő szakaszok ismertetik, hogyan konfigurálhatók a lehetséges forgatókönyvek az Azure CLI használatával.
Előfeltételek
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
Felhasználó által hozzárendelt felügyelt identitás létrehozása
A VM Image Builder használatához létre kell hoznia egy Azure-felhasználó által hozzárendelt felügyelt identitást. A VM Image Builder ezt az identitást használja képek olvasására, képek írására és Azure Storage-fiókok elérésére. Ön megadja az identitásengedélyt, hogy bizonyos műveleteket hajtson végre az előfizetésében.
Feljegyzés
A felhasználó által hozzárendelt felügyelt identitás a megfelelő módja annak, hogy engedélyeket adjon a képerőforrás-csoportoknak. Az egyszerű szolgáltatásnév elavult erre a célra.
Az alábbi példa bemutatja, hogyan hozhat létre azure-beli felhasználó által hozzárendelt felügyelt identitást. Cserélje le a helyőrző beállításait a változók beállításához.
Beállítás | Leírás |
---|---|
<Erőforráscsoport> | Az az erőforráscsoport, amelyben létre szeretné hozni a felhasználó által hozzárendelt felügyelt identitást. |
identityName="aibIdentity"
imageResourceGroup=<Resource group>
az identity create \
--resource-group $imageResourceGroup \
--name $identityName
További információ: Azure felhasználó által hozzárendelt felügyelt identitás.
Képek terjesztésének engedélyezése a VM Image Builder számára
Ahhoz, hogy a VM Image Builder lemezképeket terjesztsen, a szolgáltatásnak engedélyeznie kell a képek erőforráscsoportokba való beszúrását. A szükséges engedélyek megadásához hozzon létre egy felhasználó által hozzárendelt felügyelt identitást, és adjon neki jogosultságokat azon az erőforráscsoporton, ahol a rendszerkép létrejön. A VM Image Builder nem rendelkezik engedéllyel az előfizetés más erőforráscsoportjaiban lévő erőforrások eléréséhez. Explicit műveleteket kell végrehajtania a hozzáférés engedélyezéséhez, hogy megakadályozza a buildek meghibásodását.
A rendszerképek terjesztéséhez nem kell megadnia a felhasználó által hozzárendelt felügyelt identitás közreműködői jogosultságát az erőforráscsoporton. A felhasználó által hozzárendelt felügyelt identitásnak azonban a következő Azure-engedélyekre Actions
van szüksége a terjesztési erőforráscsoportban:
Microsoft.Compute/images/write
Microsoft.Compute/images/read
Microsoft.Compute/images/delete
Ha az Azure Compute Galleryben szeretne terjeszteni, a következőkre is szüksége van:
Microsoft.Compute/galleries/read
Microsoft.Compute/galleries/images/read
Microsoft.Compute/galleries/images/versions/read
Microsoft.Compute/galleries/images/versions/write
Meglévő rendszerképek testreszabásának engedélyezése
Ahhoz, hogy a VM Image Builder képeket hozzon létre a forrás egyéni rendszerképeiből, a szolgáltatásnak engedélyeznie kell a képek olvasását ezekben az erőforráscsoportokban. A szükséges engedélyek megadásához hozzon létre egy felhasználó által hozzárendelt felügyelt identitást, és adjon neki jogosultságokat azon az erőforráscsoporton, ahol a rendszerkép található.
Egy meglévő egyéni rendszerképből az alábbiakat hozhatja létre:
Microsoft.Compute/images/read
Az alábbiak szerint hozhat létre egy meglévő Azure Compute Gallery-verziót:
Microsoft.Compute/galleries/read
Microsoft.Compute/galleries/images/read
Microsoft.Compute/galleries/images/versions/read
Képek testreszabásának engedélyezése a virtuális hálózatokon
A VM Image Builder képes egy meglévő virtuális hálózat üzembe helyezésére és használatára az előfizetésben, így lehetővé téve a testreszabások hozzáférését a csatlakoztatott erőforrásokhoz.
A virtuális gépek meglévő virtuális hálózaton való üzembe helyezéséhez nem kell a felhasználó által hozzárendelt felügyelt identitás közreműködői jogosultságokat biztosítani az erőforráscsoporton. A felhasználó által hozzárendelt felügyelt identitásnak azonban a következő Azure-engedélyekre Actions
van szüksége a virtuális hálózati erőforráscsoporton:
Microsoft.Network/virtualNetworks/read
Microsoft.Network/virtualNetworks/subnets/join/action
Azure-szerepkördefiníció létrehozása
Az alábbi példák egy Azure-szerepkördefiníciót hoznak létre az előző szakaszokban ismertetett műveletekből. A példákat az erőforráscsoport szintjén alkalmazza a rendszer. Értékelje ki és tesztelje, hogy a példák elég részletesek-e a követelményekhez.
A képműveletek lehetővé teszik az olvasást és az írást. Döntse el, hogy mi felel meg a környezetének. Hozzon létre például egy szerepkört, amely lehetővé teszi a VM Image Builder számára, hogy képeket olvasson az erőforráscsoport example-rg-1 erőforráscsoportjából, és képeket írjon az erőforráscsoport example-rg-2 erőforráscsoportba.
Példa egyéni rendszerkép Azure-szerepkörre
Az alábbi példa létrehoz egy Azure-szerepkört egy egyéni forrásrendszerkép használatához és terjesztéséhez. Ezután adja meg az egyéni szerepkört a VM Image Builder felhasználó által hozzárendelt felügyelt identitásának.
Ha egyszerűsíteni szeretné a példában szereplő értékek cseréjét, először állítsa be a következő változókat. Cserélje le a helyőrző beállításait a változók beállításához.
Beállítás | Leírás |
---|---|
<Előfizetés azonosítója> | Az Azure-előfizetés azonosítója. |
<Erőforráscsoport> | Az egyéni rendszerkép erőforráscsoportja. |
# Subscription ID - You can get this using `az account show | grep id` or from the Azure portal.
subscriptionID=$(az account show --query id --output tsv)
# Resource group - image builder will only support creating custom images in the same Resource Group as the source managed image.
imageResourceGroup=<Resource group>
identityName="aibIdentity"
# Use *cURL* to download the a sample JSON description
curl https://raw.githubusercontent.com/azure/azvmimagebuilder/master/solutions/12_Creating_AIB_Security_Roles/aibRoleImageCreation.json -o aibRoleImageCreation.json
# Create a unique role name to avoid clashes in the same Azure Active Directory domain
imageRoleDefName="Azure Image Builder Image Def"$(date +'%s')
# Update the JSON definition using stream editor
sed -i -e "s/<subscriptionID>/$subscriptionID/g" aibRoleImageCreation.json
sed -i -e "s/<rgName>/$imageResourceGroup/g" aibRoleImageCreation.json
sed -i -e "s/Azure Image Builder Service Image Creation Role/$imageRoleDefName/g" aibRoleImageCreation.json
# Create a custom role from the sample aibRoleImageCreation.json description file.
az role definition create --role-definition ./aibRoleImageCreation.json
# Get the user-assigned managed identity id
imgBuilderCliId=$(az identity show -g $imageResourceGroup -n $identityName --query clientId -o tsv)
# Grant the custom role to the user-assigned managed identity for Azure Image Builder.
az role assignment create \
--assignee $imgBuilderCliId \
--role $imageRoleDefName \
--scope /subscriptions/$subscriptionID/resourceGroups/$imageResourceGroup
Meglévő virtuális hálózat azure-beli szerepkörének példája
Az alábbi példa létrehoz egy Azure-szerepkört egy meglévő virtuális hálózati rendszerkép használatához és terjesztéséhez. Ezután adja meg az egyéni szerepkört a VM Image Builder felhasználó által hozzárendelt felügyelt identitásának.
Ha egyszerűsíteni szeretné a példában szereplő értékek cseréjét, először állítsa be a következő változókat. Cserélje le a helyőrző beállításait a változók beállításához.
Beállítás | Leírás |
---|---|
<Előfizetés azonosítója> | Az Azure-előfizetés azonosítója. |
<Erőforráscsoport> | A virtuális hálózati erőforráscsoport |
# Subscription ID - You can get this using `az account show | grep id` or from the Azure portal.
subscriptionID=$(az account show --query id --output tsv)
VnetResourceGroup=<Resource group>
identityName="aibIdentity"
# Use *cURL* to download the a sample JSON description
curl https://raw.githubusercontent.com/azure/azvmimagebuilder/master/solutions/12_Creating_AIB_Security_Roles/aibRoleNetworking.json -o aibRoleNetworking.json
# Create a unique role name to avoid clashes in the same domain
netRoleDefName="Azure Image Builder Network Def"$(date +'%s')
# Update the JSON definition using stream editor
sed -i -e "s/<subscriptionID>/$subscriptionID/g" aibRoleNetworking.json
sed -i -e "s/<vnetRgName>/$VnetResourceGroup/g" aibRoleNetworking.json
sed -i -e "s/Azure Image Builder Service Networking Role/$netRoleDefName/g" aibRoleNetworking.json
# Create a custom role from the aibRoleNetworking.json description file.
az role definition create --role-definition ./aibRoleNetworking.json
# Get the user-assigned managed identity id
imgBuilderCliId=$(az identity show -g $imageResourceGroup -n $identityName --query clientId -o tsv)
# Grant the custom role to the user-assigned managed identity for Azure Image Builder.
az role assignment create \
--assignee $imgBuilderCliId \
--role $netRoleDefName \
--scope /subscriptions/$subscriptionID/resourceGroups/$VnetResourceGroup
Felügyelt identitás használata az Azure Storage-hozzáféréshez
Ha az Azure Storage-ban szeretne hitelesíteni, és privát tárolókat szeretne használni, a VM Image Buildernek felhasználó által hozzárendelt felügyelt identitásra van szüksége. A VM Image Builder az identitással hitelesíti az Azure Storage-ot.
Feljegyzés
A VM Image Builder csak a képsablon elküldésekor használt identitást használja. A buildelési virtuális gép nem rendelkezik hozzáféréssel az identitáshoz a rendszerkép készítése során.
Az Azure CLI használatával hozza létre a felhasználó által hozzárendelt felügyelt identitást:
az role assignment create \
--assignee <Image Builder client ID> \
--role "Storage Blob Data Reader" \
--scope /subscriptions/<Subscription ID>/resourceGroups/<Resource group>/providers/Microsoft.Storage/storageAccounts/$scriptStorageAcc/blobServices/default/containers/<Storage account container>
A VM Image Builder-sablonban adja meg a felhasználó által hozzárendelt felügyelt identitást:
"type": "Microsoft.VirtualMachineImages/imageTemplates",
"apiVersion": "2020-02-14",
"location": "<Region>",
..
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<Image Builder ID>": {}
}
Cserélje le a következő helyőrző beállításokat:
Beállítás | Leírás |
---|---|
<Régió> | Sablonrégió |
<Erőforráscsoport> | Erőforráscsoport |
<Tárfiók tárolója> | Tárfiók tárolójának neve |
<Előfizetés azonosítója> | Azure-előfizetés |
További információ: Lemezkép létrehozása és felhasználó által hozzárendelt felügyelt identitás használata az Azure Storage-fájlok eléréséhez. Megtudhatja, hogyan hozhatja létre és konfigurálhatja a felhasználó által hozzárendelt felügyelt identitást egy tárfiók eléréséhez.