Az Azure Image Builder szolgáltatás engedélyeinek 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 (AIB) szolgáltatásra, ez engedélyt ad az AIB-szolgáltatásnak egy átmeneti erőforráscsoport (IT_*) létrehozására, kezelésére és törlésére, és jogosult erőforrások hozzáadására, amelyek a rendszerkép összeállításához szükségesek. Ezt egy AIB egyszerű szolgáltatásnév (SPN) teszi elérhetővé az előfizetésben a sikeres regisztráció során.

Ahhoz, hogy az Azure VM Image Builder eloszthassa a rendszerképeket a felügyelt rendszerképek között vagy egy Azure Compute-katalógusba (korábbi nevén megosztott rendszerkép-katalógusba), létre kell hoznia egy Azure-beli felhasználó által hozzárendelt identitást, amely rendelkezik a képek olvasásához és írásához szükséges engedélyekkel. Ha az Azure Storage-hoz fér hozzá, akkor ehhez engedélyekre lesz 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 a lehetséges forgatókönyvek Azure CLI-vel történő konfigurálását ismertetik.

Előfeltételek

Felhasználó által hozzárendelt Azure-beli felügyelt identitás létrehozása

Az Azure Image Builder használatához létre kell hoznia egy Azure-felhasználó által hozzárendelt felügyelt identitást. Az Azure Image Builder a felhasználó által hozzárendelt felügyelt identitással képeket olvas, képeket ír, és hozzáfér az Azure Storage-fiókokhoz. Engedélyt ad az identitásnak arra, hogy bizonyos műveleteket hajtson végre az előfizetésében.

Megjegyzés

Korábban az Azure Image Builder az Azure Image Builder egyszerű szolgáltatásnevével (SPN) adott engedélyeket a rendszerkép-erőforráscsoportoknak. Az egyszerű szolgáltatásnév használata elavult. Használjon inkább felhasználó által hozzárendelt felügyelt identitást.

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ásokat a változók beállításához.

Beállítás Leírás
<Erőforráscsoport> Erőforráscsoport, ahol létre kell hozni a felhasználó által hozzárendelt felügyelt identitást.
identityName="aibIdentity"
imageResourceGroup=<Resource group>

az identity create \
    --resource-group $imageResourceGroup \
    --name $identityName

Az Azure-beli felhasználó által hozzárendelt identitásokkal kapcsolatos további információkért tekintse meg az Azure felhasználó által hozzárendelt felügyelt identitásainak dokumentációját az identitások létrehozásáról.

Képek terjesztésének engedélyezése az Image Builder számára

Ahhoz, hogy az Azure Image Builder lemezképeket oszthasson ki (felügyelt rendszerképek/Azure Compute-katalógus), az Azure Image Builder szolgáltatásnak engedélyezni kell a rendszerképek beszúrását ezekbe az erőforráscsoportokba. A szükséges engedélyek megadásához létre kell hoznia egy felhasználó által hozzárendelt felügyelt identitást, és jogosultságokat kell biztosítania a rendszerképet tartalmazó erőforráscsoporthoz. Az Azure 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 elkerülje a buildek meghibásodását.

A rendszerképek terjesztéséhez nem kell a felhasználó által hozzárendelt felügyelt identitás közreműködői jogosultságokat adni az erőforráscsoporthoz. 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

Azure Compute-katalógusba való terjesztés esetén a következőkre is szüksége lesz:

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 az Azure Image Builder képeket hozhasson létre egyéni forrásként szolgáló rendszerképekből (Felügyelt rendszerképek/Azure Compute-katalógus), az Azure Image Builder szolgáltatásnak engedélyezni kell a rendszerképek beolvasását ezekben az erőforráscsoportokban. A szükséges engedélyek megadásához létre kell hoznia egy felhasználó által hozzárendelt felügyelt identitást, és jogosultságokat kell biztosítania a rendszerképet tartalmazó erőforráscsoporthoz.

Buildelés meglévő egyéni rendszerképből:

Microsoft.Compute/galleries/read

Buildelés az Azure Compute-katalógus meglévő verziójából:

Microsoft.Compute/galleries/read
Microsoft.Compute/galleries/images/read
Microsoft.Compute/galleries/images/versions/read

A virtuális hálózatok lemezképeinek testreszabására vonatkozó engedély

Az Azure 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 számára a csatlakoztatott erőforrásokhoz való hozzáférést.

A virtuális gép 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 VNET-erőforráscsoporton:

Microsoft.Network/virtualNetworks/read
Microsoft.Network/virtualNetworks/subnets/join/action

Azure-beli szerepkör-definí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ák az erőforráscsoport szintjén vannak alkalmazva. Értékelje ki és tesztelje, hogy a példák elég részletesek-e a követelményekhez. Előfordulhat, hogy egy adott Azure Compute-katalógusba kell finomítania a forgatókönyvet.

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 az Azure Image Builder számára, hogy képeket olvasson az example-rg-1 erőforráscsoportból, és képeket írjon az example-rg-2 erőforráscsoportba.

Egyéni rendszerkép – Azure-szerepkör – példa

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 megadja az egyéni szerepkört az Azure Image Builder felhasználó által hozzárendelt felügyelt identitásának.

A példában szereplő értékek pótlásának egyszerűsítése érdekében először állítsa be a következő változókat. Cserélje le a helyőrző beállításokat 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> 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ő azure-beli VNET-szerepkör

Az alábbi példa létrehoz egy Azure-szerepkört egy meglévő VNET-rendszerkép használatához és terjesztéséhez. Ezután megadja az egyéni szerepkört az Azure Image Builder felhasználó által hozzárendelt felügyelt identitásának.

A példában szereplő értékek pótlásának egyszerűsítése érdekében először állítsa be a következő változókat. Cserélje le a helyőrző beállításokat 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> VNET-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>/$vnetRgName/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 látszólag hitelesíteni szeretne az Azure Storage-ral, és privát tárolókat szeretne használni, az Azure Image Builderhez egy felhasználó által hozzárendelt felügyelt identitásra van szükség. Az Azure Image Builder az identitás használatával hitelesíti magát az Azure Storage-ban.

Megjegyzés

Az Azure Image Builder csak a képsablon beküldésekor használja az identitást. A buildelési virtuális gép nem rendelkezik hozzáféréssel az identitáshoz a rendszerkép összeállítása 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>

Az Image Builder-sablonban meg kell adnia 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ó> Sablonterület
<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

A felhasználó által hozzárendelt felügyelt identitás használatával kapcsolatos további információkért tekintse meg az Azure User-Assigned Managed Identityt használó egyéni rendszerkép létrehozását az Azure Storage-fájlok látszólagos eléréséhez. A rövid útmutató bemutatja, 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.

Következő lépések

További információkért lásd az Azure Image Builder áttekintését.