Отключение управляемого удостоверения, назначаемого системой, для учетной записи служба автоматизации Azure

Можно отключить назначенное системой управляемое удостоверение в службе автоматизации Azure с помощью портала Azure или REST API.

Отключение помощью портала Azure

Назначенное системой управляемое удостоверение можно отключить на портале Azure независимо от способа его изначальной настройки.

  1. Войдите на портал Azure.

  2. Перейдите к своей учетной записи службы автоматизации и выберите Удостоверение в разделе Параметры учетной записи.

  3. На вкладке Назначено системой в разделе Статус выберите Отключить и нажмите Сохранить. В запросе на подтверждение нажмите кнопку Да.

Назначенное системой управляемое удостоверение отключено и больше не имеет доступа к целевому ресурсу.

Отключение с помощью REST API

Ниже приведен синтаксис и примеры действий.

Текст запроса

В следующей текстовой области запроса выполняется отключение назначенного системой управляемого удостоверения и удаление всех назначенных пользователем управляемых удостоверений с помощью метода HTTP PATCH.

{ 
 "identity": { 
   "type": "None" 
  } 
}

Если определено несколько удостоверений, назначаемых пользователем, и вы хотите сохранить их, удалив только удостоверения, назначаемые системой, необходимо определить все назначаемые пользователем удостоверения, используя список с разделителями-запятыми. В нашем примере используется метод HTTP PATCH.

{ 
"identity" : {
    "type": "UserAssigned",
    "userAssignedIdentities": {
        "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/firstIdentity": {},
        "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/secondIdentity": {}
        }
    }
}

Ниже указан URI запроса REST API службы для отправки запроса PATCH.

PATCH https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview

Пример

Выполните следующие шаги.

  1. Скопируйте и вставьте текст запроса в зависимости от операции, которую необходимо выполнить, в файл с именем body_remove_sa.json. Сохраните этот файл на локальном компьютере или в учетной записи хранения Azure.

  2. Войдите в Azure в интерактивном режиме с помощью командлета Connect-AzAccount и следуйте инструкциям.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # If you have multiple subscriptions, set the one to use
    # Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"
    
  3. Укажите соответствующие значения для переменных, а затем выполните скрипт.

    $subscriptionID = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $automationAccount = "automationAccountName"
    $file = "path\body_remove_sa.json"
    
  4. В нашем примере используется командлет PowerShell Invoke-RestMethod для отправки запроса PATCH в учетную запись службы автоматизации.

    # build URI
    $URI = "https://management.azure.com/subscriptions/$subscriptionID/resourceGroups/$resourceGroup/providers/Microsoft.Automation/automationAccounts/$automationAccount`?api-version=2020-01-13-preview"
    
    # build body
    $body = Get-Content $file
    
    # obtain access token
    $azContext = Get-AzContext
    $azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
    $profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
    $token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId)
    $authHeader = @{
        'Content-Type'='application/json'
        'Authorization'='Bearer ' + $token.AccessToken
    }
    
    # Invoke the REST API
    Invoke-RestMethod -Uri $URI -Method PATCH -Headers $authHeader -Body $body
    
    # Confirm removal
    (Get-AzAutomationAccount `
        -ResourceGroupName $resourceGroup `
        -Name $automationAccount).Identity.Type
    

    В зависимости от используемого синтаксиса выходные данные будут UserAssigned или пустыми.

Следующие шаги