Gérer les certificats dans Azure Automation
Azure Automation stocke les certificats de manière sécurisée pour l’accès par les runbooks et les configurations DSC, en utilisant l’applet de commande Get-AzAutomationCertificate pour les ressources Azure Resource Manager. Le stockage sécurisé de certificats vous permet de créer des runbooks et des configurations DSC qui utilisent des certificats pour l’authentification, ou les ajoute aux ressources Azure ou tierces.
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 Automation en utilisant une clé unique générée pour chaque compte Automation. Automation stocke la clé dans le service Key Vault managé 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.
Applets de commande PowerShell pour accéder aux certificats
Les applets de commande du tableau suivant créent et gèrent les certificats Automation avec Windows PowerShell. Elles sont fournies avec les Modules Az.
Applet de commande | Description |
---|---|
Get-AzAutomationCertificate | Récupère des informations sur un certificat à utiliser dans un Runbook ou dans une configuration DSC. Vous pouvez seulement récupérer le certificat lui-même à l’aide de l’applet de commande Get-AutomationCertificate interne. |
New-AzAutomationCertificate | Crée un nouveau certificat dans Automation. |
Remove-AzAutomationCertificate | Supprime un certificat dans Automation. |
Set-AzAutomationCertificate | Définit les propriétés d’un certificat existant, y compris le chargement du fichier de certificat et la définition du mot de passe d’un fichier .pfx. |
L’applet de commande Add-AzureCertificate peut aussi être utilisée pour charger un certificat de service destiné au service cloud spécifié.
Applets de commande internes pour accéder aux certificats
Dans le tableau suivant, l’applet de commande interne est utilisée pour accéder aux certificats dans vos runbooks. Cette cmdlet est fournie avec le module global Orchestrator.AssetManagement.Cmdlets
. Pour plus d’informations, consultez Applets de commande interne.
Cmdlet interne | Description |
---|---|
Get-AutomationCertificate |
Obtient un certificat à utiliser dans un Runbook ou dans une configuration DSC. Retourne un objet System.Security.Cryptography.X509Certificates.X509Certificate2. |
Remarque
Vous devez éviter d’utiliser des variables dans le paramètre Name
de Get-AutomationCertificate
dans un runbook ou une configuration DSC. De telles variables peuvent compliquer la détection des dépendances entre les runbooks ou les configurations DSC et les variables Automation au moment de la conception.
Fonctions Python pour accéder aux certificats
Utilisez la fonction figurant dans le tableau suivant pour accéder aux certificats dans un runbook Python 2 et 3. Les runbooks Python 3 sont actuellement en préversion.
Fonction | Description |
---|---|
automationassets.get_automation_certificate |
Récupère des informations sur les ressources d’un certificat. |
Remarque
Vous devez importer le module automationassets
au début de votre runbook Python pour accéder aux fonctions des ressources.
Créer un certificat
Lorsque vous créez un certificat, vous chargez un fichier .cer ou .pfx dans Automation. Si vous marquez le certificat comme exportable, vous pouvez également le transférer du magasin de certificats Automation. S’il n’est pas exportable, il ne peut servir que pour la signature dans le runbook ou la configuration DSC. Automation demande que le certificat provienne du Fournisseur de services de chiffrement Microsoft Enhanced RSA et AES.
Créer un certificat avec le portail Azure
- À partir de votre compte Automation, dans le volet gauche, sélectionnez Certificats sous Ressources partagées.
- Sur la page Certificats, sélectionnez Ajouter un certificat.
- Dans le champ Nom, tapez un nom pour le certificat.
- Pour rechercher un fichier .cer ou .pfx, sous Charger un fichier de certificat, choisissez Sélectionner un fichier. Si vous sélectionnez un fichier .pfx, spécifiez un mot de passe et indiquez s’il est exportable. Si vous utilisez le portail Azure Automation pour charger des certificats, cela peut échouer pour les comptes partenaires (CSP). Nous vous recommandons d’utiliser des applets de commande PowerShell comme solution de contournement pour résoudre ce problème.
- Sélectionnez Créer pour enregistrer la nouvelle ressource de certificat.
Créer un certificat avec PowerShell
L’exemple suivant démontre la création d’un certificat Automation et sont marquage comme exportable. Cet exemple importe un fichier .pfx existant.
$certificateName = 'MyCertificate'
$PfxCertPath = '.\MyCert.pfx'
$CertificatePassword = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force
$ResourceGroup = "ResourceGroup01"
New-AzAutomationCertificate -AutomationAccountName "MyAutomationAccount" -Name $certificateName -Path $PfxCertPath -Password $CertificatePassword -Exportable -ResourceGroupName $ResourceGroup
Créer un certificat avec un modèle Resource Manager
L’exemple suivant montre comment déployer un certificat sur votre compte Automation en utilisant un modèle Resource Manager via PowerShell :
$AutomationAccountName = "<automation account name>"
$PfxCertPath = '<PFX cert path and filename>'
$CertificatePassword = '<password>'
$certificateName = '<certificate name>' #A name of your choosing
$ResourceGroupName = '<resource group name>' #The one that holds your automation account
$flags = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable `
-bor [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::PersistKeySet `
-bor [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::MachineKeySet
# Load the certificate into memory
$PfxCert = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Certificate2 -ArgumentList @($PfxCertPath, $CertificatePassword, $flags)
# Export the certificate and convert into base 64 string
$Base64Value = [System.Convert]::ToBase64String($PfxCert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12))
$Thumbprint = $PfxCert.Thumbprint
$json = @"
{
'`$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#',
'contentVersion': '1.0.0.0',
'resources': [
{
'name': '$AutomationAccountName/$certificateName',
'type': 'Microsoft.Automation/automationAccounts/certificates',
'apiVersion': '2015-10-31',
'properties': {
'base64Value': '$Base64Value',
'thumbprint': '$Thumbprint',
'isExportable': true
}
}
]
}
"@
$json | out-file .\template.json
New-AzResourceGroupDeployment -Name NewCert -ResourceGroupName $ResourceGroupName -TemplateFile .\template.json
Obtention d’un certificat
Pour récupérer un certificat, utilisez l’applet de commande interne Get-AutomationCertificate
. L’applet de commande Get-AzAutomationCertificate n’est pas utilisable, car elle retourne des informations sur la ressource de certificat, et non sur le certificat proprement dit.
Exemples de runbook textuel
L’exemple suivant montre comment ajouter un certificat à un service cloud dans un Runbook. Dans cet exemple, le mot de passe est récupéré à partir d’une variable Automation chiffrée.
$serviceName = 'MyCloudService'
$cert = Get-AutomationCertificate -Name 'MyCertificate'
$certPwd = Get-AzAutomationVariable -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name 'MyCertPassword'
Add-AzureCertificate -ServiceName $serviceName -CertToDeploy $cert
Exemple de runbook graphique
Ajoutez une activité à un runbook graphique pour l’applet de commande interne Get-AutomationCertificate
en cliquant avec le bouton droit sur le certificat dans le volet Bibliothèque et en sélectionnant Ajouter au canevas.
L’image suivante montre un exemple d’utilisation d’un certificat dans un Runbook graphique.
Étapes suivantes
- Pour en savoir plus sur les applets de commande utilisées pour accéder aux certificats, consultez Gérer les modules dans Azure Automation.
- Pour obtenir des informations générales sur les runbooks, consultez Exécution d’un runbook dans Azure Automation.
- Pour obtenir des informations détaillées sur les configurations DSC, consultez Vue d’ensemble d’Azure Automation State Configuration.