2016-06-15 6 views
0

Ich versuche, ein PowerShell-Skript auf einem Continuous Integration-Buildserver auszuführen, um die automatische Bereitstellung mithilfe von Azure Powershell durchzuführen.Anmeldung bei Azure Powershell ohne interaktive Eingabeaufforderung nicht möglich

Ich kann nicht umgehen mit einer Eingabeaufforderung, die nach Anmeldeinformationen fragt, wenn Sie versuchen, das Skript auszuführen.

Dies ist, wie ich die Anmeldung:

$password = ConvertTo-SecureString "mypassword" -AsPlainText -Force 
$cred = New-Object PSCredential("[email protected]", $password) 
Add-AzureRmAccount -Credential $cred 

Und das ist einer der Befehle, die interaktiv zur Eingabe eines Passworts aufgefordert werden, auch nachdem ich bereits angemeldet haben:

Get-AzureKeyVaultSecret -VaultName my-vault-name -Name MySecret 

Wie kann ich die Eingabeaufforderung vermeiden und Azure Powershell für die Bereitstellung auf einem Build-Server verwenden?

Antwort

3

Sie können einen Dienstprinzipal für die Authentifizierung mit Azure PowerShell verwenden, ohne dass eine interaktive Eingabeaufforderung erforderlich ist. Die Erstellung eines Service-Principals ist dokumentiert here.

+0

Ich habe versucht, einen Service-Principal zu verwenden, und ich habe ihm Zugriff auf die ResourceGroup gegeben, die KeyVault besitzt. Beim Anmelden mit dem Service-Principal kann jedoch nicht auf das Schlüsselvault zugegriffen werden. Ich erhalte diesen Fehler: 'Get-AzureKeyVaultSecret: Operation" get "ist nicht erlaubt" –

+0

Haben Sie den Service-Principal zur Key Vault Contributors-Rolle hinzugefügt? –

+0

Sie müssen den Service-Principal im Schlüsseltresor über Powershell autorisieren: https://azure.microsoft.com/en-us/documentation/articles/key-vault-get-started/#authorize – BenV

Verwandte Themen