Création de configurations personnalisées - Amazon Nimble Studio

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création de configurations personnalisées

Les administrateurs peuvent utiliser des composants personnalisés pour configurer les instances. Cela permet aux administrateurs de configurer et de contrôler des propriétés supplémentaires de leurs stations de travail de streaming. Utilisation de composants personnalisés PowerShell des scripts pour Windows et des scripts shell pour les instances Linux. Ces configurations peuvent être ajoutées aux profils de lancement à des fins de récupération. Après avoir créé des configurations personnalisées, vous pouvez ajouter des ressources à vos postes de travail et exécuter des scripts personnalisés sur votre instance, votre système et l'initialisation de l'utilisateur.

Ce didacticiel explique comment créer et joindre des configurations personnalisées. Des exemples de configurations personnalisées et leurs utilisations sont également fournis.

Prérequis

  • Pour terminer ce didacticiel, vous avez besoin d'un studio cloud Nimble Studio actif déployé dans votreCompte AWS. Si vous n'avez pas encore déployé de studio cloud, consultez leDéploiement d'un nouveau studio StudioBuilderTutoriel.

Étape 1 : Créer la configuration personnalisée

Commencez par créer la configuration personnalisée. Cette section fournit plusieurs exemples de configurations personnalisées.

  1. Connectez-vous à la consoleAWS Management Consoleet ouvrez le fichierStudio Nimbleconsole.

  2. ChoisissezRessources de studiodans le panneau de navigation de gauche.

  3. ChoisissezAddsous le type de ressource de studio appeléConfiguration personnalisée.

    
                  La section de liste des types de ressources Studio sur la page des ressources Studio de la console Nimble Studio.
  4. Entrez les informations suivantes pour chaque section.

    1. Région : Choisissez leRégion AWSdans lequel votre studio est déployé. Ceci est prérempli avec la valeur correcte.

    2. Nom de la configuration personnalisée : Entrez le nom associé à cette configuration. Vous pourrez faire référence au nom de la configuration personnalisée dans les profils de lancement ultérieurement.

    3. Description de la configuration personnalisée : Entrez une description facultative de cette configuration personnalisée.

    4. Nom du paramètre : Entrez le nom du paramètre. Vous pouvez utiliser le nom du paramètre comme variable clé dans les scripts d'initialisation ultérieurement.

    5. Valeur de paramètre : Entrez la valeur du paramètre. Vous pouvez utiliser la valeur du paramètre dans les scripts pour remplacer le nom (clé) lors de l'exécution.

      1. Les valeurs des paramètres vous permettent d'ajouter des variables dans les scripts. Les valeurs des paramètres simplifient le remplacement des valeurs

      2. Vous pouvez ajouter plusieurs paramètres à chaque configuration personnalisée.

      3. Pour des exemples de paramètres, consultez leExemples de configuration personnalisée.

    6. (Facultatif) Rôles IAM : Choisissez le rôle IAM que vous souhaitez associer à ce composant personnalisé. Les utilisateurs dotés de ce profil IAM peuvent accéder à différentsAWSservices via leurs profils de lancement.

      1. Lors de la création du rôle IAM, sélectionnezChoisissez un service pour voir le cas d'utilisationmenu déroulant. ENTRÉENimble Studioet choisissezStudio Nimble.

      2. Activez la case d'option en regard deNimble Studio : permet aux ressources de Nimble Studio d'accéder àAWSressources. Sélectionnez ensuite Next (Suivant).

      3. Ajoutez des autorisations au rôle nouvellement créé pour lui accorder l'accès àAWSles ressources dont vous avez besoin.

      4. Choisissez unRôle d'initialisation. Ce rôle fournit un accès temporaire àAWSressources provenant de scripts d'initialisation du système. Pour des exemples de rôles d'initialisation, consultez leExemples de configuration personnaliséesection.

      5. Choisissez unRôle d'exécution. Ce rôle fournit un accès d'exécution àAWSdes ressources chaque fois que l'instance est en cours d'exécution.

    7. Scripts d'initialisation : Définition des fenêtres PowerShellou des scripts shell Linux qui s'exécutent pendant l'initialisation du système, pendant l'initialisation de l'utilisateur, ou pendant les deux.

      1. Pour des exemples de scripts d'initialisation, consultez leExemples de configuration personnalisée.

    8. Groupes de sécurité : Choisissez le groupe de sécurité que vous souhaitez associer à cette configuration personnalisée.

      1. Les groupes de sécurité permettent aux administrateurs d'ouvrir de nouveaux ports sur les instances afin d'effectuer certaines opérations sur l'instance. Cela peut inclure l'ouverture de ports pour la prise en charge du stockage de fichiers personnalisé ou de ports pour communiquer avec les serveurs de licences.

  5. (Facultatif) Ajoutez des balises si vous utilisez des balises pour suivre votreAWSRessources.

  6. ChoisissezEnregistrer la configuration personnalisée.

