Gestire i certificati in Automazione di Azure

Automazione di Azure archivia i certificati in modo sicuro per l'accesso dai runbook e dalle configurazioni DSC, usando il cmdlet Get-AzAutomationCertificate per le risorse di Azure Resource Manager. L'archiviazione sicura dei certificati consente di creare runbook e configurazioni DSC che usano certificati per l'autenticazione oppure consente di aggiungerli a risorse di Azure o di terze parti.

Nota

Gli asset sicuri in Automazione di Azure includono credenziali, certificati, connessioni e variabili crittografate. Questi asset vengono crittografati e archiviati in Automazione usando una chiave univoca generata per ogni account di Automazione. Automazione archivia la chiave nel servizio Key Vault gestito dal sistema. Prima di archiviare un asset sicuro, Automazione carica la chiave da Key Vault e quindi la usa per crittografare l'asset.

Cmdlet di PowerShell per accedere ai certificati

I cmdlet nella tabella seguente vengono usati per creare e gestire i certificati di Automazione con PowerShell. Sono inclusi nei moduli Az.

Cmdlet Descrizione
Get-AzAutomationCertificate Recupera le informazioni su un certificato da usare in un runbook o in una configurazione DSC. È possibile recuperare solo il certificato tramite il cmdlet Get-AutomationCertificate interno.
New-AzAutomationCertificate Crea un nuovo certificato in Automazione.
Remove-AzAutomationCertificate Rimuove un certificato da Automazione.
Set-AzAutomationCertificate Imposta le proprietà per un certificato esistente, inclusi il caricamento del file del certificato e l'impostazione della password per un file con estensione pfx.

Il cmdlet Add-AzureCertificate può essere usato anche per caricare un certificato di servizio per il servizio cloud specificato.

Cmdlet interni per accedere ai certificati

Il cmdlet interno nella tabella seguente viene usato per accedere ai certificati nei runbook. Questo cmdlet include il modulo globale Orchestrator.AssetManagement.Cmdlets. Per altre informazioni, vedere Cmdlet interni.

Cmdlet interno Descrizione
Get-AutomationCertificate Ottiene un certificato da usare in un runbook o in una configurazione DSC. Restituisce un oggetto System.Security.Cryptography.X509Certificates.X509Certificate2.

Nota

È consigliabile evitare di usare le variabili nel parametro Name di Get-AutomationCertificate in un runbook o una configurazione DSC. Tali variabili possono complicare l'individuazione delle dipendenze tra runbook o configurazioni DSC e variabili di Automazione in fase di progettazione.

Funzioni Python per accedere ai certificati

Usare la funzione nella tabella seguente per accedere ai certificati in un runbook Python 2 e 3. I runbook Python 3 sono attualmente in anteprima.

Funzione Descrizione
automationassets.get_automation_certificate Recupera informazioni su un asset certificato.

Nota

È necessario importare il modulo automationassets all'inizio del runbook Python per accedere alle funzioni dell'asset.

Creare un nuovo certificato

Quando si crea un nuovo certificato, si carica un file con estensione cer o pfx in Automazione. Se si contrassegna il certificato come esportabile, sarà possibile trasferirlo all'esterno dell'archivio di certificati di Automazione. Se non è esportabile, sarà possibile usarlo solo per la firma all'interno del runbook o della configurazione DSC. Automazione richiede che il certificato abbia il provider Microsoft Enhanced RSA and AES Cryptographic Provider.

Creare un nuovo certificato con il portale di Azure

  1. Nell'account di Automazione, nel riquadro a sinistra selezionare Certificati in Risorsa condivisa.
  2. Nella pagina Certificati selezionare Aggiungi un certificato.
  3. Nel campo Nome digitare un nome per il certificato.
  4. Per cercare un file con estensione cer o pfx, in Carica un file di certificato scegliere Seleziona un file. Se si seleziona un file con estensione pfx, specificare una password e indicare se ne è consentita l'esportazione. Se si usa il portale di Automazione di Azure per caricare i certificati, il caricamento potrebbe non riuscire per gli account dei partner (CSP). È consigliabile usare i cmdlet di PowerShell come soluzione alternativa per risolvere questo problema.
  5. Selezionare Crea per salvare il nuovo asset di certificato.

Creare un nuovo certificato con PowerShell

L'esempio che segue mostra come creare un nuovo certificato di automazione e come contrassegnarlo come esportabile. In questo esempio verrà importato un file con estensione pfx esistente.

$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

Creare un nuovo certificato con un modello di Resource Manager

L'esempio seguente illustra come distribuire un certificato nell'account di Automazione usando un modello di Resource Manager tramite 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

Ottenere un certificato

Per recuperare un certificato, usare il cmdlet Get-AutomationCertificate interno. Non è possibile usare il cmdlet Get-AzAutomationCertificate poiché restituisce informazioni sull'asset di certificato, ma non il certificato stesso.

Esempi di runbook testuali

L'esempio seguente illustra come aggiungere un certificato a un servizio cloud in un runbook. In questo esempio la password viene recuperata da una variabile di automazione crittografata.

$serviceName = 'MyCloudService'
$cert = Get-AutomationCertificate -Name 'MyCertificate'
$certPwd = Get-AzAutomationVariable -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name 'MyCertPassword'
Add-AzureCertificate -ServiceName $serviceName -CertToDeploy $cert

Esempio di runbook grafico

Per aggiungere un'attività per il cmdlet Get-AutomationCertificate interno a un runbook grafico, fare clic con il pulsante destro del mouse sul certificato nel riquadro Libreria e selezionare Aggiungi ad area di disegno.

Screenshot of adding a certificate to the canvas

La figura seguente mostra un esempio dell'uso di un certificato in un runbook grafico.

Screenshot of an example of graphical authoring

Passaggi successivi