Gérer les connexions dans Azure Automation

Une ressource de connexion Azure Automation contient les informations indiquées ci-dessous. Ces informations sont requises pour la connexion à un service ou à une application externes à partir d’un runbook ou d’une configuration DSC.

  • Informations nécessaires à l’authentification, telles que le nom d’utilisateur et le mot de passe
  • Informations de connexion, telles que l’URL ou le port

La ressource de connexion conserve toutes les propriétés permettant de se connecter à une application particulière, ce qui rend inutile la création de plusieurs variables. Vous pouvez modifier les valeurs pour une connexion à un seul endroit, et vous pouvez transmettre le nom d’une connexion à un runbook ou à une configuration DSC dans un seul paramètre. Le runbook ou la configuration accèdent aux propriétés d’une connexion en utilisant la cmdlet Get-AutomationConnection interne.

Lorsque vous créez une connexion, vous devez spécifier un type de connexion. Le type de connexion est un modèle qui définit un ensemble de propriétés. Vous pouvez ajouter un type de connexion à Azure Automation en utilisant un module d’intégration avec un fichier de métadonnées. Vous pouvez aussi créer un type de connexion à l’aide de l’API Azure Automation si le module d’intégration comprend un type de connexion et est importé dans votre compte Automation.

Remarque

Les ressources sécurisées dans Azure Automation incluent les informations d'identification, les certificats, les connexions et les variables chiffrées. Ces ressources sont chiffrées et stockées dans Azure Automation en utilisant une clé unique générée pour chaque compte Automation. Azure Automation stocke la clé dans le coffre de clés géré par le système. Avant de stocker une ressource sécurisée, Automation charge la clé à partir de Key Vault, puis l’utilise pour chiffrer la ressource.

Types de connexion

Azure Automation met à disposition les types de connexion intégrés suivants :

  • Azure : représente une connexion utilisée pour gérer des ressources classiques.
  • AzureServicePrincipal : représente une connexion utilisée pour gérer les ressources dans Azure à l’aide d’un principal de service.
  • AzureClassicCertificate : ce type de connexion est utilisé pour gérer les ressources dans Azure qui ont été créées à l’aide du modèle de déploiement classique qui ne prend pas en charge l’authentification du principal de service.

Cmdlets PowerShell pour accéder aux connexions

Les cmdlets du tableau suivant créent et gèrent les connexions Automation avec PowerShell. Elles sont fournies avec les Modules Az.

Applet de commande Description
Get-AzAutomationConnection Récupère des informations sur une connexion.
New-AzAutomationConnection Crée une connexion.
Remove-AzAutomationConnection Supprime une connexion existante.
Set-AzAutomationConnectionFieldValue Définit la valeur d’un champ particulier d’une connexion existante.

Cmdlets internes pour accéder aux connexions

La cmdlet interne dans le tableau suivant est utilisée pour accéder aux connexions dans vos runbooks et configurations DSC. Cette cmdlet est fournie avec le module global Orchestrator.AssetManagement.Cmdlets. Pour plus d’informations, consultez Applets de commande interne.

Cmdlet interne Description
Get-AutomationConnection Récupère les valeurs des différents champs de la connexion et les renvoie sous forme de table de hachage. Vous pouvez utiliser cette table de hachage avec les commandes appropriées dans le runbook ou la configuration DSC.

Remarque

Évitez d'utiliser des variables dans le paramètre Name de Get-AutomationConnection. L’utilisation de variables dans ce cas peut compliquer la détection des dépendances entre les runbooks ou les configurations DSC et les ressources de connexion au moment de la conception.

Fonctions Python permettant d’accéder aux connexions

La fonction présentée dans le tableau suivant est utilisée pour accéder aux connexions dans un runbook Python 2 et 3. Les runbooks Python 3 sont actuellement en préversion.

Fonction Description
automationassets.get_automation_connection Récupère une connexion. Renvoie un dictionnaire avec les propriétés de la connexion.

Remarque

Vous devez importer le module automationassets en haut de votre runbook Python pour accéder aux fonctions des ressources.

Créer une connexion

Créer une connexion avec le portail Azure

