Verwalten von Anmeldeinformationen in Azure Automation

Ein Automation-Anmeldeinformationsobjekt enthält ein Objekt, das Sicherheitsanmeldeinformationen wie beispielsweise einen Benutzernamen und ein Kennwort umfasst. Runbooks und DSC-Konfigurationen verwenden Cmdlets, die ein PSCredential--Objekt für die Authentifizierung akzeptieren. Alternativ können sie den Benutzernamen und das Kennwort des PSCredential-Objekts extrahieren, um diese einer Anwendung oder einem Dienst bereitzustellen, die eine Authentifizierung erfordern.

Hinweis

Zu den sicheren Objekten in Azure Automation gehören Anmeldeinformationen, Zertifikate, Verbindungen und verschlüsselte Variablen. Diese Objekte werden mithilfe eines eindeutigen Schlüssels verschlüsselt und in Azure Automation gespeichert, der für jedes Automation-Konto generiert wird. Azure Automation speichert den Schlüssel im vom System verwalteten Schlüsseltresor. Vor dem Speichern einer sicheren Ressource lädt Azure Automation den Schlüssel aus dem Schlüsseltresor und verwendet ihn dann zum Verschlüsseln der Ressource.

Hinweis

Informationen über Anzeigen oder Löschen von personenbezogenen Daten finden Sie unter Anträge betroffener Personen für Azure im Rahmen der DSGVO. Weitere Informationen zur DSGVO finden Sie im Abschnitt zur DSGVO im Microsoft Trust Center und im Abschnitt zur DSGVO im Service Trust Portal.

PowerShell-Cmdlets, die für den Zugriff auf Anmeldeinformationen verwendet werden

Über die Cmdlets in der folgenden Tabelle können Sie Anmeldeinformation für Automation mit PowerShell erstellen und verwalten. Diese sind im Lieferumfang der Az-Module enthalten.

Cmdlet BESCHREIBUNG
Get-AzAutomationCredential Ruft ein CredentialInfo-Objekt ab, das Metadaten über die Anmeldeinformationen enthält. Das Cmdlet ruft nicht das PSCredential-Objekt selbst ab.
New-AzAutomationCredential Erstellt ein neues Anmeldeinformationsobjekt.
Remove-AzAutomationCredential Entfernt ein Anmeldeinformationsobjekt.
Set-AzAutomationCredential Legt die Eigenschaften für ein vorhandenes Anmeldeinformationsobjekt fest.

Andere Cmdlets, die für den Zugriff auf Anmeldeinformationen verwendet werden

Die Cmdlets in der folgenden Tabelle werden für den Zugriff auf Anmeldeinformationen in Runbooks und DSC-Konfigurationen verwendet.

Cmdlet BESCHREIBUNG
Get-AutomationPSCredential Ruft ein PSCredential-Objekt zur Verwendung in einem Runbook oder einer DSC-Konfiguration ab. In den meisten Fällen sollten Sie dieses interne Cmdlet anstelle des Get-AzAutomationCredential-Cmdlets verwenden, da dieses nur Anmeldeinformationen abruft. Es ist in der Regel nicht hilfreich, diese Informationen an ein anderes Cmdlet zu übergeben.
Get-Credential Ruft Anmeldeinformationen mit einer Abfrage von Benutzername und Kennwort ab. Dieses Cmdlet ist Teil des Standardmoduls von Microsoft.PowerShell.Security. Weitere Informationen finden Sie unter Standardmodule.
New-AzureAutomationCredential Erstellt ein Anmeldeinformationsobjekt. Dieses Cmdlet ist Teil des Azure-Standardmoduls. Weitere Informationen finden Sie unter Standardmodule.

Zum Abrufen von PSCredential-Objekten in Ihrem Code müssen Sie das Orchestrator.AssetManagement.Cmdlets-Modul importieren. Weitere Informationen finden Sie unter Verwalten von Modulen in Azure Automation.

Import-Module Orchestrator.AssetManagement.Cmdlets -ErrorAction SilentlyContinue

Hinweis

Vermeiden Sie die Verwendung von Variablen im Parameter Name von Get-AutomationPSCredential. Durch deren Verwendung kann die Ermittlung von Abhängigkeiten zwischen Runbooks oder DSC-Konfigurationen und Anmeldeinformationsobjekten zur Entwurfszeit erschwert werden.

Python-Funktionen, die auf Anmeldeinformationen zugreifen

Mit der Funktion in der folgenden Tabelle wird auf Anmeldeinformationen in einem Python 2- und Python 3-Runbook zugegriffen. Python 3-Runbooks sind derzeit als Vorschau verfügbar.

Funktion BESCHREIBUNG
automationassets.get_automation_credential Ruft Informationen zu einem Anmeldeinformationsobjekt ab.

Hinweis

Importieren Sie das Modul automationassets oben im Python-Runbook, um auf die Ressourcenfunktionen zugreifen zu können.

Erstellen von neuen Anmeldeinformationsobjekten

Sie können ein neues Anmeldeinformationsobjekt im Azure-Portal oder mit Windows PowerShell erstellen.

Erstellen eines neuen Anmeldeinformationsobjekts über das Azure-Portal

  1. Wählen Sie in Ihrem Azure Automation-Konto im linken Bereich Anmeldeinformationen unter Freigegebene Ressourcen aus.

  2. Wählen Sie auf der Seite Anmeldeinformationen den Befehl Anmeldeinformationen hinzufügen aus.

  3. Geben Sie im Bereich „Neue Anmeldeinformationen“ einen geeigneten Anmeldeinformationsnamen ein, der Ihre Benennungsstandards einhält.

  4. Geben Sie Ihre Zugriffs-ID in das Feld Benutzername ein.

  5. Geben Sie für beide Kennwortfelder Ihren geheimen Zugriffsschlüssel ein.

    Erstellen neuer Anmeldeinformationen

  6. Wenn das Kontrollkästchen für mehrstufige Authentifizierung aktiviert ist, deaktivieren Sie es.

  7. Klicken Sie auf Erstellen, um das neue Anmeldeinformationsobjekt zu speichern.

Hinweis

Azure Automation unterstützt keine Benutzerkonten, die mehrstufige Authentifizierung verwenden.

Erstellen eines neuen Anmeldeinformationsobjekts mithilfe von Windows PowerShell

Das folgenden Beispiel zeigt, wie Sie ein neues Automation-Anmeldeinformationsobjekt erstellen. Es wird zunächst ein PSCredential-Objekt mit Name und Kennwort erstellt, anschließend werden diese Informationen zum Erstellen des Anmeldeinformationsobjekts verwendet. Stattdessen können Sie das Cmdlet Get-Credential verwenden, um den Benutzer zur Eingabe eines Namens und Kennworts aufzufordern.

$user = "MyDomain\MyUser"
$pw = ConvertTo-SecureString "PassWord!" -AsPlainText -Force
$cred = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $user, $pw
New-AzureAutomationCredential -AutomationAccountName "MyAutomationAccount" -Name "MyCredential" -Value $cred

Abrufen von Anmeldeinformationsobjekten

Ein Runbook oder eine DSC-Konfiguration ruft Anmeldeinformationsobjekte mit dem internen Get-AutomationPSCredential-Cmdlet ab. Dieses Cmdlet ruft ein PSCredential-Objekt ab, das Sie mit einem Cmdlet verwenden können, für das Anmeldeinformationen benötigt werden. Sie können auch die Eigenschaften des Anmeldeinformationsobjekts abrufen, um diese einzeln zu verwenden. Das Objekt verfügt über Eigenschaften für den Benutzernamen und das sichere Kennwort.

Hinweis

Das Get-AzAutomationCredential-Cmdlet ruft kein PSCredential-Objekt ab, das für die Authentifizierung verwendet werden kann. Es bietet lediglich Informationen zu den Anmeldeinformationen. Wenn Sie ein Anmeldeinformationsobjekt in einem Runbook verwenden müssen, müssen Sie dieses mithilfe von Get-AutomationPSCredential als PSCredential-Objekt abrufen.

Alternativ können Sie die Methode GetNetworkCredential verwenden, um ein NetworkCredential-Objekt abzurufen, das eine unsichere Version des Kennworts darstellt.

Beispiel für ein Textrunbook

Das folgende Beispiel zeigt, wie Sie ein PowerShell-Anmeldeinformationsobjekt in einem Runbook verwenden. Es ruft das Anmeldeinformationsobjekt ab und weist seinen Benutzernamen und das Kennwort Variablen zu.

$myCredential = Get-AutomationPSCredential -Name 'MyCredential'
$userName = $myCredential.UserName
$securePassword = $myCredential.Password
$password = $myCredential.GetNetworkCredential().Password

Sie können Anmeldeinformationen auch zum Authentifizieren mit Connect-AzAccount in Azure verwenden, nachdem Sie eine Verbindung zu einer verwalteten Identität hergestellt haben. In diesem Beispiel wird eine systemseitig zugewiesene verwaltete Identität verwendet.

# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process

# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context

# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext

# Get credential
$myCred = Get-AutomationPSCredential -Name "MyCredential"
$userName = $myCred.UserName
$securePassword = $myCred.Password
$password = $myCred.GetNetworkCredential().Password

$myPsCred = New-Object System.Management.Automation.PSCredential ($userName,$securePassword)

# Connect to Azure with credential
$AzureContext = (Connect-AzAccount -Credential $myPsCred -TenantId $AzureContext.Subscription.TenantId).context

# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
    -TenantId $AzureContext.Subscription.TenantId `
    -DefaultProfile $AzureContext

Beispiel für ein grafisches Runbook

Sie können einem grafischen Runbook eine Aktivität für das interne Get-AutomationPSCredential-Cmdlet hinzufügen, indem Sie im Bibliotheksbereich des grafischen Editors erst mit der rechten Maustaste auf die Anmeldeinformationen und anschließend mit der linken auf Zur Canvas hinzufügen klicken.

Cmdlet „Anmeldeinformationen“ zur Canvas hinzufügen

Die folgende Abbildung zeigt ein Beispiel für die Verwendung eines Anmeldeinformationsobjekts in einem grafischen Runbook. In diesem Fall stellt das Anmeldeinformationsobjekt Authentifizierungsinformationen für ein Runbook in Azure-Ressourcen bereit, wie unter Verwenden von Azure AD in Azure Automation für die Authentifizierung bei Azure beschrieben. Die erste Aktivität ruft die Anmeldeinformationen ab, die Zugriff auf das Azure-Abonnement haben. Die Kontoverbindungsaktivität verwendet diese Anmeldeinformationen anschließend, um eine Authentifizierung für alle nachfolgenden Aktivitäten bereitzustellen. Es wird eine Pipelineverknüpfung verwendet, da Get-AutomationPSCredential ein einzelnes Objekt erwartet.

Beispiel für den Anmeldeinformationsworkflow mit Pipelinelink

Verwenden von Anmeldeinformationen in einer DSC-Konfiguration

DSC-Konfigurationen in Azure Automation können mithilfe von Get-AutomationPSCredential mit Anmeldeinformationsobjekten arbeiten, können aber gleichzeitig auch Anmeldeinformationsobjekte über Parameter übergeben. Weitere Informationen finden Sie unter Kompilieren von Konfigurationen in Azure Automation DSC.

Nächste Schritte