Skip to content

Instantly share code, notes, and snippets.

@paulbort
Forked from bobalob/New-TerraformCredential.PS1
Last active February 14, 2018 14:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paulbort/655130cb10b7b510cd518509268b1b08 to your computer and use it in GitHub Desktop.
Save paulbort/655130cb10b7b510cd518509268b1b08 to your computer and use it in GitHub Desktop.
#Creates Terraform App Account
Param (
$ApplicationName="Terraform",
$AppURL="http://terraform.io",
[Parameter(Mandatory=$true)]$AppPassword,
$AppRoleAssigned="Owner"
)
$SecurePassword=ConvertTo-SecureString $AppPassword -AsPlainText -Force
$Account = Login-AzureRmAccount
$Subs = Get-AzureRmSubscription
Foreach ($Sub in $Subs) {
$Sub
$Answer = Read-Host "Use this subscription? [Y/N]"
if ($Answer -eq "y") {
$SubscriptionId = $Sub.SubscriptionId
$Selected = Select-AzureRmSubscription -SubscriptionId $Sub.SubscriptionId
Break
}
}
if (!($SubscriptionId)) {
Write-Warning "No Subscription was selected"
Exit 1
}
$App = New-AzureRmADApplication -DisplayName $ApplicationName `
-HomePage $AppURL -IdentifierUris $AppURL -Password $SecurePassword
$SPN = New-AzureRmADServicePrincipal -ApplicationId $App.ApplicationId
Start-Sleep 15
$Role = New-AzureRmRoleAssignment -ServicePrincipalName $AppURL `
-RoleDefinitionName $AppRoleAssigned
Write-Host "New App auth created, run the following code to export the environment variables (You should copy this into a .ps1 for later use.)`n"
Write-Host "`$ENV:ARM_SUBSCRIPTION_ID = `"$($SubscriptionId)`""
Write-Host "`$ENV:ARM_CLIENT_ID = `"$($App.ApplicationId.Guid)`""
Write-Host "`$ENV:ARM_CLIENT_SECRET = `"$($AppPassword)`""
Write-Host "`$ENV:ARM_TENANT_ID = `"$($Sub.TenantId)`""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment