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 d’administration quotidiennes. Toutefois, pour certaines opérations moins courantes, vous devez utiliser le point de terminaison privilégié (PEP). Ce point de terminaison est une console PowerShell distante préconfigurée qui vous fournit suffisamment de fonctionnalités pour vous aider à effectuer une tâche nécessaire. Le point de terminaison s’appuie sur PowerShell JEA (Just Enough Administration) pour exposer uniquement un ensemble limité 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 d’administrateur n’est nécessaire. Pour plus de sécurité, les scripts ne sont pas autorisés.

Vous pouvez utiliser le points de terminaison privilégié pour effectuer les tâches suivantes :

  • Des tâches de bas niveau, comme collecter les journaux de diagnostic.
  • De nombreuses tâches post-déploiement d’intégration au centre de données pour les systèmes intégrés, comme l’ajout de redirecteurs DNS (Domain Name System), la configuration de l’intégration de Microsoft Graph, l’intégration des services de fédération Active Directory (AD FS), la permutation des certificats, etc.
  • Collaborer avec l’équipe de support afin d’obtenir un accès global temporaire pour un dépannage approfondi d’un système intégré.

Le point de terminaison privilégié journalise chaque action (et sa sortie correspondante) que vous effectuez pendant la session PowerShell. Transparence totale et audit complet des opérations sont ainsi assurés. Vous pouvez conserver ces fichiers journaux en vue d’opérations d’audit futures.

Notes

Dans le Kit de développement Azure Stack (ASDK), vous pouvez exécuter certaines commandes disponibles dans le point de terminaison privilégié directement à partir d’une session PowerShell sur l’hôte du Kit de développement. Toutefois, vous pouvez être amené à tester certaines opérations à l’aide du point de terminaison privilégié, telles que la collecte de journaux, car c’est la seule méthode disponible pour effectuer certaines opérations dans un environnement de systèmes intégrés.

Remarque

Vous pouvez également utiliser OAW (Operator Access Workstation) pour accéder au point de terminaison privilégié (PEP), au portail d’administration pour les scénarios de prise en charge 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 point de terminaison privilégié via une session PowerShell distante sur la machine virtuelle qui héberge le point de terminaison privilégié. Dans ASDK, cette machine virtuelle est nommée AzS-ERCS01. Si vous utilisez un système intégré, il existe trois instances du point de terminaison privilégié, chacune s’exécutant à l’intérieur d’une machine virtuelle (Préfixe-ERCS01, Préfixe-ERCS02 ou Préfixe-ERCS03) sur des hôtes différents à des fins de résilience.

Avant de commencer cette procédure pour un système intégré, vérifiez que vous pouvez accéder à un point de terminaison privilégié via une adresse IP ou via DNS. Après le déploiement initial d’Azure Stack Hub, vous pouvez accéder au point de terminaison privilégié seulement via une adresse IP, car l’intégration de DNS n’est pas encore configurée. Votre fournisseur de matériel OEM vous fournira un fichier JSON nommé AzureStackStampDeploymentInfo qui contient les adresses IP de point de terminaison privilégié.

Vous pouvez également trouver l’adresse IP dans le portail administrateur Azure Stack Hub. Ouvrez le portail, par exemple, https://adminportal.local.azurestack.external. Sélectionnez Gestion des régions>Propriétés.

Vous devez affecter la valeur en-US à votre paramètre de culture actuel au moment de l’exécution du point de terminaison privilégié. Sinon, les applets de commande telles que Test-AzureStack ou Get-AzureStackLog ne vont pas fonctionner comme prévu.

Notes

