Udostępnij za pośrednictwem


Usuwanie tożsamości zarządzanej przypisanej przez użytkownika dla konta usługi Azure Automation

Tożsamość zarządzaną przypisaną przez użytkownika można usunąć w usłudze Azure Automation przy użyciu witryny Azure Portal, programu PowerShell, interfejsu API REST platformy Azure lub szablonu usługi Azure Resource Manager (ARM).

Usuwanie przy użyciu witryny Azure Portal

Tożsamość zarządzana przypisana przez użytkownika można usunąć z witryny Azure Portal niezależnie od tego, jak pierwotnie dodano tożsamość zarządzaną przypisaną przez użytkownika.

  1. Zaloguj się w witrynie Azure Portal.

  2. Przejdź do konta usługi Automation i w obszarze Ustawienia konta wybierz pozycję Tożsamość.

  3. Wybierz kartę Użytkownik przypisany .

  4. Wybierz tożsamość zarządzaną przypisaną przez użytkownika, która ma zostać usunięta z listy.

  5. Wybierz Usuń. Po wyświetleniu monitu o potwierdzenie wybierz pozycję Tak.

Tożsamość zarządzana przypisana przez użytkownika jest usuwana i nie ma już dostępu do zasobu docelowego.

Usuwanie za pomocą programu PowerShell

Użyj polecenia cmdlet programu PowerShell Set-AzAutomationAccount , aby usunąć wszystkie tożsamości zarządzane przypisane przez użytkownika i zachować istniejącą tożsamość zarządzaną przypisaną przez system.

  1. Zaloguj się interaktywnie na platformie Azure przy użyciu polecenia cmdlet Connect-AzAccount i postępuj zgodnie z instrukcjami.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
  2. Podaj odpowiednią wartość dla zmiennych, a następnie wykonaj skrypt.

    $resourceGroup = "resourceGroupName"
    $automationAccount = "automationAccountName"
    
  3. Wykonaj polecenie Set-AzAutomationAccount.

    # Removes all UAs, keeps SA
    $output = Set-AzAutomationAccount `
        -ResourceGroupName $resourceGroup `
        -Name $automationAccount `
        -AssignSystemIdentity 
    
    $output.identity.Type
    

    Dane wyjściowe będą mieć wartość SystemAssigned.

Usuwanie przy użyciu interfejsu API REST

Tożsamość zarządzaną przypisaną przez użytkownika można usunąć z konta usługi Automation przy użyciu następującego wywołania interfejsu API REST i przykładu.

Treść żądania

Scenariusz: tożsamość zarządzana przypisana przez system jest włączona lub ma być włączona. Jednym z wielu tożsamości zarządzanych przypisanych przez użytkownika jest usunięcie. W tym przykładzie usunięto tożsamość zarządzaną przypisaną przez użytkownika o nazwie firstIdentity przy użyciu metody HTTP PATCH .

{
  "identity": {
    "type": "SystemAssigned, UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/firstIdentity": null
    }
  }
}

Scenariusz: tożsamość zarządzana przypisana przez system jest włączona lub ma być włączona. Wszystkie tożsamości zarządzane przypisane przez użytkownika mają zostać usunięte przy użyciu metody HTTP PUT .

{
  "identity": {
    "type": "SystemAssigned"
  }
}

Scenariusz: Tożsamość zarządzana przypisana przez system jest wyłączona lub ma być wyłączona. Jednym z wielu tożsamości zarządzanych przypisanych przez użytkownika jest usunięcie. W tym przykładzie usunięto tożsamość zarządzaną przypisaną przez użytkownika o nazwie firstIdentity przy użyciu metody HTTP PATCH .

{
  "identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/firstIdentity": null
    }
  }
}

Scenariusz: Tożsamość zarządzana przypisana przez system jest wyłączona lub ma być wyłączona. Wszystkie tożsamości zarządzane przypisane przez użytkownika mają zostać usunięte przy użyciu metody HTTP PUT .

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

Poniżej przedstawiono identyfikator URI żądania interfejsu API REST usługi w celu wysłania żądania PATCH.

https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview

Przykład

Wykonaj następujące kroki.

  1. Skopiuj i wklej treść żądania, w zależności od operacji, którą chcesz wykonać, do pliku o nazwie body_remove_ua.json. Wprowadź wymagane modyfikacje, a następnie zapisz plik na komputerze lokalnym lub na koncie usługi Azure Storage.

  2. Zaloguj się interaktywnie na platformie Azure przy użyciu polecenia cmdlet Connect-AzAccount i postępuj zgodnie z instrukcjami.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount -Subscription
    }
    
  3. Podaj odpowiednią wartość dla zmiennych, a następnie wykonaj skrypt.

    $subscriptionID = "subscriptionID"
    $resourceGroup = "resourceGroupName"
    $automationAccount = "automationAccountName"
    $file = "path\body_remove_ua.json"
    
  4. W tym przykładzie użyto polecenia cmdlet Programu PowerShell Invoke-RestMethod , aby wysłać żądanie PATCH do konta usługi Automation.

    # 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
    

    W zależności od używanej składni dane wyjściowe będą mieć wartość: SystemAssignedUserAssigned, SystemAssigned, UserAssignedlub pustą.

Usuwanie przy użyciu szablonu usługi Azure Resource Manager

Jeśli dodano tożsamość zarządzaną przypisaną przez użytkownika dla konta usługi Automation przy użyciu szablonu usługi Azure Resource Manager, możesz usunąć tożsamość zarządzaną przypisaną przez użytkownika, modyfikując szablon, a następnie uruchamiając go ponownie.

Scenariusz: tożsamość zarządzana przypisana przez system jest włączona lub ma być włączona. Należy usunąć jedną z dwóch tożsamości zarządzanych przypisanych przez użytkownika. Ten fragment kodu składni usuwa wszystkie tożsamości zarządzane przypisane przez użytkownika, z wyjątkiem tego, który został przekazany jako parametr do szablonu.

...
"identity": {
    "type": "SystemAssigned, UserAssigned",
    "userAssignedIdentities": {
        "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',parameters('userAssignedOne'))]": {}
    }
},
...

Scenariusz: tożsamość zarządzana przypisana przez system jest włączona lub ma być włączona. Wszystkie tożsamości zarządzane przypisane przez użytkownika mają zostać usunięte.

...
"identity": {
    "type": "SystemAssigned"
},
...

Scenariusz: Tożsamość zarządzana przypisana przez system jest wyłączona lub ma być wyłączona. Należy usunąć jedną z dwóch tożsamości zarządzanych przypisanych przez użytkownika. Ten fragment kodu składni usuwa wszystkie tożsamości zarządzane przypisane przez użytkownika, z wyjątkiem tego, który został przekazany jako parametr do szablonu.

...
"identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
        "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',parameters('userAssignedOne'))]": {}
    }
},
...

Użyj polecenia cmdlet Get-AzAutomationAccount, aby zweryfikować. W zależności od używanej składni dane wyjściowe będą: SystemAssignedUserAssigned, SystemAssignedlub UserAssigned.

(Get-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount).Identity.Type

Następne kroki