Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
W tym poradniku nauczysz się, jak:
- Utwórz kierownika usługi
- Logowanie przy użyciu jednostki usługi i hasła
- Logowanie przy użyciu jednostki usługi i certyfikatu
- Zarządzanie rolami głównej jednostki usługi
- Utwórz zasób platformy Azure przy użyciu zasady usługi
- Resetowanie poświadczeń głównego konta usługi
Wymagania wstępne
- W ramach subskrypcji musisz mieć uprawnienia
User Access Administrator
lubRole Based Access Control Administrator
, lub wyższe, aby utworzyć jednostkę usługi. Aby uzyskać listę ról dostępnych w ramach kontroli dostępu opartej na rolach (Azure RBAC), zapoznaj się z Wbudowanymi rolami w Azure.
Użyj środowiska Bash w Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Get started with Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj Azure CLI. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie Azure CLI w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić Azure CLI w kontenerze Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do Azure CLI za pomocą polecenia az login. Aby zakończyć proces uwierzytelniania, wykonaj kroki wyświetlane na Twoim terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
Gdy zostaniesz o to poproszony/a, zainstaluj rozszerzenie Azure CLI przy pierwszym użyciu. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą interfejsu wiersza polecenia platformy Azure.
Uruchom az version, aby sprawdzić zainstalowaną wersję i biblioteki zależne. Aby zaktualizować do najnowszej wersji, uruchom az upgrade.
Utwórz kierownika 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 dla nowej jednostki usługi później, polecenie az ad sp create-for-rbac
bez parametrów może być 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, jak opisano w Resetuj poświadczenia głównego użytkownika usługi.
- Ustaw przypisanie roli dla nowej jednostki usługi, używając polecenia az role assignment create, zgodnie z opisem w sekcji Zarządzanie rolami jednostki usługi.
Uwaga / Notatka
Jeśli Twoje konto nie ma uprawnień do tworzenia głównego użytkownika usługi, az ad sp create-for-rbac
zwraca komunikat o błędzie zawierający "Niewystarczające uprawnienia do ukończenia operacji". Skontaktuj się z administratorem Microsoft Entra, aby utworzyć główny element 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
):
- Programista aplikacji
- Administrator aplikacji
- Administrator aplikacji w chmurze
- Administrator ogólnosystemowy
- Administrator 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.
Utwórz jednostkę usługi z przypisaną rolą i zakresem
Zgodnie z najlepszymi praktykami, zawsze przypisuj określone --role
i --scopes
podczas tworzenia jednostki głównej 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 dawaj jednostce głównej usługi
contributor
uprawnień do subskrypcji, jeśli potrzebuje ona jedynie dostępu do usługi Azure Storage w ramach grupy zasobów. Rozważ specjalizowaną rolę, taką jak współtwórca danych obiektów blob magazynu. Aby uzyskać pełną listę dostępnych ról w Azure RBAC, zobacz Wbudowane role Azure.Pobierz wartość parametru zakresów.
Znajdź i skopiuj Resource ID zasobu platformy Azure, do którego musi uzyskać dostęp nowy główny obiekt usługi. Informacje te zwykle znajdują się na stronie Właściwości lub Punkty końcowe każdego zasobu w portalu Azure. Oto typowe
--scopes
przykłady, ale polegaj na swoim 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 magazynowego /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 Zrozum zakres w Azure RBAC.
Utwórz zasadę 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 zasady 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 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ń.
Dalsze 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.