Utiliser le point de terminaison privilégié dans Azure Stack Hub
En tant qu’opérateur Azure Stack Hub, vous devez utiliser le portail administrateur, PowerShell ou les API Azure Resource Manager pour la plupart des tâches de gestion quotidiennes. Toutefois, pour certaines opérations moins courantes, vous devez utiliser le point de terminaison privilégié (PEP). Le pep est une console PowerShell distante préconfigurée qui vous offre suffisamment de fonctionnalités pour vous aider à effectuer une tâche requise. Le point de terminaison utilise PowerShell JEA (Just Enough Administration) pour exposer uniquement un ensemble restreint d’applets de commande. Pour accéder au point de terminaison privilégié et appeler l’ensemble limité d’applets de commande, un compte à faibles privilèges est utilisé. Aucun compte administrateur n’est requis. Pour une sécurité supplémentaire, le script n’est pas autorisé.
Vous pouvez utiliser le PEP pour effectuer ces tâches :
- Tâches de bas niveau, telles que la collecte des journaux de diagnostic .
- De nombreuses tâches d’intégration de centre de données post-déploiement pour les systèmes intégrés, telles que l’ajout de redirecteurs DNS (Domain Name System) après le déploiement, la configuration de l’intégration de Microsoft Graph, l’intégration des services de fédération Active Directory (AD FS), la rotation des certificats, etc.
- Pour travailler avec le personnel du support technique afin d’obtenir un accès temporaire et de haut niveau pour la résolution approfondie des problèmes d’un système intégré.
Le pep journalise chaque action (et sa sortie correspondante) que vous effectuez dans la session PowerShell. Cela offre une transparence totale et un audit complet des opérations. Vous pouvez conserver ces fichiers journaux pour les audits futurs.
Remarque
Dans le Kit de développement Azure Stack (ASDK), vous pouvez exécuter certaines des commandes disponibles dans le pep directement à partir d’une session PowerShell sur l’hôte du kit de développement. Toutefois, vous pouvez tester certaines opérations à l’aide du PEP, telles que la collecte de logs, puisqu'il s’agit de la seule méthode disponible pour effectuer certaines opérations dans un environnement de systèmes intégrés.
Remarque
Vous pouvez également utiliser la station de travail d’accès opérateur (OAW) pour accéder au point de terminaison privilégié (PEP), au portail d’administration pour les scénarios de support et aux outils GitHub Azure Stack Hub. Pour plus d’informations, consultez Azure Stack Hub Operator Access Workstation.
Accéder au point de terminaison privilégié
Vous accédez au pep via une session PowerShell distante sur la machine virtuelle qui héberge le pep. Dans l’ASDK, cette machine virtuelle est nommée AzS-ERCS01. Si vous utilisez un système intégré, il existe trois instances du PEP, chacune s’exécutant à l’intérieur d’une machine virtuelle (Préfixe-ERCS01, Préfixe-ERCS02 ou Préfixe-ERCS03) sur différents hôtes pour la résilience.
Avant de commencer cette procédure pour un système intégré, vérifiez que vous pouvez accéder au pep par adresse IP ou via DNS. Après le déploiement initial d’Azure Stack Hub, vous pouvez accéder au PEP uniquement par adresse IP, car l’intégration DNS n’est pas encore configurée. Votre fournisseur de matériel OEM vous fournit un fichier JSON nommé AzureStackStampDeploymentInfo qui contient les adresses IP PEP.
Vous pouvez également trouver l’adresse IP dans le portail d’administration Azure Stack Hub. Ouvrez le portail ; par exemple, https://adminportal.local.azurestack.external
. Sélectionnez Region Management>Properties (Gestion des régions>Propriétés).
Vous devez définir votre culture actuelle sur en-US
lorsque vous exécutez le point de terminaison privilégié, sinon les applets de commande telles que Test-AzureStack
ou Get-AzureStackLog
ne fonctionnent pas comme prévu.
Remarque
Pour des raisons de sécurité, nous vous demandons de vous connecter au pep uniquement à partir d’une machine virtuelle renforcée s’exécutant sur l’hôte de cycle de vie du matériel, ou à partir d’un ordinateur dédié et sécurisé, tel qu’une station de travail à accès privilégié . La configuration d'origine de l'hôte du cycle de vie du matériel ne doit pas être modifiée (y compris par l'installation de nouveaux logiciels) ni utilisée pour se connecter au PEP.
Établissez la confiance.
Sur un système intégré, exécutez la commande suivante à partir d’une session Windows PowerShell avec élévation de privilèges pour ajouter le PEP en tant qu’hôte approuvé sur la machine virtuelle sécurisée s’exécutant sur l'hôte de gestion du cycle de vie matériel ou la Station de Travail à Accès Privilegié :
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '<IP Address of Privileged Endpoint>' -Concatenate
Si vous exécutez l’ASDK, connectez-vous à l’hôte du kit de développement.
Sur la machine virtuelle renforcée s’exécutant sur l’hôte de cycle de vie du matériel ou sur la station de travail Privileged Access, ouvrez une session Windows PowerShell. Exécutez les commandes suivantes pour établir une session distante sur la machine virtuelle qui héberge le point de terminaison privilégié :
Sur un système intégré :
$cred = Get-Credential $pep = New-PSSession -ComputerName <IP_address_of_ERCS> -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US) Enter-PSSession $pep
Le paramètre
ComputerName
peut être l’adresse IP ou le nom DNS de l’une des machines virtuelles qui hébergent le pep.Remarque
Azure Stack Hub n’effectue pas d’appel distant lors de la validation des informations d’identification PEP. Il s’appuie sur une clé publique RSA stockée localement pour ce faire.
Si vous exécutez l’ASDK :
$cred = Get-Credential $pep = New-PSSession -ComputerName azs-ercs01 -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US) Enter-PSSession $pep
Lorsque vous y êtes invité, utilisez les informations d’identification suivantes :
- nom d’utilisateur: spécifiez le compte CloudAdmin, au format <domaine Azure Stack Hub>\cloudadmin.
- mot de passe: entrez le même mot de passe fourni lors de l’installation du compte d’administrateur de domaine AzureStackAdmin.
Remarque
Si vous ne parvenez pas à vous connecter au point de terminaison ERCS, réessayez les étapes une et deux avec une autre adresse IP de machine virtuelle ERCS.
Avertissement
Par défaut, votre instance Azure Stack Hub est configurée avec un seul compte CloudAdmin. Il n’existe aucune option de récupération si les informations d’identification du compte sont perdues, compromises ou verrouillées. Vous perdez l’accès au point de terminaison privilégié et à d’autres ressources.
Nous vous recommandons vivement de créer des comptes CloudAdmin supplémentaires, afin d’éviter de procéder au redéploiement de votre tampon à vos propres frais. Veillez à documenter ces informations d’identification en fonction des instructions de votre entreprise.
Une fois connecté, l’invite passe à [ adresse IPou nom de machine virtuelle ERCS] : PS> ou à [azs-ercs01] : PS>, en fonction de l’environnement. À partir de là, exécutez
Get-Command
pour afficher la liste des applets de commande disponibles.Vous trouverez une référence pour les applets de commande dans Informations de référence sur le point de terminaison privilégié Azure Stack Hub
La plupart de ces applets de commande sont destinées uniquement aux environnements système intégrés (tels que les applets de commande liées à l’intégration au centre de données). Dans l’ASDK, les applets de commande suivantes ont été validées :
- Clear-Host
- Close-PrivilegedEndpoint
- Exit-PSSession
- Get-AzureStackLog
- Get-AzureStackStampInformation
- Get-Command
- Get-FormatData
- Get-Help
- Get-ThirdPartyNotices
- Measure-Object
- New-CloudAdminUser
- Out-Default
- Remove-CloudAdminUser
- Select-Object
- Set-CloudAdminUserPassword
- Test-AzureStack
- Stop-AzureStack
- Get-ClusterLog
Comment utiliser le point de terminaison privilégié
Comme mentionné ci-dessus, le point de terminaison privilégié est un point de terminaison PowerShell JEA. Tout en procurant une couche de sécurité renforcée, un point de terminaison JEA réduit certaines des fonctionnalités de base de PowerShell, comme l’écriture de scripts ou la saisie semi-automatique via la touche Tab. Si vous essayez un type d’opération de script, l’opération échoue avec l’erreur ScriptsNotAllowed. Cet échec est un comportement prévu.
Par exemple, pour obtenir la liste des paramètres d’une applet de commande donnée, exécutez la commande suivante :
Get-Command <cmdlet_name> -Syntax
Vous pouvez également utiliser l’applet de commande import-PSSessionpour importer toutes les applets de commande PEP dans la session active sur votre ordinateur local. L’ensemble des applets de commande et des fonctions du point de terminaison sont désormais disponibles sur votre ordinateur local, avec la saisie semi-automatique via la touche Tab et, plus généralement, l’écriture de scripts. Vous pouvez également exécuter le module Get-Help pour passer en revue les instructions d’applet de commande.
Pour importer la session PEP sur votre ordinateur local, procédez comme suit :
Établissez la confiance.
Sur un système intégré, exécutez la commande suivante à partir d’une session Windows PowerShell avec élévation de privilèges pour ajouter le point de terminaison privilégié en tant qu’hôte approuvé sur la machine virtuelle renforcée, qui s’exécute sur l’hôte de cycle de vie du matériel ou sur la station de travail à accès privilégié.
winrm s winrm/config/client '@{TrustedHosts="<IP Address of Privileged Endpoint>"}'
Si vous exécutez l’ASDK, connectez-vous à l’hôte du kit de développement.
Sur la machine virtuelle renforcée s’exécutant sur l’hôte de cycle de vie du matériel ou sur la station de travail Privileged Access, ouvrez une session Windows PowerShell. Exécutez les commandes suivantes pour établir une session à distance sur la machine virtuelle qui héberge le point de terminaison privilégié :
Sur un système intégré :
$cred = Get-Credential $session = New-PSSession -ComputerName <IP_address_of_ERCS> ` -ConfigurationName PrivilegedEndpoint -Credential $cred ` -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
Le paramètre
ComputerName
peut être l’adresse IP ou le nom DNS de l’une des machines virtuelles qui hébergent le pep.Si vous exécutez l’ASDK :
$cred = Get-Credential $session = New-PSSession -ComputerName azs-ercs01 ` -ConfigurationName PrivilegedEndpoint -Credential $cred ` -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
Lorsque vous y êtes invité, utilisez les informations d’identification suivantes :
nom d’utilisateur: spécifiez le compte CloudAdmin, au format <domaine Azure Stack Hub>\cloudadmin. (Pour ASDK, le nom d’utilisateur est azurestack\cloudadmin.)
mot de passe: entrez le même mot de passe fourni lors de l’installation du compte d’administrateur de domaine AzureStackAdmin.
Importez la session PEP sur votre ordinateur local :
Import-PSSession $session
À présent, vous pouvez utiliser la complétion par tabulation et saisir des scripts comme d’habitude sur votre session PowerShell locale avec toutes les fonctions et applets de commande du PEP, sans diminuer le niveau de sécurité d’Azure Stack Hub. Profitez !
Fermer la session du point d'accès privilégié
Comme mentionné précédemment, le pep journalise chaque action (et sa sortie correspondante) que vous effectuez dans la session PowerShell. Vous devez fermer la session à l’aide de l’applet de commande Close-PrivilegedEndpoint
. Cette applet de commande ferme correctement le point de terminaison et transfère les fichiers journaux vers un partage de fichiers externe à des fins de rétention.
Pour fermer la session du terminal :
Créez un partage de fichiers externe accessible par le PEP. Dans un environnement de kit de développement, vous pouvez simplement créer un partage de fichiers sur l’hôte du kit de développement.
Exécutez l’applet de commande suivante :
Close-PrivilegedEndpoint -TranscriptsPathDestination "\\fileshareIP\SharedFolder" -Credential Get-Credential
L’applet de commande utilise les paramètres du tableau suivant :
Paramètre Description Type Obligatoire TranscriptsPathDestination Chemin d’accès au partage de fichiers externe défini comme « fileshareIP\sharefoldername » String Oui Informations d’identification Informations d’identification pour accéder au partage de fichiers SecureString Oui
Une fois les fichiers journaux de transcription correctement transférés vers le partage de fichiers, ils sont automatiquement supprimés du point de terminaison privilégié.
Remarque
Si vous fermez la session PEP à l’aide des applets de commande Exit-PSSession
ou Exit
, ou que vous fermez simplement la console PowerShell, les journaux de transcription ne sont pas transférés vers un partage de fichiers. Ils restent dans le PEP. La prochaine fois que vous exécutez Close-PrivilegedEndpoint
et incluez un partage de fichiers, les journaux de transcription de la ou des sessions précédentes seront également transférés. N’utilisez pas Exit-PSSession
ou Exit
pour fermer la session PEP ; utilisez Close-PrivilegedEndpoint
à la place.
Déverrouillage du point de terminaison privilégié pour les scénarios de prise en charge
Dans un scénario de support, l’ingénieur du support Microsoft peut avoir besoin d’élever la session PowerShell de point de terminaison privilégié pour accéder aux éléments internes de l’infrastructure Azure Stack Hub. Ce processus est parfois appelé « briser le verre » ou « déverrouiller le PEP ». Le processus d'élévation de session PEP est un processus d'authentification en deux étapes, impliquant deux personnes et deux organisations. La procédure de déverrouillage est lancée par l’opérateur Azure Stack Hub, qui conserve le contrôle de son environnement à tout moment. L’opérateur accède au pep et exécute cette applet de commande :
Get-SupportSessionToken
L’applet de commande retourne le jeton de demande de session de support, qui est une chaîne alphanumérique très longue. L’opérateur transmet ensuite le jeton de demande à l’ingénieur du support Microsoft via un moyen de leur choix (par exemple, conversation, e-mail). L’ingénieur du support Microsoft utilise le jeton de demande pour générer, s’il est valide, un jeton d’autorisation de session de support et le renvoie à l’opérateur Azure Stack Hub. Sur la même session PEP PowerShell, l’opérateur transmet ensuite le jeton d’autorisation comme entrée à cette applet de commande :
unlock-supportsession
cmdlet Unlock-SupportSession at command pipeline position 1
Supply values for the following parameters:
ResponseToken:
Si le jeton d’autorisation est valide, la session PowerShell de point de terminaison privilégié fait l’objet d’une élévation des privilèges en fournissant des fonctionnalités d’administration complètes et une accessibilité totale à l’infrastructure.
Remarque
Toutes les opérations et applets de commande exécutées dans une session PEP élevée doivent être effectuées sous la supervision stricte de l'ingénieur de support technique Microsoft. L’échec de cette opération peut entraîner un temps d’arrêt grave, une perte de données et nécessiter un redéploiement complet de l’environnement Azure Stack Hub.
Une fois la session de support terminée, il est très important de fermer la session PEP avec élévation de privilèges en utilisant l’applet de commande Close-PrivilegedEndpoint, comme expliqué dans la section ci-dessus. Une session PEP est arrêtée, le jeton de déverrouillage n’est plus valide et ne peut plus être réutilisé pour déverrouiller à nouveau la session PEP. Une session PEP avec élévation de privilèges a une validité de 8 heures, après quoi, si elle n’est pas terminée, la session PEP avec élévation de privilèges se verrouille automatiquement à une session PEP régulière.
Contenu des jetons de point de terminaison privilégiés
Les jetons de demande de session et d’autorisation de support PEP tirent parti du chiffrement pour protéger l’accès et s’assurer que seuls les jetons autorisés peuvent déverrouiller la session PEP. Les jetons sont conçus pour garantir par chiffrement qu’un jeton de réponse ne peut être accepté que par la session PEP qui a généré le jeton de requête. Les jetons PEP ne contiennent pas de type d’informations qui peuvent identifier de manière unique un environnement Azure Stack Hub ou un client. Ils sont complètement anonymes. Les détails du contenu de chaque jeton sont fournis ci-dessous.
Jeton de demande de session de support
Le jeton de demande de session de support PEP se compose de trois objets :
- ID de session généré de façon aléatoire.
- Un certificat auto-signé, généré pour avoir une paire de clés publique/privée unique. Le certificat ne contient aucune information sur l’environnement.
- Un horodatage qui indique l’expiration du jeton de requête.
Le jeton de requête est ensuite chiffré avec la clé publique du cloud Azure sur laquelle l’environnement Azure Stack Hub est inscrit.
Jeton de réponse d’autorisation de session de support
Le jeton de réponse d’autorisation de support PEP est composé de deux objets :
- ID de session généré de manière aléatoire extrait du jeton de requête.
- Un horodatage qui indique l’expiration du jeton de réponse.
Le jeton de réponse est ensuite chiffré avec le certificat auto-signé contenu dans le jeton de requête. Le certificat auto-signé a été déchiffré avec la clé privée associée au cloud Azure sur lequel l’environnement Azure Stack Hub est inscrit.