Pour des raisons de sécurité, vous devez vous connecter au point de terminaison privilégié uniquement à partir d’une machine virtuelle renforcée s’exécutant par-dessus l’hôte de cycle de vie du matériel, ou d’un ordinateur dédié et sécurisé, comme une station de travail à accès privilégié. La configuration d’origine de l’hôte de cycle de vie du matériel ne doit pas être modifiée (même en cas d’installation de nouveaux logiciels), ni utilisée pour se connecter au point de terminaison privilégié.

  1. Établir une relation de 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é.

      Set-Item WSMan:\localhost\Client\TrustedHosts -Value '<IP Address of Privileged Endpoint>' -Concatenate
      
    • Si vous exécutez le kit ASDK, connectez-vous à l’hôte du kit de développement.

  2. 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 à accès privilégié, 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éberge le point de terminaison privilégié.

      Notes

      Azure Stack Hub n’effectue pas d’appel à distance lors de la validation des informations d’identification du point de terminaison privilégié. Pour les valider, il s’appuie sur une clé publique RSA stockée localement.

    • Si vous exécutez le kit ADSK :

      $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
      

    Quand 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 le Kit ASDK, le nom d’utilisateur est azurestack\cloudadmin)
    • Mot de passe : entrez le mot de passe du compte d'administrateur de domaine AzureStackAdmin tel qu'il vous a été fourni pendant l'installation.

    Notes

    Si vous ne parvenez pas à vous connecter au point de terminaison ERCS, réessayez les étapes 1 et 2 avec l’adresse IP d’une autre machine virtuelle ERCS.

    Avertissement

    Par défaut, votre tampon Azure Stack Hub est configuré 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 perdrez l’accès au point de terminaison privilégié et aux 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.

  3. Dès que vous êtes connecté, l’invite devient [Adresse IP ou nom VM ERCS]: PS> ou [azs-ercs01]: PS>, en fonction de l’environnement. Depuis cette invite, 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

    Un grand nombre de ces applets de commande sont uniquement destinées aux environnements de système intégré (par exemple, les applets de commande associées à l’intégration au centre de données). Dans le Kit 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. Toute tentative d’opération de script est vouée à l’échec et se solde par l’erreur ScriptsNotAllowed. Cette erreur est normale.

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

Sinon, vous pouvez utiliser l’applet de commande Import-PSSession pour importer l’ensemble des applets de commande de point de terminaison privilégié dans la session actuelle 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 de l’applet de commande.

Pour importer la session du point de terminaison privilégié sur votre ordinateur local, procédez ainsi :

  1. Établir une relation de 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 le kit ASDK, connectez-vous à l’hôte du kit de développement.

  2. 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 à accès privilégié, 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
      
      $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éberge le point de terminaison privilégié.

    • Si vous exécutez le kit ADSK :

      $cred = Get-Credential
      
      $session = New-PSSession -ComputerName azs-ercs01 `
         -ConfigurationName PrivilegedEndpoint -Credential $cred `
         -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
      

    Quand 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 le Kit ASDK, le nom d’utilisateur est azurestack\cloudadmin.)

    • Mot de passe : entrez le mot de passe du compte d'administrateur de domaine AzureStackAdmin tel qu'il vous a été fourni pendant l'installation.

  3. Importer la session du point de terminaison privilégié dans votre machine locale :

    Import-PSSession $session
    
  4. Vous pouvez désormais utiliser la saisie semi-automatique via la touche Tab pour écrire des scripts comme de coutume sur votre session locale PowerShell à l’aide de l’ensemble des fonctions et des applets de commande du point de terminaison privilégié, sans réduire la sécurité d’Azure Stack Hub. Vous n’avez plus qu’à l’utiliser !

Fermer la session du point de terminaison privilégié

Comme indiqué plus haut, le point de terminaison privilégié journalise chaque action (et sa sortie correspondante) que vous effectuez dans la session PowerShell. Vous devez fermer la session avec 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 point de terminaison :

  1. Créez un partage de fichiers externe qui est accessible au point de terminaison privilégié. Dans un environnement avec Kit de développement, vous pouvez simplement créer un partage de fichiers sur l’hôte du Kit de développement.

  2. 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 du partage de fichiers externe défini comme ceci : « adresse_IP_partage_fichiers\nom_dossier_partage » 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é.

Notes

Si vous fermez la session du point de terminaison privilégié à l’aide des applets de commande Exit-PSSession ou Exit, ou que vous fermez simplement la console PowerShell, les journaux d’activité de transcription ne sont pas transférés vers un partage de fichiers. Ils demeurent dans le point de terminaison privilégié. La prochaine fois que vous exécutez Close-PrivilegedEndpoint et que vous incluez un partage de fichiers, les journaux d’activité de transcription issus de la (des) session(s) précédente(s) sont également transférés. N’utilisez pas Exit-PSSession ou Exit pour fermer la session du point de terminaison privilégié ; utilisez Close-PrivilegedEndpoint.

Déverrouillage du point de terminaison privilégié pour les scénarios de support

Dans le cadre d’un scénario de support, l’ingénieur du support Microsoft peut être amené à é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 désigné par la formule « briser la vitre » ou « déverrouiller le point de terminaison privilégié » (PEP). Le processus d’élévation de session de point de terminaison privilégié est un processus d’authentification comprenant deux étapes, deux personnes et deux organisations. La procédure de déverrouillage est lancée par l’opérateur Azure Stack Hub, qui conserve en permanence le contrôle de son environnement. L’opérateur accède au point de terminaison privilégié et exécute cette cmdlet :

     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 par le biais du moyen de son choix (par exemple, un chat, un 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. Dans la même session PowerShell de point de terminaison privilégié, 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.

Notes

Toutes les opérations et applets de commande exécutées dans une session de point de terminaison privilégié avec élévation des privilèges doivent être effectuées sous le strict contrôle de l’ingénieur du support Microsoft. Dans le cas contraire, vous risquez de provoquer des temps d’arrêt importants, de perdre des données et de devoir procéder à un redéploiement complet de l’environnement Azure Stack Hub.

Une fois la session de support terminée, il est très important de refermer la session de point de terminaison privilégié avec élévation des privilèges à l’aide de l’applet de commande Close-PrivilegedEndpoint, comme expliqué dans la section ci-dessus. Une fois la session de point de terminaison privilégié terminée, le jeton de déverrouillage n’est plus valide et ne peut pas être réutilisé pour la déverrouiller à nouveau. Une session de point de terminaison privilégié avec élévation de privilèges a une validité de 8 heures, après quoi, si elle n’est pas terminée, elle est automatiquement reverrouillée dans une session de point de terminaison privilégié normale.

Contenu des jetons de point de terminaison privilégié

Les jetons de demande de session de support d’un point de terminaison privilégié et les jetons d’autorisation mettent à profit le chiffrement pour protéger l’accès et garantir que seuls les jetons autorisés peuvent déverrouiller la session de point de terminaison privilégié. Les jetons sont conçus pour garantir par chiffrement qu’un jeton de réponse ne peut être accepté que par la session de point de terminaison privilégié qui a généré le jeton de demande. Les jetons de point de terminaison privilégié ne contiennent aucun type d’informations pouvant identifier de manière unique un environnement Azure Stack Hub ou un client. Ils sont entièrement anonymes. Vous trouverez ci-dessous les détails du contenu de chaque jeton.

Jeton de demande de session de support

Le jeton de demande de session de support de point de terminaison privilégié se compose de trois objets :

  • Un ID de session généré de manière aléatoire.
  • Un certificat auto-signé, généré dans le but d’avoir une paire de clés publique/privée ponctuelle. Le certificat ne contient aucune information sur l’environnement.
  • Un horodatage qui indique l’expiration du jeton de requête.

Le jeton de demande est ensuite chiffré avec la clé publique du cloud Azure sur lequel 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 d’un point de terminaison privilégié se compose de deux objets :

  • L’ID de session généré de manière aléatoire extrait à partir 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 demande. 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.

Étapes suivantes