Étape 2 : Joindre une configuration personnalisée à un profil de lancement

Ensuite, attachez votre configuration personnalisée à un profil de lancement. Cette configuration personnalisée est utilisée pour programmer des profils de lancement afin d'exécuter les scripts joints.

  1. ChoisissezProfils de lancementdans le panneau de navigation de gauche.

  2. Sélectionnez le profil de lancement auquel vous souhaitez ajouter la configuration personnalisée.

  3. Choisissez,Action. Puis, choisissez Modifier.

  4. Faites défiler vers le basComposants de profil de lancement.

  5. Activez la case à cocher à côté du composant personnalisé que vous avez créé dansCréation de configurations personnalisées.

  6. Faites défiler la page vers le bas, puis choisissezProfil de lancement.

Vous avez maintenant créé et joint une configuration personnalisée à un profil de lancement. Pour voir un exemple de cas dans lesquels vous pouvez utiliser une configuration personnalisée, consultez leFournir un accès superutilisateur aux utilisateurs de LinuxTutoriel.

Exemples de configuration personnalisée

Les exemples suivants fournissent des valeurs de paramètres et des scripts d'initialisation pour des configurations personnalisées. Ils fournissent également un résumé des cas dans lesquels vous pouvez utiliser cette configuration personnalisée.

Configuration personnalisée pour masquer l'assistant réseau Windows Server après la connexion de l'utilisateur

Cet exemple crée un composant de configuration personnalisé qui définit un objet de stratégie de groupe (GPO) pourAWS Managed Microsoft AD. Ce GPO masque l'assistant réseau, qui s'afficherait autrement lorsqu'un utilisateur se connecte à une instance Windows Server.

Paramètres de script

  • Nom du paramètre : Nom du GPOValeur de paramètre : »HideNetworkWizard»

  • Nom du paramètre : Commentaire du GPOValeur de paramètre : « Masque l'assistant réseau lors de la connexion »

  • Nom du paramètre : RegKey Valeur de paramètre : «HideNetworkWizard« -Clé utilisateur contextuelle « HKCU \ Software \ Software \ Microsoft \ Windows NT \CurrentVersion\ Réseau \NwCategoryWizard« -ValueName « Afficher » -Type DWORD -Valeur 0 -Action Update

scripts d'initialisation système Windows

Le script d'initialisation du système Windows suivant utilise les paramètres de script de la section précédente pour configurer un GPS pourAWS Managed Microsoft AD.

New-GPLink -Name "HideNetworkWizard" -Target $target $domain = (Get-WmiObject Win32_ComputerSystem).Domain $split = $domain.Split(".") $target = 'ou=' + $split[0] + ',dc=' + $split[0] + ',dc=' + $split[1] + ',dc=' + $split[2] + ',dc=' + $split[3] New-GPO -Name "HideNetworkWizard" -Comment "Hides the Network Wizard at Login" Set-GPPrefRegistryValue -Name "HideNetworkWizard" -Context User -Key "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Network\NwCategoryWizard" -ValueName "Show" -Type DWORD -Value 0 -Action Update

L'image suivante illustre comment leNom du paramètre,Valeur de paramètre, etScript d'initialisation système Windowsserait saisi dans la console Nimble Studio.


                  Les sections Paramètres du script et Scripts d'initialisation de la console Nimble Studio.

Définissez la priorité du serveur NICE DCV

Cet exemple crée un composant de configuration personnalisé qui peut augmenter ou diminuer la priorité du processus pour le serveur de streaming NICE DCV. Cela est utile lorsque les utilisateurs exécutent des applications gourmandes en processeur, car cela donne la priorité au serveur de streaming.

Paramètres de script

  • Nom du paramètre : WinExecutable Valeur de paramètre: « dcvserver.exe »

  • Nom du paramètre : WinPriority Valeur de paramètre : « 256 »

  • Nom du paramètre : LinuxExecutable Valeur de paramètre: « /user/bin/dcvserver »

  • Nom du paramètre : LinuxPriority Valeur de paramètre : « 19 »

  • Nom du paramètre : LinuxConfigFile Valeur de paramètre: « /etc/dcv/dcv.conf »

    L'image suivante illustre comment leNom du paramètreetValeur de paramètreserait saisi dans la console Nimble Studio.


                  La section Paramètres du script.

