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

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.

Megjegyzé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 Description
<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 Description
<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 Description
<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.

Megjegyzé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 Description
<Region> 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 subscription

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.

További lépések

Az Azure VM Image Builder áttekintése