Sdílet prostřednictvím


Použití Azure Policy k omezení instalace rozšíření na virtuálních počítačích s Linuxem

Pokud chcete zabránit instalaci určitých rozšíření na virtuální počítače s Linuxem, můžete vytvořit definici služby Azure Policy pomocí Azure CLI a omezit rozšíření pro virtuální počítače v rámci skupiny prostředků. Základní informace o rozšířeních virtuálních počítačů Azure pro Linux najdete v tématu Rozšíření a funkce virtuálních počítačů pro Linux.

V tomto kurzu se používá rozhraní příkazového řádku v Azure Cloud Shellu, které se neustále aktualizuje na nejnovější verzi. Pokud chcete azure CLI spustit místně, musíte nainstalovat verzi 2.0.26 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Vytvoření souboru pravidel

Pokud chcete omezit, jaká rozšíření jsou k dispozici, musíte vytvořit pravidlo pro identifikaci rozšíření.

Tento příklad ukazuje, jak zakázat instalaci zakázaných rozšíření virtuálních počítačů definováním souboru pravidel v Azure Cloud Shellu. Pokud ale pracujete v Azure CLI místně, můžete vytvořit místní soubor a nahradit cestu (~/clouddrive) cestou k souboru v místním systému souborů.

  1. V prostředí Bash Cloud Shell vytvořte soubor ~/clouddrive/azurepolicy.rules.json pomocí libovolného textového editoru.

  2. Zkopírujte a vložte následující .json obsah do nového souboru a uložte ho.

{
	"if": {
		"allOf": [
			{
				"field": "type",
				"equals": "Microsoft.Compute/virtualMachines/extensions"
			},
			{
				"field": "Microsoft.Compute/virtualMachines/extensions/publisher",
				"equals": "Microsoft.OSTCExtensions"
			},
			{
				"field": "Microsoft.Compute/virtualMachines/extensions/type",
				"in": "[parameters('notAllowedExtensions')]"
			}
		]
	},
	"then": {
		"effect": "deny"
	}
}

Vytvoření souboru parametrů

Potřebujete také soubor parametrů , který vytvoří strukturu, kterou můžete použít k předávání seznamu neautorizovaných rozšíření.

Tento příklad ukazuje, jak vytvořit soubor parametrů pro virtuální počítače s Linuxem v Cloud Shellu.

  1. V prostředí bash Cloud Shell, který jste otevřeli dříve, vytvořte soubor ~/clouddrive/azurepolicy.parameters.json pomocí libovolného textového editoru.

  2. Zkopírujte a vložte následující .json obsah do nového souboru a uložte ho.

{
	"notAllowedExtensions": {
		"type": "Array",
		"metadata": {
			"description": "The list of extensions that will be denied. Example: CustomScriptForLinux, VMAccessForLinux etc.",
			"displayName": "Denied extension"
		}
	}
}

Vytvoření zásad

Definice zásady je objekt sloužící k uložení konfigurace, kterou chcete použít. Definice zásady používá k definování zásady pravidla a soubory parametrů. Vytvořte definici zásady pomocí příkazu az policy definition create.

V tomto příkladu jsou pravidla a parametry soubory, které jste vytvořili a uložili jako .json soubory v Cloud Shellu nebo v místním systému souborů.

az policy definition create \
   --name 'not-allowed-vmextension-linux' \
   --display-name 'Block VM Extensions' \
   --description 'This policy governs which VM extensions that are blocked.' \
   --rules '~/clouddrive/azurepolicy.rules.json' \
   --params '~/clouddrive/azurepolicy.parameters.json' \
   --mode All

Přiřazení zásad

Tento příklad přiřadí zásadu ke skupině prostředků pomocí az policy assignment create. Jakýkoli virtuální počítač vytvořený ve skupině prostředků myResourceGroup nebude moct nainstalovat přístup k virtuálnímu počítači s Linuxem nebo rozšíření vlastních skriptů pro Linux.

Poznámka:

Skupina prostředků musí existovat, abyste mohli zásadu přiřadit.

Použijte az account list k vyhledání ID předplatného a nahrazení zástupného symbolu v následujícím příkladu:

az policy assignment create \
   --name 'not-allowed-vmextension-linux' \
   --scope /subscriptions/<subscription Id>/resourceGroups/myResourceGroup \
   --policy "not-allowed-vmextension-linux" \
   --params '{
		"notAllowedExtensions": {
			"value": [
				"VMAccessForLinux",
				"CustomScriptForLinux"
			]
		}
	}'

Testování zásad

Otestujte zásadu vytvořením nového virtuálního počítače a přidáním nového uživatele.

az vm create \
    --resource-group myResourceGroup \
	--name myVM \
	--image myImage \
	--generate-ssh-keys

Poznámka:

myVM Nahraďte myResourceGrouphodnoty odpovídajícím myImage způsobem.

Zkuste vytvořit nového uživatele s názvem myNewUser pomocí rozšíření přístupu k virtuálnímu počítači.

az vm user update \
  --resource-group myResourceGroup \
  --name myVM \
  --username myNewUser \
  --password 'mynewuserpwd123!'

Odebrání přiřazení

az policy assignment delete --name 'not-allowed-vmextension-linux' --resource-group myResourceGroup

Odebrání zásady

az policy definition delete --name 'not-allowed-vmextension-linux'

Další kroky

Další informace najdete v tématu Azure Policy.