Udostępnij przez


Samouczek: utworzenie roli niestandardowej w Azure przy użyciu Azure CLI

Jeśli wbudowane role platformy Azure nie spełniają potrzeb Twojej organizacji, możesz tworzyć własne role niestandardowe kontroli dostępu na podstawie ról. W tym samouczku utworzysz rolę niestandardową o nazwie Reader Support Tickets przy użyciu interfejsu wiersza polecenia platformy Azure. Rola niestandardowa umożliwia użytkownikowi wyświetlanie wszystkich elementów w warstwie kontrolnej subskrypcji, a także otwieranie zgłoszeń do pomocy technicznej.

W tym poradniku nauczysz się, jak:

  • Tworzenie roli niestandardowej
  • Lista ról niestandardowych
  • Aktualizowanie roli niestandardowej
  • Usuń rolę niestandardową

Jeśli nie masz subskrypcji Azure, przed rozpoczęciem utwórz darmowe konto.

Wymagania wstępne

Do ukończenia tego samouczka potrzebne są następujące elementy:

Zaloguj się do Azure CLI

Zaloguj się do interfejsu wiersza polecenia platformy Azure.

Tworzenie roli niestandardowej

Najprostszym sposobem utworzenia roli niestandardowej jest rozpoczęcie od szablonu JSON, dodanie zmian, a następnie utworzenie nowej roli.

  1. Przejrzyj listę akcji dostawcy zasobów Microsoft.Support. Warto znać akcje, które są dostępne do tworzenia uprawnień.

    Akcja Description
    Microsoft.Support/register/action Rejestruje się w celu obsługi dostawcy zasobów
    Microsoft.Support/supportTickets/read Pobiera szczegóły biletu pomocy technicznej (w tym stan, ważność, szczegóły kontaktowe i komunikację) lub pobiera listę biletów pomocy technicznej w ramach subskrypcji.
    Microsoft.Support/supportTickets/write Tworzy lub aktualizuje zgłoszenie pomocy technicznej. Możesz utworzyć bilet pomocy technicznej dla problemów technicznych, rozliczeniowych, przydziałów lub zarządzania subskrypcjami. Możesz zaktualizować ważność, szczegóły kontaktowe i komunikację dla istniejących biletów pomocy technicznej.
  2. Utwórz nowy plik o nazwie ReaderSupportRole.json.

  3. Otwórz ReaderSupportRole.json w edytorze i dodaj następujący kod JSON.

    Aby uzyskać informacje o różnych właściwościach, zobacz Role niestandardowe platformy Azure.

    {
      "Name": "",
      "IsCustom": true,
      "Description": "",
      "Actions": [],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/{subscriptionId1}"
      ]
    }
    
  4. Dodaj następujące akcje do właściwości Actions. Te akcje umożliwiają użytkownikowi wyświetlanie wszystkiego w subskrypcji i tworzenie zgłoszeń do pomocy technicznej.

    "*/read",
    "Microsoft.Support/*"
    
  5. Pobierz identyfikator subskrypcji przy użyciu polecenia az account list .

    az account list --output table
    
  6. W AssignableScopes zastąp {subscriptionId1} swoim identyfikatorem subskrypcji.

    Musisz dodać jawne identyfikatory subskrypcji, inaczej nie będziesz mieć możliwości zaimportowania roli do subskrypcji.

  7. Zmień właściwości Name na "Bilety wsparcia dla czytelników" oraz Description na "Wyświetl wszystko w subskrypcji i otwórz bilety pomocy technicznej".

    Plik JSON powinien wyglądać następująco:

    {
      "Name": "Reader Support Tickets",
      "IsCustom": true,
      "Description": "View everything in the subscription and also open support tickets.",
      "Actions": [
        "*/read",
        "Microsoft.Support/*"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ]
    }
    
  8. Aby utworzyć nową rolę niestandardową, użyj polecenia az role definition create i określ plik definicji roli JSON.

    az role definition create --role-definition "~/CustomRoles/ReaderSupportRole.json"
    
    {
      "additionalProperties": {},
      "assignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ],
      "description": "View everything in the subscription and also open support tickets.",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
      "name": "22222222-2222-2222-2222-222222222222",
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Support/*"
          ],
          "additionalProperties": {},
          "dataActions": [],
          "notActions": [],
          "notDataActions": []
        }
      ],
      "roleName": "Reader Support Tickets",
      "roleType": "CustomRole",
      "type": "Microsoft.Authorization/roleDefinitions"
    }
    

    Nowa rola niestandardowa jest teraz dostępna i może być przypisana do użytkowników, grup lub jednostek usługi, podobnie jak role wbudowane.

Lista ról niestandardowych

  • Aby wyświetlić listę wszystkich ról niestandardowych, użyj polecenia az role definition list z parametrem --custom-role-only .

    az role definition list --custom-role-only true
    
    [
      {
        "additionalProperties": {},
        "assignableScopes": [
          "/subscriptions/00000000-0000-0000-0000-000000000000"
        ],
        "description": "View everything in the subscription and also open support tickets.",
        "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
        "name": "22222222-2222-2222-2222-222222222222",
        "permissions": [
          {
            "actions": [
              "*/read",
              "Microsoft.Support/*",
              "Microsoft.Resources/deployments/*",
              "Microsoft.Insights/diagnosticSettings/*/read"
            ],
            "additionalProperties": {},
            "dataActions": [],
            "notActions": [],
            "notDataActions": []
          }
        ],
        "roleName": "Reader Support Tickets",
        "roleType": "CustomRole",
        "type": "Microsoft.Authorization/roleDefinitions"
      }
    ]
    

    Rolę niestandardową można również wyświetlić w portalu Azure.

    zrzut ekranu przedstawiający rolę niestandardową zaimportowaną w witrynie Azure Portal

Aktualizowanie roli niestandardowej

Aby zaktualizować rolę niestandardową, zaktualizuj plik JSON, a następnie zaktualizuj rolę niestandardową.

  1. Otwórz plik ReaderSupportRole.json.

  2. W Actions dodaj czynność, aby utworzyć i zarządzać wdrożeniami "Microsoft.Resources/deployments/*" grup zasobów. Pamiętaj, aby uwzględnić przecinek po poprzednim działaniu.

    Zaktualizowany plik JSON powinien wyglądać następująco:

    {
      "Name": "Reader Support Tickets",
      "IsCustom": true,
      "Description": "View everything in the subscription and also open support tickets.",
      "Actions": [
        "*/read",
        "Microsoft.Support/*",
        "Microsoft.Resources/deployments/*"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ]
    }
    
  3. Aby zaktualizować rolę niestandardową, użyj polecenia az role definition update i określ zaktualizowany plik JSON.

    az role definition update --role-definition "~/CustomRoles/ReaderSupportRole.json"
    
    {
      "additionalProperties": {},
      "assignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ],
      "description": "View everything in the subscription and also open support tickets.",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
      "name": "22222222-2222-2222-2222-222222222222",
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Support/*",
            "Microsoft.Resources/deployments/*"
          ],
          "additionalProperties": {},
          "dataActions": [],
          "notActions": [],
          "notDataActions": []
        }
      ],
      "roleName": "Reader Support Tickets",
      "roleType": "CustomRole",
      "type": "Microsoft.Authorization/roleDefinitions"
    }
    

Usuń rolę niestandardową

  • Użyj polecenia az role definition delete i określ nazwę roli lub identyfikator roli, aby usunąć rolę niestandardową.

    az role definition delete --name "Reader Support Tickets"
    

Dalsze kroki