Oktatóanyag: A Windows rendszerű virtuális gépek Azure PowerShell való kezelésének ismertetése
Amikor erőforrásokat helyez üzembe az Azure-ban, elképesztően rugalmasan dönthet arról, milyen típusú erőforrásokat szeretne üzembe helyezni, hol legyenek és hogyan állítja be őket. Előfordulhat azonban, hogy ez a rugalmasság több lehetőséget teremt, mint amennyit a szervezeten belül engedélyezni szeretne. Amikor erőforrások Azure-ban való üzembe helyezését mérlegeli, esetleg felmerülhetnek az alábbi kérdések:
- Hogyan megfelel-e bizonyos országokban/régiókban az adatok elkülönítésére vonatkozó jogi követelményeknek?
- Hogyan szabályozhatom a költségeket?
- Hogyan biztosíthatom, hogy senki ne módosítson akarata ellenére egy kritikus rendszert?
- Hogyan követhetem nyomon és számlázhatom pontosan a költségeket?
A cikk ezekkel a kérdésekkel foglalkozik. Konkrétan a következőket fogja tenni:
- Hozzárendel felhasználókat szerepkörökhöz, és hozzárendeli a szerepköröket egy hatókörhöz, hogy a felhasználók engedélyt kapjanak az elvárt műveletek elvégzésére, de másra ne.
- Az előfizetésében lévő erőforrásokra konvenciókat előíró szabályzatokat alkalmaz.
- Zárolja a rendszer szempontjából kritikus fontosságú erőforrásokat.
- Felcímkézi az erőforrásokat, hogy nyomon követhesse őket a szervezet számára jelentéssel bíró értékek szerint.
Ez a cikk az irányítás megvalósításához elvégzendő feladatokra összpontosít. A fogalmak részletesebb ismertetését az Azure-beli irányítást ismertető cikkben találja.
Az Azure Cloud Shell elindítása
Az Azure Cloud Shell egy olyan ingyenes interaktív kezelőfelület, amelyet a jelen cikkben található lépések futtatására használhat. A fiókjával való használat érdekében a gyakran használt Azure-eszközök már előre telepítve és konfigurálva vannak rajta.
A Cloud Shell megnyitásához válassza a Kipróbálás lehetőséget egy kódblokk jobb felső sarkában. A Cloud Shellt egy külön böngészőlapon is elindíthatja a https://shell.azure.com/powershell cím megnyitásával. A Copy (másolás) gombra kattintva másolja és illessze be a kódot a Cloud Shellbe, majd nyomja le az Enter billentyűt a futtatáshoz.
A hatókör bemutatása
Mielőtt létrehoznánk bármit is, tekintsük át a hatókör fogalmát. Az Azure négy felügyeleti szintet biztosít: felügyeleti csoportok, előfizetés, erőforráscsoport és erőforrás. A felügyeleti csoportok szintje egyelőre előzetes verzióban érhető el. Az alábbi ábra ezekre a rétegekre mutat egy példát.
Felügyeleti beállításokat a hatókörszintek bármelyikéhez megadhat. A kiválasztott szint határozza meg, milyen széles körben lesz alkalmazva a beállítás. Az alacsonyabb szintek öröklik a magasabb szintek beállításait. Amikor alkalmaz egy beállítást az előfizetésre, a beállítást a rendszer alkalmazza az előfizetésben lévő összes erőforráscsoportra és erőforrásra. Amikor alkalmaz egy beállítást az erőforráscsoportra, az a beállítás érvényben lesz az erőforráscsoporton és annak összes erőforrásán. Más erőforráscsoportra azonban nem érvényes ez a beállítás.
Általában logikus döntés a kritikus fontosságú beállításokat magasabb szinten alkalmazni, a projektspecifikus feltételeket pedig alacsonyabb szinten. Előfordulhat például, hogy biztosítani szeretné, hogy a szervezet összes erőforrása bizonyos régiókban legyen üzembe helyezve. A feltétel teljesítéséhez alkalmazzon egy, a megengedett helyeket megadó szabályzatot az előfizetésre. Ahogy a szervezet más felhasználói új erőforráscsoportokat és erőforrásokat vesznek fel, a rendszer automatikusan kikényszeríti a megengedett helyeket.
Ebben az oktatóanyagban minden kezelési beállítást egy erőforráscsoportra alkalmaz, így egyszerűen eltávolíthatja a beállításokat, ha elkészült.
Hozzuk létre az erőforráscsoportot.
New-AzResourceGroup -Name myResourceGroup -Location EastUS
Az erőforráscsoport jelenleg üres.
Azure-beli szerepköralapú hozzáférés-vezérlés
Győződjön meg arról, hogy az intézmény felhasználói megfelelő hozzáférési szinttel rendelkeznek ezekhez az erőforrásokhoz. Nem ajánlott korlátlan hozzáférést nyújtania a felhasználóknak, de fontos biztosítania, hogy el tudják végezni a munkájukat. Az Azure-beli szerepköralapú hozzáférés-vezérlés (Azure RBAC) lehetővé teszi annak kezelését, hogy mely felhasználók jogosultak adott műveletek elvégzésére egy hatókörben.
A szerepkör-hozzárendelések létrehozásához és eltávolításához a felhasználóknak Microsoft.Authorization/roleAssignments/*
hozzáféréssel kell rendelkezniük. Ez a hozzáférés a tulajdonosi vagy a felhasználói hozzáférés rendszergazdájának szerepkörével adható meg.
A virtuálisgép-megoldások kezeléséhez három erőforrás-specifikus szerepkör létezik, amelyek biztosítják a leggyakrabban szükséges hozzáféréseket:
Ahelyett, hogy szerepköröket rendelne az egyéni felhasználókhoz, gyakran célszerűbb egy azokat a felhasználókat tartalmazó Azure Active Directory-csoportot használni, akiknek hasonló műveleteket kell elvégezniük. Ezután rendelje hozzá a csoportot a megfelelő szerepkörhöz. Ehhez a cikkhez használhat egy meglévő csoportot a virtuális gép kezeléséhez, vagy a portálon létrehozhat egy Azure Active Directory-csoportot.
Új csoport létrehozása vagy egy meglévő megtalálása után a New-AzRoleAssignment paranccsal rendelje hozzá az Azure Active Directory-csoportot az erőforráscsoport virtuálisgép-közreműködői szerepköréhez.
$adgroup = Get-AzADGroup -DisplayName <your-group-name>
New-AzRoleAssignment -ObjectId $adgroup.id `
-ResourceGroupName myResourceGroup `
-RoleDefinitionName "Virtual Machine Contributor"
Ha hibaüzenetet kap, amely szerint az egyszerű <GUID> nem létezik a címtárban, az új csoport nem propagálta az Azure Active Directoryban. Próbálja meg ismét futtatni a parancsot.
A folyamatot általában a Hálózati közreműködő és a Tárfiók-közreműködő szerepkörön is végre kell hajtani, hogy a felhasználók megkapják az üzembe helyezett erőforrások kezeléséhez szükséges jogosultságokat. Ebben a cikkben kihagyhatja ezeket a lépéseket.
Azure Policy
Az Azure Policy segítségével ellenőrizheti, hogy az előfizetés összes erőforrása megfelel-e a vállalati szabványoknak. Az előfizetése már számos szabályzatdefinícióval rendelkezik. Az elérhető szabályzatdefiníciók megtekintéséhez használja a Get-AzPolicyDefinition parancsot:
(Get-AzPolicyDefinition).Properties | Format-Table displayName, policyType
Itt láthatja a meglévő szabályzatdefiníciókat. A szabályzat típusa lehet Beépített vagy Egyéni. Keresse meg azokat a definíciókat, amelyek az Ön által hozzárendelni kívánt feltételt írják le. Ebben a cikkben olyan szabályzatokat rendel hozzá, amelyek:
- Korlátozzák az összes erőforrás helyét.
- Korlátozzák a virtuális gépek termékváltozatait.
- Naplózzák a felügyelt lemezeket nem használó virtuális gépeket.
A következő példában három olyan szabályzatdefiníciót fog lekérni, amely a megjelenítendő néven alapul. Ezeket a definíciókat a New-AzPolicyAssignment paranccsal rendelheti hozzá az erőforráscsoporthoz. Egyes szabályzatoknál paraméterértékekkel határozhatja meg az engedélyezett értékeket.
# Values to use for parameters
$locations ="eastus", "eastus2"
$skus = "Standard_DS1_v2", "Standard_E2s_v2"
# Get the resource group
$rg = Get-AzResourceGroup -Name myResourceGroup
# Get policy definitions for allowed locations, allowed SKUs, and auditing VMs that don't use managed disks
$locationDefinition = Get-AzPolicyDefinition | where-object {$_.properties.displayname -eq "Allowed locations"}
$skuDefinition = Get-AzPolicyDefinition | where-object {$_.properties.displayname -eq "Allowed virtual machine size SKUs"}
$auditDefinition = Get-AzPolicyDefinition | where-object {$_.properties.displayname -eq "Audit VMs that do not use managed disks"}
# Assign policy for allowed locations
New-AzPolicyAssignment -Name "Set permitted locations" `
-Scope $rg.ResourceId `
-PolicyDefinition $locationDefinition `
-listOfAllowedLocations $locations
# Assign policy for allowed SKUs
New-AzPolicyAssignment -Name "Set permitted VM SKUs" `
-Scope $rg.ResourceId `
-PolicyDefinition $skuDefinition `
-listOfAllowedSKUs $skus
# Assign policy for auditing unmanaged disks
New-AzPolicyAssignment -Name "Audit unmanaged disks" `
-Scope $rg.ResourceId `
-PolicyDefinition $auditDefinition
A virtuális gép üzembe helyezése
A szerepkörök és szabályzatok hozzárendelése megtörtént, így megkezdheti a megoldás üzembe helyezését. Az alapértelmezett méret a Standard_DS1_v2, amely az egyik engedélyezett termékváltozat. Ennek a lépésnek a futtatásakor a rendszer a hitelesítő adatok megadását kéri. Az itt megadott értékek határozzák meg a virtuális géphez tartozó felhasználónevet és jelszavát.
New-AzVm -ResourceGroupName "myResourceGroup" `
-Name "myVM" `
-Location "East US" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-SecurityGroupName "myNetworkSecurityGroup" `
-PublicIpAddressName "myPublicIpAddress" `
-OpenPorts 80,3389
Az üzembe helyezés befejezése után további kezelési beállításokat alkalmazhat a megoldáson.
Erőforrások zárolása
Az Erőforrás-zárolások megakadályozzák, hogy a cég vagy intézmény felhasználói véletlenül töröljék vagy módosítsák a kritikus erőforrásokat. Az erőforrás-zárolások a szerepköralapú hozzáférés-vezérléssel szemben minden felhasználóra és szerepkörre érvényes korlátozásokat alkalmaznak. A zárolási szintet CanNotDelete (nem törölhető) vagy ReadOnly (csak olvasható) értékre állíthatja be.
A virtuális gép és a hálózati biztonsági csoport zárolásához használja a New-AzResourceLock parancsot:
# Add CanNotDelete lock to the VM
New-AzResourceLock -LockLevel CanNotDelete `
-LockName LockVM `
-ResourceName myVM `
-ResourceType Microsoft.Compute/virtualMachines `
-ResourceGroupName myResourceGroup
# Add CanNotDelete lock to the network security group
New-AzResourceLock -LockLevel CanNotDelete `
-LockName LockNSG `
-ResourceName myNetworkSecurityGroup `
-ResourceType Microsoft.Network/networkSecurityGroups `
-ResourceGroupName myResourceGroup
A zárolások teszteléséhez futtassa az alábbi parancsot:
Remove-AzResourceGroup -Name myResourceGroup
Megjelenik egy hibaüzenet, amely szerint a törlési művelet nem hajtható végre egy zárolás miatt. Az erőforráscsoport csak akkor törölhető, ha külön eltávolítja a zárolásokat. Ezt a lépést Az erőforrások eltávolítása című szakasz ismerteti.
Erőforrások címkézése
Címkéket alkalmazhat az Azure-erőforrásokra, hogy kategóriák szerint logikailag rendszerezze őket. Minden címke egy névből és egy értékből áll. Alkalmazhatja például a „Környezet” nevet és az „Éles” értéket az összes éles üzemben használt erőforrásra.
Ha két címkét szeretne hozzáadni egy erőforráscsoporthoz, használja a Set-AzResourceGroup parancsot:
Set-AzResourceGroup -Name myResourceGroup -Tag @{ Dept="IT"; Environment="Test" }
Tegyük fel, hogy hozzá kíván adni egy harmadik címkét. Minden alkalommal, amikor címkével lát el egy erőforrást vagy erőforráscsoportot, felülírja a hozzá tartozó korábbi címkéket. Ha a meglévő címkék elvesztése nélkül szeretne hozzáadni egy új címkét, le kell kérnie a meglévő címkéket, hozzá kell adnia egy új címkét, és újra alkalmaznia kell a címkegyűjteményt:
# Get existing tags and add a new tag
$tags = (Get-AzResourceGroup -Name myResourceGroup).Tags
$tags.Add("Project", "Documentation")
# Reapply the updated set of tags
Set-AzResourceGroup -Tag $tags -Name myResourceGroup
Az erőforrások nem örökölnek címkéket az erőforráscsoporttól. Az erőforráscsoportnak jelenleg három címkéje van, de az erőforrásoknak nincs címkéjük. Ha az erőforráscsoport összes címkéjét alkalmazni kívánja a csoport erőforrásaira, és nem szeretné megőrizni az erőforrások meglévő, nem ismétlődő címkéit, használja a következő szkriptet:
# Get the resource group
$group = Get-AzResourceGroup myResourceGroup
if ($group.Tags -ne $null) {
# Get the resources in the resource group
$resources = Get-AzResource -ResourceGroupName $group.ResourceGroupName
# Loop through each resource
foreach ($r in $resources)
{
# Get the tags for this resource
$resourcetags = (Get-AzResource -ResourceId $r.ResourceId).Tags
# If the resource has existing tags, add new ones
if ($resourcetags)
{
foreach ($key in $group.Tags.Keys)
{
if (-not($resourcetags.ContainsKey($key)))
{
$resourcetags.Add($key, $group.Tags[$key])
}
}
# Reapply the updated tags to the resource
Set-AzResource -Tag $resourcetags -ResourceId $r.ResourceId -Force
}
else
{
Set-AzResource -Tag $group.Tags -ResourceId $r.ResourceId -Force
}
}
}
Másik megoldásként alkalmazhatja az erőforráscsoport címkéit az erőforrásokra a meglévő címkék megtartása nélkül:
# Get the resource group
$g = Get-AzResourceGroup -Name myResourceGroup
# Find all the resources in the resource group, and for each resource apply the tags from the resource group
Get-AzResource -ResourceGroupName $g.ResourceGroupName | ForEach-Object {Set-AzResource -ResourceId $_.ResourceId -Tag $g.Tags -Force }
Ha több értéket szeretne kombinálni egyetlen címkében, használjon JSON-sztringet.
Set-AzResourceGroup -Name myResourceGroup -Tag @{ CostCenter="{`"Dept`":`"IT`",`"Environment`":`"Test`"}" }
Ha több értékkel rendelkező új címkét szeretne hozzáadni a meglévő címkék elvesztése nélkül, le kell kérnie a meglévő címkéket, JSON-sztringet kell használnia az új címkéhez, és újra kell alkalmaznia a címkék gyűjteményét:
# Get existing tags and add a new tag
$ResourceGroup = Get-AzResourceGroup -Name myResourceGroup
$Tags = $ResourceGroup.Tags
$Tags.Add("CostCenter", "{`"Dept`":`"IT`",`"Environment`":`"Test`"}")
# Reapply the updated set of tags
$ResourceGroup | Set-AzResourceGroup -Tag $Tags
Az összes címke eltávolításához adjon át egy üres kivonattáblát.
Set-AzResourceGroup -Name myResourceGroup -Tag @{ }
Ha címkéket szeretne alkalmazni egy virtuális gépre, használja a Set-AzResource parancsot:
# Get the virtual machine
$r = Get-AzResource -ResourceName myVM `
-ResourceGroupName myResourceGroup `
-ResourceType Microsoft.Compute/virtualMachines
# Apply tags to the virtual machine
Set-AzResource -Tag @{ Dept="IT"; Environment="Test"; Project="Documentation" } -ResourceId $r.ResourceId -Force
Erőforrások keresése címke szerint
Címkenévvel és értékkel rendelkező erőforrások kereséséhez használja a Get-AzResource parancsot:
(Get-AzResource -Tag @{ Environment="Test"}).Name
A visszaadott értékeket kezelési feladatokhoz, például az adott címkeértékkel rendelkező összes virtuális gép leállításához használhatja.
Get-AzResource -Tag @{ Environment="Test"} | Where-Object {$_.ResourceType -eq "Microsoft.Compute/virtualMachines"} | Stop-AzVM
Költségek megtekintése címkeértékek szerint
Az erőforrások felcímkézése után megtekintheti az adott címkével ellátott erőforrások költségét. A legutóbbi használati adatok megjelenítése eltarthat egy darabig a költségelemzés számára, tehát előfordulhat, hogy rögtön nem látja a költségeket. Amikor a költségek már elérhetők, megtekintheti az előfizetésében lévő erőforráscsoportok erőforrásainak költségét. A költségek megtekintéséhez a felhasználóknak előfizetéses szintű hozzáféréssel kell rendelkezniük a számlázási adatokhoz.
Ha címke szerint szeretné megtekinteni a költségeket a portálon, válassza ki az előfizetését, és válassza a Költségelemzés lehetőséget.
Ezután szűrjön címkeérték szerint, és válassza az Alkalmaz lehetőséget.
Az Azure consumption API áttekintésével programozott módon is megtekintheti a költségeket.
Az erőforrások eltávolítása
A zárolt hálózati biztonsági csoport nem törölhető a zárolás eltávolításáig. A zárolás eltávolításához használja a Remove-AzResourceLock parancsot:
Remove-AzResourceLock -LockName LockVM `
-ResourceName myVM `
-ResourceType Microsoft.Compute/virtualMachines `
-ResourceGroupName myResourceGroup
Remove-AzResourceLock -LockName LockNSG `
-ResourceName myNetworkSecurityGroup `
-ResourceType Microsoft.Network/networkSecurityGroups `
-ResourceGroupName myResourceGroup
Ha már nincs rá szükség, a Remove-AzResourceGroup paranccsal eltávolíthatja az erőforráscsoportot, a virtuális gépet és az összes kapcsolódó erőforrást.
Remove-AzResourceGroup -Name myResourceGroup
Költségek kezelése
Az Azure-szolgáltatások pénzbe kerülnek. Az Azure Cost Management segít a költségvetések beállításában és a riasztások konfigurálásában, hogy kézben tarthassa a költségeket. A Cost Managementtel elemezheti, kezelheti és optimalizálhatja az Azure-költségeit. További információt a költségek elemzésének gyorsútmutatójában talál.
Következő lépések
Ebben az oktatóanyagban létrehozott egy egyéni virtuálisgép-rendszerképet. Megtanulta végrehajtani az alábbi műveleteket:
- Felhasználók hozzárendelése szerepkörhöz
- Szabványokat kényszerítő szabályzatok alkalmazása
- Kritikus erőforrások védelme zárolásokkal
- Erőforrások címkézése számlázáshoz és felügyelethez
Lépjen tovább a következő oktatóanyagra, amelyből megtudhatja, hogyan azonosíthatja a módosításokat, és hogyan kezelheti a csomagfrissítéseket egy Linux rendszerű virtuális gépen.