Как я могу убедиться, что вновь созданные ресурсы prod azure заблокированы политикой? - PullRequest
0 голосов
/ 07 января 2020

Я администратор Azure. Я хочу заверить, что новые ресурсы, созданные в производстве, автоматически блокируются при их создании. Есть ли способ установить эту политику? Я знаю, что могу создавать блокировки с помощью CLI / GUI. Мне нужно сделать это автоматически без сценариев команд z.

Спасибо

1 Ответ

1 голос
/ 08 января 2020

Вы можете использовать Azure Blueprints, чтобы сделать это.

https://docs.microsoft.com/en-us/azure/governance/blueprints/tutorials/protect-new-resources

или вы можете сделать это путем планирования Runbook в учетной записи автоматизации. Я создал сценарий для этого, который блокирует группы ресурсов, которые я запланировал каждую ночь. Блокировка может негативно повлиять на функциональность, а иногда и на раздражение, если ваши ресурсы заблокированы на ранней стадии.

В моем коде ниже я исключил AzureBackup_RG_, поскольку он нарушает функциональность удаления снимков, что приводит к сбою резервного копирования через некоторое время.

<###########################################################################################################
#
# LckResourceGroup
#
# This script is intended to run daily to lock all resource groups to prevent accidential deletion
# of resources.
#
# Written by Daniel Björk - 2018-02-27
# Designed for Accigo AB 
#
#
# Ver 1.0 Date 2018-02-27
# First Version
#

Instructions
    1. Import Az.Accounts to the Automation Account
    2. Import Az.Resources to the Automation Account
    3. Create Runbook (Copy Powershell)
    4. Schedule runbook

#
###########################################################################################################>

# INFORMATION: Change Subscription name to enable on other subscriptions
$SubScriptionName = "SubscriptionName"
$Conn = Get-AutomationConnection -Name AzureRunAsConnection

Add-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint | Out-Null

Write-Output "Select Subscription"

Select-AzSubscription -SubscriptionName $SubScriptionName

$resourceGroups = Get-AzResourceGroup | where {!$_.ResourceGroupName.StartsWith("AzureBackup")}

foreach ($resourceGroup in $resourceGroups) {
    Write-Output $resourceGroup.ResourceGroupName
    $lockId = (Get-AzResourceLock -ResourceGroupName $resourceGroup.ResourceGroupName).LockId

    #Remove-AzureRmResourceLock -LockId $lockId
    if (!$lockId -and !$resourceGroup.ResourceGroupName.StartsWith("AzureBackupRG_")){
        Write-Output "Locking Resource Group"
        New-AzResourceLock `
            -LockName ResourceGroupLock `
            -LockLevel CanNotDelete `
            -LockNotes 'Locks all resources in the resource group' `
            -ResourceGroupName $resourceGroup.ResourceGroupName `
            -Force
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...