scripts d'initialisation système Windows

Get-WmiObject Win32_process -filter 'name = "dcvserver.exe"' | foreach-object { $_.SetPriority(256) }

scripts d'initialisation système Linux

PSID=ps aux | grep -i /usr/bin/dcvserver | tr -s ' ' | cut -d ' ' -f 2 | head -n 1 renice -n 19 -p $PSID

L'image suivante montre comment Windows et LinuxScripts d'initialisation du systèmeserait saisi dans la console Nimble Studio.


               Les sections Paramètres du script et Scripts d'initialisation de la console Nimble Studio.

Utiliser un rôle d'initialisation des composants de studio

Cet exemple montre comment récupérer un secret depuisAWS Secrets Manageren utilisant lerôle d'initialisation. Les informations d'identification pour le rôle d'initialisation ne sont jamais accessibles à l'utilisateur du poste de travail. Ce rôle donne aux administrateurs les éléments nécessairesAWSaccès pour approvisionner une machine avant que l'utilisateur n'accède au poste de travail.

Pour utiliser ce script d'initialisation, créez d'abord un secret Secrets Manager en suivant lesCréation d'un secretTutoriel dans leAWS Secrets ManagerGuide de l'utilisateur.

  • PourKey, entrezexample-secret-keyet entrezexample-secret-valueen tant queValeur.

    • En cours de production,example-secret-keypeut être une clé d'API requise pour effectuer une configuration unique afin de provisionner le poste de travail.

  • PourNom, entrez un nom. Par exemple, example-secret.

  • Notez l'ARN (Amazon Resource Name) du secret. Vous ferez référence à cet ARN lors de la création du rôle d'initialisation.

  • Remarquez le secretRégion AWS. Vous aurez besoin duRégion AWSafin que vous puissiez récupérer le secret auprès duAWS CLIdans le script d'initialisation système.

Ensuite, créez un IAM d'initialisation qui peut accéder au secret en suivantCréation d'un rôle pour unService AWS(console)Tutoriel dans leIAM User Guide.

  • Choisissez Nimble Studio en tant queEntité de confiance.

  • Lors de la création du rôle, sélectionnezPolitique de confiance personnaliséesur leChoisir une entité de confiancepage. Entrez ensuite la politique suivante.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "identity.nimble.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }
  • ChoisissezCréer une politiqueet entrez le texte JSON suivant dans l'éditeur JSON. Remplacer<SECRET_ARN>avec l'ARN du secret que vous avez créé précédemment.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "GetExampleSecretValue", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "<SECRET_ARN>" } ] }
  • Nom de cette politiqueGetExampleSecretValueet ajoutez cette politique au rôle que vous créez.

  • Pour le Nom du rôle, saisissez ExampleStudioComponentInitRole.

Choisissez ce rôle lorsque vous créez un composant de studio. Lorsque vous ajoutez Nimble Studio en tant qu'entité de confiance, ce rôle s'affiche dans la liste déroulante de la section des rôles IAM duCréer un composant Studiopage.

scripts d'initialisation système Linux

Maintenant que vous avez joint leExampleStudioComponentInitRoleau composant studio, les informations d'identification correspondant à ce rôle seront automatiquement disponibles à partir des scripts d'initialisation de votre système. Vous pouvez accéder à ces informations d'identification via leAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, etAWS_SESSION_TOKENVariables d'environnement. Ceci signifie que vous pouvez utiliser leAWS CLIou un SDK sans aucune gestion manuelle des informations d'identification. Si votre composant studio nécessite une clé API pour fournir à une machine les fonctionnalités qu'il fournit, utilisez le script suivant pour accéder à cette clé.

# The AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN # environment variables now contain credentials corresponding to # ExampleStudioComponentInitRole, so we can go ahead and # fetch our secret. # Install jq to parse output of secrets manager (if not included in ami) sudo yum install -y jq # Retrieve the example secret from Secrets Manager. EXAMPLE_SECRET_KEY=$( aws secretsmanager get-secret-value \ --region <REGION_OF_EXAMPLE_SECRET> \ --secret-id example-secret \ | jq '.SecretString | fromjson | .["example-secret-key"]' \ ) # Do stuff with $EXAMPLE_SECRET_KEY to provision the instance before the # user has ever logged in. The user will only gain access to the secret # if this script persists it to disk.

scripts d'initialisation système Windows

