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

  1. À partir de votre compte Automation, dans le volet gauche, sélectionnez Certificats sous Ressources partagées.
  2. Sur la page Certificats, sélectionnez Ajouter un certificat.
  3. Dans le champ Nom, tapez un nom pour le certificat.
  4. 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.
  5. 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.

Screenshot of adding a certificate to the canvas

L’image suivante montre un exemple d’utilisation d’un certificat dans un Runbook graphique.

Screenshot of an example of graphical authoring

Étapes suivantes