Samouczek: tworzenie roli niestandardowej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure

Jeśli wbudowane role platformy Azure nie spełniają konkretnych potrzeb organizacji, możesz utworzyć własne role niestandardowe. 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 płaszczyźnie sterowania subskrypcji, a także otwieranie biletów pomocy technicznej.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Tworzenie roli niestandardowej
  • Wyświetlanie ról niestandardowych
  • Aktualizacja roli niestandardowej
  • Usuwanie roli niestandardowej

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

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

Logowanie do interfejsu wiersza polecenia platformy Azure

Zaloguj się do interfejsu wiersza polecenia platformy Azure.

Tworzenie roli niestandardowej

Najprostszym sposobem na utworzenie roli niestandardowej jest rozpoczęcie od szablonu JSON, dodanie własnych 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 opis
    Microsoft.Support/register/action Przeprowadza rejestrację u dostawcy zasobów pomocy technicznej
    Microsoft.Support/supportTickets/read Pobiera szczegóły biletu pomocy technicznej (w tym stan, ważność, szczegóły dotyczące kontaktu i komunikacji) lub pobiera listę biletów pomocy technicznej dla różnych subskrypcji.
    Microsoft.Support/supportTickets/write Tworzy lub aktualizuje bilet pomocy technicznej. Można utworzyć bilet pomocy technicznej dotyczący problemów technicznych, rozliczeń, limitów przydziału lub problemów związanych z zarządzaniem subskrypcją. Można także zaktualizować ważność, szczegóły dotyczące kontaktu i komunikacji dla istniejących biletów pomocy technicznej.
  2. Utwórz nowy plik o nazwie ReaderSupportRole.json.

  3. Otwórz plik 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 Actions właściwości . Te akcje umożliwią użytkownikowi przeglądanie całej zawartości subskrypcji i tworzenie biletów pomocy technicznej.

    "*/read",
    "Microsoft.Support/*"
    
  5. Pobierz identyfikator subskrypcji za pomocą polecenia az account list.

    az account list --output table
    
  6. We właściwości AssignableScopes zastąp element {subscriptionId1} identyfikatorem subskrypcji.

    Musisz jawnie dodać identyfikatory subskrypcji, ponieważ w przeciwnym razie nie będzie można zaimportować roli do subskrypcji.

  7. Zmień właściwości Name i Description na „Reader Support Tickets” i „View everything in the subscription and also open support tickets”.

    Zawartość pliku JSON powinna 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żna ją przypisywać do użytkowników, grup lub jednostek usług tak samo jak role wbudowane.

Wyświetlanie 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ż sprawdzić w witrynie Azure Portal.

    screenshot of custom role imported in the Azure portal

Aktualizacja roli niestandardowej

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

  1. Otwórz plik ReaderSupportRole.json.

  2. W Actionspliku dodaj akcję , aby utworzyć wdrożenia "Microsoft.Resources/deployments/*"grup zasobów i zarządzać nimi. Pamiętaj, aby uwzględnić przecinek po poprzedniej akcji.

    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"
    }
    

Usuwanie roli niestandardowej

  • Użyj polecenia az role definition delete i określ nazwę lub identyfikator roli w celu usunięcia roli niestandardowej.

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

Następne kroki