Maintenant que vous avez joint leExampleStudioComponentInitRoleau composant studio, les informations d'identification correspondant à ce rôle seront automatiquement disponibles à partir des scripts d'initialisation de votre système. Vous pouvez accéder à ces informations d'identification via leAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, etAWS_SESSION_TOKENVariables d'environnement. Ceci signifie que vous pouvez utiliser leAWS CLIou un SDK sans aucune gestion manuelle des informations d'identification. Si votre composant studio nécessite une clé API pour fournir à une machine les fonctionnalités qu'il fournit, utilisez le script suivant pour accéder à cette clé.

# The $Env:AWS_ACCESS_KEY_ID, $Env:AWS_SECRET_ACCESS_KEY, and $Env:AWS_SESSION_TOKEN # environment variables now contain credentials corresponding to # ExampleStudioComponentInitRole, so we can go ahead and # fetch our secret. # Retrieve the example secret from Secrets Manager. $exampleSecretKey = (Get-SECSecretValue -Region us-east-1 -SecretId example-secret).SecretString ` | ConvertFrom-Json ` | select -exp "example-secret-key" ` # Do stuff with $exampleSecretKey to provision the instance before the # user has ever logged in. The user will only gain access to the secret # if this script persists it to disk.

Utiliser un rôle d'exécution de composant studio

Cet exemple montre comment interagir avec Amazon S3 à partir du script d'initialisation utilisateur. Cela se produit lorsque vous êtes connecté à l'instance à l'aide durôle d'exécution du composant studio. Le rôle d'exécution est destiné à permettre aux utilisateurs du studio d'accéder aux outils configurés par les composants du studio. Les informations d'identification pour le rôle d'exécution sont mises à disposition sur les postes de travail par un composant studio spécifique auAWSProfil. La variable d'environnement fournit le profil au système et aux scripts d'initialisation de l'utilisateur.

Pour utiliser ce script d'initialisation, créez d'abord un environnement d'exécution IAM en suivant lesCréation d'un rôle pour unService AWS(console)Tutoriel dans leIAM User Guide. Ce rôle pourra accéder à Amazon S3.

  • Choisissez Nimble Studio en tant queEntité de confiance.

  • Sur leChoisir une entité de confiancePage, sélectionnezPolitique de confiance personnalisée. Entrez ensuite la politique suivante.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "identity.nimble.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }
  • Choisissez leAmazon S3ReadOnlyAccess AWSStratégie gérée.

  • Pour le Nom du rôle, saisissez ExampleStudioComponentRuntimeRole.

Choisissez ce rôle lors de la création d'un composant de studio. Lorsque vous ajoutez Nimble Studio en tant qu'entité de confiance, ce rôle s'affiche dans la liste déroulante de la section des rôles IAM duCréer un composant Studiopage.

scripts d'initialisation utilisateur Linux

L'objectif principal du rôle d'exécution est d'activer les outils configurés par les composants du studio pour obtenirAWSaccès dont ils ont besoin. Cependant, il est possible d'utiliser directement les informations d'identification. Ceci est utile lors du développement d'un composant studio ou pourAWSbesoins d'accès sans gestion manuelle des informations d'identification.

Dans le script,AWS_PROFILune variable d'environnement contient le nom d'uneAWSprofil qui a été configuré dans le fichier d'informations d'identification partagé. Vous pouvez soit configurer les outils avec le nom de profil qu'ils doivent utiliser, soit interagir directement avecAWS CLI. Dans laAWS_PROFILUne variable d'environnement indique àAWS CLIquel profil utiliser.

# The AWS_PROFILE environment variable now contains # the name of an AWS profile that has been configured in the shared # credentials file. From here, we can either configure our tools # which the profile name they should use, or we can directly interact # with the AWS CLI (since AWS_PROFILE environment variable tells # the AWS CLI which profile to use). # Optionally configure the default region for the profile. If you # do this, then you don't need to specify the region on a per-command # basis using the `--region` option as is done in the rest of this # example. # # aws configure --profile $AWS_PROFILE set region us-west-2 # # Example of configuring a tool. echo $AWS_PROFILE > $HOME/my-tools-config.txt # Example of using the AWS CLI directly. Write a list of s3 buckets # to a text file in the user's home directory. aws s3 ls --region us-west-2 > $HOME/buckets.txt # Example of configuring your shell (bash in this case) to set the # AWS_PROFILE environment variable on start. # Take caution when doing this. If you do this in multiple studio # components that are added to the same launch profile, then only # one will end up taking affect. if ! grep "export AWS_PROFILE" $HOME/.bashrc >> /dev/null 2>&1 ; then echo "export AWS_PROFILE=$AWS_PROFILE" >> $HOME/.bashrc fi

Pour utiliser ces informations d'identification de rôle d'exécution sur une machine Linux, suivez ces instructions.

Pour utiliser les informations d'identification du rôle d'exécution sur une machine Linux

  1. Ouvrez un terminal .

  2. Exécutez la commande suivante pour répertorier les compartiments Amazon S3 disponibles dans us-west-2 :aws s3 ls --region us-west-2

    1. Cette commande fonctionne sans spécifier explicitement--profileoption car le script d'initialisation de l'utilisateur a configuré le shell pour l'exportation$AWS_PROFILEsvariable d'environnement avec la valeur du nom du rôle du composant studio.

scripts d'initialisation utilisateur Windows

L'objectif principal du rôle d'exécution est d'activer les outils configurés par les composants du studio pour obtenirAWSaccès dont ils ont besoin. Cependant, il est possible d'utiliser directement les informations d'identification. Ceci est utile lors du développement d'un composant studio ou pourAWSbesoins d'accès sans gestion manuelle des informations d'identification.

Dans le script,$env:AWS_Profilune variable d'environnement contient le nom d'uneAWSprofil qui a été configuré dans le fichier d'informations d'identification partagé. Vous pouvez soit configurer les outils avec le nom de profil qu'ils doivent utiliser, soit interagir directement avecAWScommandes PowerShell.AWS Tools for PowerShellest déjà configuré pour utiliser ce profil pendant toute la durée de ce script.

# The $Env:AWS_PROFILE environment variable now contains # the name of an AWS profile that has been configured in the shared # credentials file. From here, we can either configure our tools # which the profile name they should use, or we can directly interact # with the AWS Powershell commandlets as the AWS Tools for Powershell # has already been configured to use this profile for the duration of # this script. # Optionally configure the default region for the profile. If you # do this, then you don't need to specify the region on a per-command # basis using the `-Region` option as is done in the rest of this # example. There is no AWS Tools for Powershell equivalent # of this command, so you need to ensure that you have installed # the AWS CLI on your AMI for this to work. # # aws configure --profile $Env:AWS_PROFILE set region us-west-2 # # Example of configuring a tool. $Env:AWS_PROFILE | Out-File "$Env:USERPROFILE\my-tools-config.txt" # Example of using the AWS CLI directly. Write a list of s3 buckets # to a text file in the user's home directory. Get-S3Bucket -Region us-west-2 | Out-File "$Env:USERPROFILE\buckets.txt" # Example of configuring your powershell use the AWS profile on start. # Take caution when doing this. If you do this in # multiple studio components that are added to the same launch profile, # then only one will end up taking affect. This only # configures powershell (and not command prompt). if (!(Test-Path $profile)) { New-Item -Path $profile -ItemType file -Force } if (!(Select-String -Path $profile -Pattern "^\s*Set-AWSCredential")) { echo "Set-AWSCredential -ProfileName $Env:AWS_PROFILE" ` | Add-Content -Path "$profile" }

L'objectif principal du rôle d'exécution est de permettre aux outils configurés par les composants du studio d'obtenirAWSaccès dont ils ont besoin. Cependant, il est possible d'utiliser directement les informations d'identification. Ceci est utile lors du développement d'un composant studio ou pour des applications ad hocAWSbesoins d'accès sans gestion manuelle des informations d'identification. Pour utiliser ces informations d'identification de rôle d'exécution sur une machine Windows, suivez ces instructions.

Pour utiliser les informations d'identification du rôle d'exécution sur une machine Windows

  1. Ouvrir PowerShell.

    Note

    Windows met un certain temps à s'initialiser après le lancement. Si, au début, vous ne vous trouvez pas dans le répertoire utilisateur attendu lorsque vous ouvrez un Powershell, fermez le Powershell, attendez quelques minutes et réessayez.

  2. Exécutez la commande suivante pour répertorier les compartiments Amazon S3 disponibles dans us-west-2 :Get-S3Bucket -Region us-west-2

    1. Cette commande fonctionne sans spécifier explicitement-ProfileNameoption car le script d'initialisation de l'utilisateur a configuré le shell pour l'exportation$AWS_PROFILEsvariable d'environnement avec la valeur du nom du rôle du composant studio.

Vous savez maintenant comment créer une configuration personnalisée et l'associer à un profil de lancement. Vous avez également vu plusieurs exemples de ce que les configurations personnalisées peuvent faire. Pour voir un autre exemple de cas dans lesquels vous pouvez utiliser une configuration personnalisée, consultez leFournir un accès superutilisateur aux utilisateurs de LinuxTutoriel.