Pour créer une connexion dans le portail Azure :

  1. Dans votre compte Automation, sous Ressources partagées, cliquez sur Connexions.
  2. Dans la page Connexions, cliquez sur + Ajouter une connexion.
  3. Dans le volet Nouvelle connexion, dans le champ Type, sélectionnez le type de connexion à créer. Vos choix sont Azure, AzureServicePrincipal et AzureClassicCertificate.
  4. Le formulaire présente les propriétés du type de connexion que vous avez choisi. Remplissez le formulaire, puis cliquez sur Créer pour enregistrer la nouvelle connexion.

Créer une connexion avec Windows PowerShell

Pour créer une connexion avec Windows PowerShell, utilisez la cmdlet New-AzAutomationConnection. Cette cmdlet comporte un paramètre ConnectionFieldValues qui attend une table de hachage définissant des valeurs pour chacune des propriétés définies par le type de connexion.

Vous pouvez utiliser les exemples de commandes suivants pour créer une connexion qui peut être utilisée pour l’authentification à l’aide du principal de service Azure.

$ConnectionAssetName = "AzureConnection"
$ConnectionFieldValues = @{"ApplicationId" = $Application.ApplicationId; "TenantId" = $TenantID.TenantId; "CertificateThumbprint" = $Cert.Thumbprint; "SubscriptionId" = $SubscriptionId}
New-AzAutomationConnection -ResourceGroupName $ResourceGroup -AutomationAccountName $AutomationAccountName -Name $ConnectionAssetName -ConnectionTypeName AzureServicePrincipal -ConnectionFieldValues $ConnectionFieldValues

Si vous tentez de créer une ressource de connexion pour vous connecter à un service ou à une application avec une autre méthode d’authentification, l’opération échoue, car le type de connexion n’est pas encore défini dans votre compte Automation. Pour plus d’informations sur la création de votre propre type de connexion pour un module personnalisé, consultez Ajouter un type de connexion.

Ajouter un type de connexion

Si votre runbook ou configuration DSC se connectent à un service externe, vous devez définir un type de connexion dans un module personnalisé appelé module d’intégration. Ce module comprend un fichier de métadonnées qui spécifie les propriétés du type de connexion et est nommé <ModuleName>-Automation.json, situé dans le dossier de module de votre fichier .zip compressé. Ce fichier contient les champs d’une connexion qui sont requis pour se connecter au système ou au service que le module représente. Ce fichier vous permet de définir les noms de champs, les types de données, l’état du chiffrement et un état facultatif pour le type de connexion. Plusieurs types de connexion ne sont pas pris en charge dans ce fichier.

L’exemple suivant est un modèle au format de fichier .json, qui définit les propriétés de nom d’utilisateur et de mot de passe pour un type de connexion personnalisé nommé MyModuleConnection :

{
   "ConnectionFields": [
   {
      "IsEncrypted":  false,
      "IsOptional":  true,
      "Name":  "Username",
      "TypeName":  "System.String"
   },
   {
      "IsEncrypted":  true,
      "IsOptional":  false,
      "Name":  "Password",
      "TypeName":  "System.String"
   }
   ],
   "ConnectionTypeName":  "MyModuleConnection",
   "IntegrationModuleName":  "MyModule"
}

Obtenir une connexion dans un runbook ou une configuration DSC

Récupérer une connexion dans un runbook ou une configuration DSC avec la cmdlet Get-AutomationConnection interne. Cette cmdlet est préférable à la cmdlet Get-AzAutomationConnection, car elle récupère les valeurs de connexion au lieu d’informations sur la connexion.

L’exemple suivant montre comment utiliser une connexion pour s’authentifier auprès de ressources Azure Resource Manager dans votre runbook. Une ressource de connexion est utilisée et fait référence au principal de service basé sur un certificat.

$Conn = Get-AutomationConnection -Name AzureConnection
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint

Exemples de runbooks graphiques

Vous pouvez ajouter une activité pour la cmdlet Get-AutomationConnection interne à un runbook graphique. Cliquez avec le bouton droit sur la connexion dans le volet Bibliothèque de l’éditeur graphique, puis sélectionnez Ajouter au canevas.

add to canvas

L’image suivante montre un exemple d’utilisation d’un objet de connexion dans un runbook graphique.

get connections

Étapes suivantes