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 pomocí Azure CLI vytvořit definici Azure Policy a omezit tak 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.
Tento kurz používá rozhraní příkazového řádku v rámci Azure Cloud Shell, které se neustále aktualizuje na nejnovější verzi. Pokud chcete spustit Azure CLI 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 dostupná rozšíření, musíte vytvořit pravidlo pro identifikaci rozšíření.
Tento příklad ukazuje, jak zakázat instalaci nepovolovaných rozšíření virtuálních počítačů definováním souboru pravidel v Azure Cloud Shell. 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ů.
V Bash Cloud Shell vytvořit soubor
~/clouddrive/azurepolicy.rules.json
pomocí libovolného textového editoru.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á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 Shell.
V Cloud Shell Bash otevřené dříve vytvořte soubor ~/clouddrive/azurepolicy.parameters.json pomocí libovolného textového editoru.
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ásady
Definice zásady je objekt, který slouží k uložení konfigurace, kterou chcete použít. Definice zásad používá k definování zásad soubory pravidel a 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 soubory .json v Cloud Shell 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ásady
Tento příklad přiřadí zásadu ke skupině prostředků pomocí az policy assignment create
. Žádný virtuální počítač vytvořený ve skupině prostředků myResourceGroup nebude moct nainstalovat přístup k virtuálním počítačům s Linuxem ani rozšíření vlastních skriptů pro Linux.
Poznámka
Před přiřazením zásad musí skupina prostředků existovat.
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 myResourceGroup
hodnoty a myImage
odpovídajícím způsobem.
Zkuste vytvořit nového uživatele s názvem myNewUser pomocí rozšíření VM Access.
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.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro