Tworzenie jednostki usługi platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure
Zautomatyzowane narzędzia korzystające z usług platformy Azure powinny zawsze mieć ograniczone uprawnienia, aby zapewnić bezpieczeństwo zasobów platformy Azure. W związku z tym zamiast logowania aplikacji jako w pełni uprzywilejowany użytkownik platforma Azure oferuje jednostki usługi. Jednostka usługi platformy Azure to tożsamość utworzona do użycia z aplikacjami, hostowanymi usługami i zautomatyzowanymi narzędziami. Ta tożsamość służy do uzyskiwania dostępu do zasobów.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie jednostki usługi
- Logowanie przy użyciu jednostki usługi i hasła
- Logowanie przy użyciu jednostki usługi i certyfikatu
- Zarządzanie rolami jednostki usługi
- Tworzenie zasobu platformy Azure przy użyciu jednostki usługi
- Resetowanie poświadczeń jednostki usługi
Wymagania wstępne
- W ramach subskrypcji musisz mieć
User Access Administrator
uprawnienia lubRole Based Access Control Administrator
uprawnienia, aby utworzyć jednostkę usługi. Aby uzyskać listę ról dostępnych dla kontroli dostępu opartej na rolach (RBAC) platformy Azure, zobacz Role wbudowane platformy Azure.
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Tworzenie jednostki usługi
Użyj polecenia az ad sp create-for-rbac interfejsu wiersza polecenia platformy Azure, aby utworzyć jednostkę usługi. W tym przykładzie nie określono parametru --name
, więc nazwa zawierająca sygnaturę czasową jest tworzona automatycznie.
az ad sp create-for-rbac
Konsola wyjściowa:
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Jeśli nie przestrzegasz konwencji nazewnictwa zasobów i planujesz utworzyć rolę i zakres nowej jednostki usługi później, az ad sp create-for-rbac
polecenie bez parametrów jest akceptowalnym rozwiązaniem. Jednak bez roli i zakresu nowa jednostka usługi nie ma dostępu do zasobów. To po prostu istnieje.
Podczas tworzenia jednostki usługi bez parametrów wykonaj również następujące kroki:
- Zarejestruj hasło przypisane przez system, ponieważ nie można go pobrać ponownie. Jeśli utracisz hasło, zresetuj je przy użyciu polecenia az ad sp credential reset , zgodnie z opisem w temacie Resetuj poświadczenia jednostki usługi.
- Ustaw przypisanie roli dla nowej jednostki usługi przy użyciu polecenia az role assignment create zgodnie z opisem w temacie Zarządzanie rolami jednostki usługi.
Uwaga
Jeśli Twoje konto nie ma uprawnień do tworzenia jednostki usługi, az ad sp create-for-rbac
zwraca komunikat o błędzie zawierający komunikat "Niewystarczające uprawnienia do ukończenia operacji". Skontaktuj się z administratorem firmy Microsoft Entra, aby utworzyć jednostkę usługi.
W katalogu Microsoft Entra ID, w którym ustawienie użytkownika Użytkownicy mogą rejestrować aplikacje zostało ustawione na Nie, musisz być członkiem jednej z następujących wbudowanych ról microsoft Entra ID (które mają akcję: microsoft.directory/applications/createAsOwner
lub microsoft.directory/applications/create
):
- Deweloper aplikacji
- Administrator aplikacji
- Administrator aplikacji w chmurze
- Globalny administrator usługi
- Administracja istrator tożsamości hybrydowej
Aby uzyskać więcej informacji na temat ustawień użytkownika w usłudze Microsoft Entra ID, zobacz Ograniczanie, kto może tworzyć aplikacje.
Tworzenie jednostki usługi z rolą i zakresem
Najlepszym rozwiązaniem jest przypisanie określonego --role
elementu i --scopes
utworzenie jednostki usługi. Wykonaj te kroki:
Określ poprawną rolę.
Podczas określania roli należy zawsze używać zasady najniższych uprawnień. Na przykład nie należy udzielać uprawnień jednostki
contributor
usługi do subskrypcji, jeśli jednostka usługi musi uzyskiwać dostęp tylko do usługi Azure Storage w grupie zasobów. Rozważ rolę specjalizalizaną, na przykład współautor danych obiektu blob magazynu. Aby uzyskać pełną listę dostępnych ról w kontroli dostępu opartej na rolach platformy Azure, zobacz Role wbudowane platformy Azure.Pobierz wartość parametru zakresów.
Znajdź i skopiuj identyfikator zasobu platformy Azure, do których musi uzyskać dostęp nowa jednostka usługi. Te informacje znajdują się zwykle na stronie Właściwości lub Punkty końcowe witryny Azure Portal dla każdego zasobu. Oto typowe
--scopes
przykłady, ale polegaj na identyfikatorze zasobu dla rzeczywistego formatu i wartości.Scope Przykład Subskrypcja /subscriptions/mySubscriptionID
Grupa zasobów /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Maszyna wirtualna /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Usługa plików konta magazynu /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Fabryka danych /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Aby uzyskać więcej przykładów zakresu, zobacz Omówienie zakresu kontroli dostępu opartej na rolach platformy Azure.
Utwórz jednostkę usługi.
W tym przykładzie zostanie utworzona nowa jednostka usługi o nazwie myServicePrincipalName1 z uprawnieniami czytelnika do wszystkich zasobów w grupie zasobów RG1.
# Bash script az ad sp create-for-rbac --name myServicePrincipalName1 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
Parametr
--scopes
akceptuje rozdzielaną spacjami listę zakresów. W tym przykładzie zostanie utworzona nowa jednostka usługi o nazwie myServicePrincipalName2 z uprawnieniami czytelnika do wszystkich zasobów w grupie zasobów myRG1. Ta jednostka usługi ma również uprawnienia czytelnika do maszyny wirtualnej myVM znajdującej się w myRG2.# Bash script az ad sp create-for-rbac --name myServicePrincipalName2 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG2/providers/Microsoft.Compute/virtualMachines/myVM
Jeśli zdecydujesz, że przyznano ci zbyt mało lub zbyt wiele uprawnień do nowej jednostki usługi, zmień uprawnienia, zarządzając rolami jednostki usługi.
Tworzenie jednostki usługi przy użyciu zmiennych
Jednostkę usługi można również utworzyć przy użyciu zmiennych:
# Bash script
let "randomIdentifier=$RANDOM*$RANDOM"
servicePrincipalName="msdocs-sp-$randomIdentifier"
roleName="azureRoleName"
subscriptionID=$(az account show --query id --output tsv)
# Verify the ID of the active subscription
echo "Using subscription ID $subscriptionID"
resourceGroup="myResourceGroupName"
echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup"
az ad sp create-for-rbac --name $servicePrincipalName \
--role $roleName \
--scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup
Aby uzyskać pełną listę właściwości jednostki usługi, użyj polecenia az ad sp list i zobacz Pobieranie istniejącej jednostki usługi.
Ostrzeżenie
Podczas tworzenia jednostki usługi platformy Azure przy użyciu az ad sp create-for-rbac
polecenia dane wyjściowe zawierają poświadczenia, które należy chronić. Pamiętaj, aby nie uwzględniać tych poświadczeń w kodzie ani nie ewidencjonować ich w systemie kontroli kodu źródłowego. Alternatywnie rozważ użycie tożsamości zarządzanych , jeśli są dostępne, aby uniknąć konieczności używania poświadczeń.
Następne kroki
Teraz, gdy wiesz już, jak utworzyć jednostkę usługi platformy Azure, przejdź do następnego kroku, aby dowiedzieć się, jak używać jednostek usługi z uwierzytelnianiem opartym na hasłach.