Azure Powershell - 自动登录Azure-AzureRmAccount AD登录 - 用于Azure功能

Pet*_*ock 5 authentication azure azure-powershell azure-functions

我有这个Azure Powershell脚本,它成功地将SQL Azure数据库备份到Azure Blob.

在目前的形式,它要求我通过AD登录.

我现在需要实现此脚本以特定间隔通过Azure功能执行.

脚本的第一个片段:

$subscriptionId = "YOUR AZURE SUBSCRIPTION ID"

Login-AzureRmAccount
Set-AzureRmContext -SubscriptionId $subscriptionId
Run Code Online (Sandbox Code Playgroud)

因此,我不需要使用Login-AzureRmAccount,而是将其替换为不需要人工输入的方法.

我找到了这个链接:

https://cmatskas.com/automate-login-for-azure-powershell-scripts/

  • 简而言之,作者:
    1. 创建Azure AD应用程序(使用自己的密码)
    2. 创建服务主体
    3. 为服务主体分配权限

这是一次性手动创作 - 这是完美的.

然后,作者登录到这个新创建的应用程序

$psCred = New-Object System.Management.Automation.PSCredential($azureAccountName, $azurePassword)


Add-AzureRmAccount -Credential $psCred -TenantId e801a3ad-3690-4aa0-a142-1d77cb360b07 -ServicePrincipal
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 这是我应该做的,以便能够自动化我的应用程序并防止人类登录?

  2. 在步骤1中创建的Azure AD应用程序 - 我可以使用此应用程序作为我的Azure功能的起点吗?

4c7*_*b41 5

  1. 是的,您可以使用该路由,或使用证书身份验证,或使用Azure AD用户,它可以使用用户\密码登录,但被认为不如服务主体安全.
  2. 是的,您可以将一个服务主体用于您想要的任意数量的Azure功能.