Snabbstart: Skapa en hanteringsgrupp med Go

Hanteringsgrupper är containrar som hjälper dig att hantera åtkomst, principer och efterlevnad i flera prenumerationer. Skapa dessa containrar för att skapa en effektiv och effektiv hierarki som kan användas med Azure Policy och Rollbaserade åtkomstkontroller i Azure. Mer information om hanteringsgrupper finns i Organisera dina resurser med Azure-hanteringsgrupper.

Den första hanteringsgruppen som skapades i katalogen kan ta upp till 15 minuter att slutföra. Det finns processer som körs första gången för att konfigurera hanteringsgruppers tjänst i Azure för din katalog. Du får ett meddelande när processen är klar. Mer information finns i inledande konfiguration av hanteringsgrupper.

Förutsättningar

  • Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

  • Ett Huvudnamn för Azure-tjänsten, inklusive clientId och clientSecret. Om du inte har ett huvudnamn för tjänsten för användning med Azure Policy eller om du vill skapa ett nytt kan du läsa Azure-hanteringsbibliotek för .NET-autentisering. Hoppa över steget för att installera .NET Core-paketen som vi ska göra i nästa steg.

  • Alla Azure AD-användare i klientorganisationen kan skapa en hanteringsgrupp utan skrivbehörighet för hanteringsgruppen som tilldelats användaren om hierarkiskyddet inte är aktiverat. Den här nya hanteringsgruppen blir underordnad rothanteringsgruppen eller standardhanteringsgruppen och skaparen får rolltilldelningen "Ägare". Med hanteringsgruppstjänsten kan du göra det så att rolltilldelningar inte behövs på rotnivå. Inga användare har åtkomst till rothanteringsgruppen när den skapas. För att undvika hinder för att hitta globala Azure AD-administratörer för att börja använda hanteringsgrupper tillåter vi att de första hanteringsgrupperna skapas på rotnivå.

Azure Cloud Shell

Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.

Så här startar du Azure Cloud Shell:

Alternativ Exempel/länk
Välj Prova i det övre högra hörnet i en kod eller ett kommandoblock. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. Button to launch Azure Cloud Shell.
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. Screenshot that shows the Cloud Shell button in the Azure portal

Så här använder du Azure Cloud Shell:

  1. Starta Cloud Shell.

  2. Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.

  3. Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Shift+V på macOS.

  4. Välj Retur för att köra koden eller kommandot.

Lägg till hanteringsgruppspaketet

Om du vill aktivera Go för att hantera hanteringsgrupper måste paketet läggas till. Det här paketet fungerar överallt där Go kan användas, inklusive bash på Windows 10 eller lokalt installerat.

  1. Kontrollera att den senaste Go-versionen är installerad (minst 1.15). Om den inte är installerad än laddar du ned den på Golang.org.

  2. Kontrollera att den senaste Azure CLI är installerad (minst 2.5.1). Om den inte är installerad än kan du läsa Installera Azure CLI.

    Kommentar

    Azure CLI krävs för att Go ska kunna använda auth.NewAuthorizerFromCLI() metoden i följande exempel. Information om andra alternativ finns i Azure SDK for Go – Mer autentiseringsinformation.

  3. Autentisera via Azure CLI.

    az login
    
  4. Installera nödvändiga paket för hanteringsgrupper i valfri Go-miljö:

    # Add the management group package for Go
    go install github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-05-01/managementgroups@latest
    
    # Add the Azure auth package for Go
    go install github.com/Azure/go-autorest/autorest/azure/auth@latest
    

Programkonfiguration

När Go-paketen har lagts till i valfri miljö är det dags att konfigurera Go-programmet som kan skapa en hanteringsgrupp.

  1. Skapa Go-programmet och spara följande källa som mgCreate.go:

    package main
    
    import (
     "context"
     "fmt"
     "os"
    
     mg "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-05-01/managementgroups"
     "github.com/Azure/go-autorest/autorest/azure/auth"
    )
    
    func main() {
     // Get variables from command line arguments
     var mgName = os.Args[1]
    
     // Create and authorize a client
     mgClient := mg.NewClient()
     authorizer, err := auth.NewAuthorizerFromCLI()
     if err == nil {
     	mgClient.Authorizer = authorizer
     } else {
     	fmt.Printf(err.Error())
     }
    
     // Create the request
     Request := mg.CreateManagementGroupRequest{
     	Name: &mgName,
     }
    
     // Run the query and get the results
     var results, queryErr = mgClient.CreateOrUpdate(context.Background(), mgName, Request, "no-cache")
     if queryErr == nil {
     	fmt.Printf("Results: " + fmt.Sprint(results) + "\n")
     } else {
     	fmt.Printf(queryErr.Error())
     }
    }
    
  2. Skapa Go-programmet:

    go build mgCreate.go
    
  3. Skapa en hanteringsgrupp med det kompilerade Go-programmet. Ersätt <Name> med namnet på den nya hanteringsgruppen:

    mgCreate "<Name>"
    

Resultatet är en ny hanteringsgrupp i rothanteringsgruppen.

Rensa resurser

Om du vill ta bort de installerade paketen från Go-miljön kan du göra det med hjälp av följande kommando:

# Remove the installed packages from the Go environment
go clean -i github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-05-01/managementgroups
go clean -i github.com/Azure/go-autorest/autorest/azure/auth

Nästa steg

I den här snabbstarten skapade du en hanteringsgrupp för att organisera resurshierarkin. Hanteringsgruppen kan innehålla prenumerationer eller andra hanteringsgrupper.

Om du vill veta mer om hanteringsgrupper och hur du hanterar resurshierarkin fortsätter du till: