Erőforrások zárolása a váratlan módosítások megelőzése érdekében

Rendszergazdaként szüksége lehet egy előfizetés, erőforráscsoport vagy erőforrás zárolására annak érdekében, hogy a szervezet többi felhasználója ne tudja véletlenül törölni vagy módosítani a kritikus fontosságú erőforrásokat. A zárolás felülír minden engedélyt, amellyel a felhasználók esetleg rendelkeznek.

A zárolási szintet CanNotDelete (nem törölhető) vagy ReadOnly (csak olvasható) értékre állíthatja be. A portálon ugyanezen zárolási szintek neve Törlés és Csak olvasható.

  • A CanNotDelete azt jelenti, hogy a jogosult felhasználók továbbra is olvashatják és módosíthatják az erőforrásokat, de nem törölhetik az erőforrást.
  • A ReadOnly azt jelenti, hogy a jogosult felhasználók olvashatják az erőforrásokat, de nem törölhetik vagy frissíthetik az erőforrást. A zárolás alkalmazása hasonló ahhoz, mint amikor az összes jogosult felhasználót az Olvasó szerepkör által megadott engedélyekre korlátozza.

A felügyeleti zárolás a szerepköralapú hozzáférés-vezérléssel szemben minden felhasználóra és szerepkörre érvényes korlátozásokat alkalmaz. További információ a felhasználók és szerepkörök engedélyeinek beállításával kapcsolatban: Azure szerepköralapú hozzáférés-vezérlés (Azure RBAC).

Zárolás öröklése

Ha egy szülőhatókörre alkalmaz zárolást, az adott hatókörben lévő összes erőforrás ugyanazt a zárolást örökli. Még a később hozzáadt erőforrások is öröklik a zárolást a szülőtől. Az öröklés legszigorúbb zárolása élvez elsőbbséget.

A zárolások hatókörének megismerése

Megjegyzés

Fontos tudni, hogy a zárolások nem vonatkoznak minden művelettípusra. Az Azure-műveletek két kategóriába sorolhatók: vezérlősíkra és adatsíkra. A zárolások csak a vezérlősík műveleteire vonatkoznak.

A vezérlősík műveletei a rendszernek küldött https://management.azure.com műveletek. Az adatsík-műveletek olyan műveletek, amelyek egy szolgáltatáspéldánynak vannak elküldve, például https://myaccount.blob.core.windows.net/ . További információ: Azure-beli vezérlősík és adatsík. Annak felderítéséhez, hogy mely műveletek használják a vezérlősík URL-címét, tekintse meg az Azure REST API.

Ez a megkülönböztetés azt jelenti, hogy a zárolások megakadályozzák az erőforrások módosításait, de nem korlátozzák az erőforrások saját funkcióinak elvégzését. Egy logikai kiszolgálón például a ReadOnly SQL Database megakadályozza a kiszolgáló törlését vagy módosítását. Nem akadályozza meg az adatok létrehozását, frissítését vagy törlését a kiszolgálón található adatbázisokban. Az adattranzakciók engedélyezve vannak, mert ezek a műveletek nem lesznek elküldve a https://management.azure.com webhelyre.

A vezérlő és az adatsík műveletei közötti különbségekre a következő szakaszban talál további példákat.

Megfontolandó szempontok a zárolások alkalmazása előtt

A zárolások alkalmazása váratlan eredményekhez vezethet, mert egyes műveletek, amelyek látszólag nem módosítják az erőforrást, valójában zárolás által blokkolt műveleteket igényelnek. A zárolások megakadályozzák az olyan műveleteket, amelyekhez POST-kérésre van szükség a Azure Resource Manager API-hoz. Néhány gyakori példa a zárolások által blokkolt műveletekre:

  • A tárfiókok csak olvasható zárolása megakadályozza, hogy a felhasználók listássának ják meg a fiókkulcsokat. Az Azure Storage List Keys műveletet egy POST-kéréssel kezeli a fiókkulcsok hozzáférésének védelme érdekében, amelyek teljes hozzáférést biztosítanak a tárfiókban található adatokhoz. Ha írási zárolás van konfigurálva egy tárfiókhoz, a fiókkulcsokkal nem rendelkezik felhasználók Azure AD-beli hitelesítő adatokkal férhetnek hozzá a blob- vagy üzenetsoradatokhoz. A csak olvasható zárolás emellett megakadályozza a tárfiókra vagy adattárolóra (blobtárolóra vagy üzenetsorra) vonatkozó Azure RBAC-szerepkörök hozzárendelését.

  • A tárfiók nem törölhető zárolása nem akadályozza meg a fiókon belüli adatok törlését vagy módosítását. Ez a zárolástípus csak magát a tárfiókot védi a törléstől. Ha egy kérelem adatsíkműveletekethasznál, a tárfiók zárolása nem védi a tárfiókban lévő blob-, üzenetsor-, tábla- vagy fájladatokat. Ha azonban a kérelem vezérlősík-műveleteket használ,a zárolás védi ezeket az erőforrásokat.

    Ha például egy kérelem Fájlmegosztások – Törlésműveletet használ, amely egy vezérlősík-művelet, a rendszer megtagadja a törlést. Ha a kérés a Megosztás törlése műveletet használja,amely egy adatsíkművelet, a törlés sikeres lesz. Javasoljuk, hogy használja a vezérlősík műveleteit.

  • A tárfiókok csak olvasási zárolása nem akadályozza meg a fiókon belüli adatok törlését vagy módosítását. Ez a zárolástípus csak magát a tárfiókot védi a törléstől vagy módosítástól, és nem védi a tárfiókon belüli blob-, üzenetsor-, tábla- vagy fájladatokat.

  • A kiszolgálói erőforrás csak olvasható zárolása App Service megakadályozza, hogy Visual Studio Server Explorer megjelenítse az erőforrás fájljait, mivel az interakcióhoz írási hozzáférés szükséges.

  • A tervtervet tartalmazó erőforráscsoport írás App Service zárolása megakadályozza a csomag fel- vagy felméretezését.

  • A virtuális gépet tartalmazó erőforráscsoport írásható zárolása megakadályozza, hogy minden felhasználó indítsa el vagy indítsa újra a virtuális gépet. Ezekhez a műveletekhez POST-kérésre van szükség.

  • Az Automation-fiókot tartalmazó erőforráscsoport írási zárolása megakadályozza, hogy minden runbook elindul. Ezekhez a műveletekhez POST-kérésre van szükség.

  • Egy erőforráscsoport nem törölhető zárolása megakadályozza, Azure Resource Manager automatikusan töröljön üzemelő példányokat az előzményekből. Ha az előzményekben eléri a 800 üzemelő példányt, az üzembe helyezések sikertelenek lesznek.

  • A szolgáltatás által létrehozott erőforráscsoport nem törölhető zárolása Azure Backup sikertelen biztonsági mentéseket okoz. A szolgáltatás legfeljebb 18 visszaállítási pontot támogat. Ha zárolva van, a biztonsági mentési szolgáltatás nem tudja megtisztítani a visszaállítási pontokat. További információ: Gyakori kérdések – Azure-beli virtuális gépek biztonságimentés.

  • Egy erőforráscsoport nem törölhető zárolása megakadályozza, Azure Machine Learning számítási fürtök automatikus skálázása Azure Machine Learning eltávolítsa a nem használt csomópontokat.

  • Az előfizetések csak olvasási zárolása megakadályozza, Azure Advisor megfelelően tudjanak működni. Az Advisor nem tudja tárolni a lekérdezések eredményeit.

  • Egy alkalmazás csak olvasható zárolása Application Gateway megakadályozza az Application Gateway háttér-állapotának lekért állapotát. Ez a művelet a POSTműveletet használja, amelyet a csak olvasható zárolás blokkol.

  • Az AKS-fürtök csak olvasható zárolása megakadályozza, hogy minden felhasználó hozzáférjen bármilyen fürterőforráshoz az AKS-fürt bal oldali panelének Kubernetes-erőforrások szakaszában Azure Portal. Ezekhez a műveletekhez POST-kérelem szükséges a hitelesítéshez.

Who hozhat létre vagy törölhet zárolásokat

Felügyeleti zárolások létrehozásához vagy törléséhez hozzáféréssel kell rendelkezik a vagy Microsoft.Authorization/* Microsoft.Authorization/locks/* műveletekhez. A beépített szerepkörök esetén ezek a műveletek csak a Tulajdonosi és a Felhasználói hozzáférés rendszergazdájának vannak engedélyezve.

Felügyelt alkalmazások és zárolások

Egyes Azure-szolgáltatások, például a Azure Databricks, felügyelt alkalmazások használatával valósítják meg a szolgáltatást. Ebben az esetben a szolgáltatás két erőforráscsoportot hoz létre. Az egyik erőforráscsoport áttekintést nyújt a szolgáltatásról, és nincs zárolva. A másik erőforráscsoport tartalmazza a szolgáltatás infrastruktúráját, és zárolva van.

Ha megpróbálja törölni az infrastruktúra-erőforráscsoportot, hibaüzenetet kap, amely szerint az erőforráscsoport zárolva van. Ha megpróbálja törölni az infrastruktúra-erőforráscsoport zárolását, hibaüzenetet kap, amely szerint a zárolás nem törölhető, mert az egy rendszeralkalmazás tulajdonában van.

Ehelyett törölje a szolgáltatást, amely az infrastruktúra-erőforráscsoportot is törli.

Felügyelt alkalmazások esetén válassza ki az üzembe helyezett szolgáltatást.

Szolgáltatás kiválasztása

Figyelje meg, hogy a szolgáltatás tartalmaz egy felügyelt erőforráscsoportra mutató hivatkozást. Ez az erőforráscsoport tartalmazza az infrastruktúrát, és zárolva van. Közvetlenül nem törölhető.

Felügyelt csoport megjelenítése

Ha törölni szeretne mindent a szolgáltatásról, beleértve a zárolt infrastruktúra-erőforráscsoportot is, válassza a Törlés lehetőséget a szolgáltatáshoz.

Szolgáltatás törlése

Zárolások konfigurálása

Portál

  1. A zárolni kívánt erőforrás, erőforráscsoport vagy előfizetés Beállítások paneljén válassza a Zárolások lehetőséget.

    Válassza a Zárolás lehetőséget.

  2. Zár hozzáadásához válassza a Hozzáadás lehetőséget. Ha szülőszinten szeretne zárolást létrehozni, válassza ki a szülőt. A jelenleg kiválasztott erőforrás örökli a zárolást a szülőtől. Zárolhatja például az erőforráscsoportot, hogy az összes erőforrásra zárolást alkalmaz.

    Zárolás hozzáadása.

  3. Nevezze el a zárolást és a zárolási szintet. Lehetőség van a zár leírását tartalmazó megjegyzések hozzáfűzésére.

    Állítsa be a zárolást.

  4. A zárolás törléséhez kattintson a Törlés gombra.

    Zárolás törlése.

Sablon

Ha egy Azure Resource Manager-sablont (ARM-sablont) vagy Bicep-fájlt használ a zárolás üzembe helyezéséhez, tisztában kell lennie a zárolás hatókörét és az üzembe helyezés hatókörét. Ha az üzembe helyezési hatókörben zárolást (például erőforráscsoport vagy előfizetés zárolását) alkalmazni, ne állítsa be a hatókör tulajdonságot. Amikor zárol egy erőforrást az üzembe helyezési hatókörben, állítsa be a scope tulajdonságot.

Az alábbi sablon zárolást alkalmaz arra az erőforráscsoportra, amelybe üzembe van helyezni. Figyelje meg, hogy nincs hatókörtulajdonság a zárolási erőforráson, mert a zárolás hatóköre megegyezik az üzembe helyezés hatókörének. Ezt a sablont az erőforráscsoport szintjén telepítik.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/locks",
      "apiVersion": "2016-09-01",
      "name": "rgLock",
      "properties": {
        "level": "CanNotDelete",
        "notes": "Resource group should not be deleted."
      }
    }
  ]
}

Erőforráscsoport létrehozásához és zárolásához telepítse a következő sablont az előfizetés szintjén.

{
  "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "rgName": {
      "type": "string"
    },
    "rgLocation": {
      "type": "string"
    }
  },
  "variables": {},
  "resources": [
    {
      "type": "Microsoft.Resources/resourceGroups",
      "apiVersion": "2021-04-01",
      "name": "[parameters('rgName')]",
      "location": "[parameters('rgLocation')]",
      "properties": {}
    },
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2021-04-01",
      "name": "lockDeployment",
      "resourceGroup": "[parameters('rgName')]",
      "dependsOn": [
        "[resourceId('Microsoft.Resources/resourceGroups/', parameters('rgName'))]"
      ],
      "properties": {
        "mode": "Incremental",
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {},
          "variables": {},
          "resources": [
            {
              "type": "Microsoft.Authorization/locks",
              "apiVersion": "2016-09-01",
              "name": "rgLock",
              "properties": {
                "level": "CanNotDelete",
                "notes": "Resource group and its resources should not be deleted."
              }
            }
          ],
          "outputs": {}
        }
      }
    }
  ],
  "outputs": {}
}

Amikor zárolást alkalmaz egy erőforrásra az erőforráscsoporton belül, adja hozzá a scope tulajdonságot. Állítsa be a hatókört a zárolni szükséges erőforrás nevére.

Az alábbi példa egy sablont mutat be, amely létrehoz egy App Service-tervet, egy webhelyet és egy zárolást a webhelyen. A zárolás hatóköre a webhelyre van beállítva.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "hostingPlanName": {
      "type": "string"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "variables": {
    "siteName": "[concat('ExampleSite', uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2020-12-01",
      "name": "[parameters('hostingPlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "tier": "Free",
        "name": "f1",
        "capacity": 0
      },
      "properties": {
        "targetWorkerCount": 1
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2020-12-01",
      "name": "[variables('siteName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]"
      ],
      "properties": {
        "serverFarmId": "[parameters('hostingPlanName')]"
      }
    },
    {
      "type": "Microsoft.Authorization/locks",
      "apiVersion": "2016-09-01",
      "name": "siteLock",
      "scope": "[concat('Microsoft.Web/sites/', variables('siteName'))]",
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', variables('siteName'))]"
      ],
      "properties": {
        "level": "CanNotDelete",
        "notes": "Site should not be deleted."
      }
    }
  ]
}

Azure PowerShell

Az üzembe helyezett erőforrásokat a Azure PowerShell New-AzResourceLock paranccsal zárolhatja.

Egy erőforrás zárolása érdekében adja meg az erőforrás nevét, az erőforrás típusát és az erőforráscsoport nevét.

New-AzResourceLock -LockLevel CanNotDelete -LockName LockSite -ResourceName examplesite -ResourceType Microsoft.Web/sites -ResourceGroupName exampleresourcegroup

Az erőforráscsoport zárolása érdekében adja meg az erőforráscsoport nevét.

New-AzResourceLock -LockName LockGroup -LockLevel CanNotDelete -ResourceGroupName exampleresourcegroup

A zárolásokkal kapcsolatos információkért használja a Get-AzResourceLockot. Az előfizetésében az összes zárolás lekért használhatja a következőt:

Get-AzResourceLock

Egy erőforrás összes zárolásának lekért használhatja a következőt:

Get-AzResourceLock -ResourceName examplesite -ResourceType Microsoft.Web/sites -ResourceGroupName exampleresourcegroup

Az erőforráscsoport összes zárolásának lekért használhatja a következőt:

Get-AzResourceLock -ResourceGroupName exampleresourcegroup

Egy erőforrás zárolásának törléséhez használja a következőt:

$lockId = (Get-AzResourceLock -ResourceGroupName exampleresourcegroup -ResourceName examplesite -ResourceType Microsoft.Web/sites).LockId
Remove-AzResourceLock -LockId $lockId

Erőforráscsoport zárolásának törléséhez használja a következőt:

$lockId = (Get-AzResourceLock -ResourceGroupName exampleresourcegroup).LockId
Remove-AzResourceLock -LockId $lockId

Azure CLI

Az üzembe helyezett erőforrásokat az az lock create paranccsal zárolhatja az Azure CLI-val.

Egy erőforrás zárolása érdekében adja meg az erőforrás nevét, az erőforrás típusát és az erőforráscsoport nevét.

az lock create --name LockSite --lock-type CanNotDelete --resource-group exampleresourcegroup --resource-name examplesite --resource-type Microsoft.Web/sites

Az erőforráscsoport zárolása érdekében adja meg az erőforráscsoport nevét.

az lock create --name LockGroup --lock-type CanNotDelete --resource-group exampleresourcegroup

A zárolásokkal kapcsolatos információkért használja az az lock list et. Az előfizetésében az összes zárolás lekért használhatja a következőt:

az lock list

Egy erőforrás összes zárolásának lekért használhatja a következőt:

az lock list --resource-group exampleresourcegroup --resource-name examplesite --namespace Microsoft.Web --resource-type sites --parent ""

Az erőforráscsoport összes zárolásának lekért használhatja a következőt:

az lock list --resource-group exampleresourcegroup

Egy erőforrás zárolásának törléséhez használja a következőt:

lockid=$(az lock show --name LockSite --resource-group exampleresourcegroup --resource-type Microsoft.Web/sites --resource-name examplesite --output tsv --query id)
az lock delete --ids $lockid

Erőforráscsoport zárolásának törléséhez használja a következőt:

lockid=$(az lock show --name LockSite --resource-group exampleresourcegroup  --output tsv --query id)
az lock delete --ids $lockid

REST API

Az üzembe helyezett erőforrásokat a felügyeleti zárolások REST API zárolhatja. A REST API lehetővé teszi zárolások létrehozására és törlésére, valamint a meglévő zárolások információinak lekérését.

Zárolás létrehozásához futtassa a következőt:

PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/locks/{lock-name}?api-version={api-version}

A hatókör lehet előfizetés, erőforráscsoport vagy erőforrás. A zárolás neve legyen bármi, amit a zárolásnak szeretne hívni. Az API-verzióhoz használja a 2016-09-01- et.

A kérelembe foglaljon bele egy JSON-objektumot, amely meghatározza a zárolás tulajdonságait.

{
  "properties": {
  "level": "CanNotDelete",
  "notes": "Optional text notes."
  }
}

Következő lépések