Azure 灯塔 - 跨租户自动化
Azure lighthouse - cross tenant automation
我正在我的 Azure 环境中准备自动化解决方案。我必须提供自动化,以便能够管理分布在不同 Azure 租户中的多个 Azure 订阅中的资源。我目前正在测试 Azure Lighthouse,它在备份和更新管理服务管理(多订阅,多租户)的情况下非常有用。在 MS 文档中 - Azure Lighthouse - cross-tenant-management-experience 有一个部分 Azure Automation
和简短描述 Use Automation accounts to access and work with delegated resources
。问题是它是如何工作的?我没有找到如何从一个中央订阅 运行 一本 运行 书和管理 remote/customers 订阅中的资源(列出虚拟机、存储帐户)的方法。有什么方法可以使用 Azure Lighthouse 从一个中心点 运行ning 自动化 运行 书籍并管理客户帐户中的资源。我知道我们可以使用 Azure Monitor 并创建警报并使用它们 运行 运行books 来管理客户帐户中的资源。
此答案与 Azure Light house 无关,但您可以通过提供必要的权限让自动化 Runbook 访问多个订阅。
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
Connect-AzAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
$Subs = Get-AzSubscription # filter by name
Select-AzSubscription -SubscriptionName $Subs.Name
Set-AzContext -SubscriptionId $RunAsConnection.SubscriptionId
# Rest of your script goes here
我正在我的 Azure 环境中准备自动化解决方案。我必须提供自动化,以便能够管理分布在不同 Azure 租户中的多个 Azure 订阅中的资源。我目前正在测试 Azure Lighthouse,它在备份和更新管理服务管理(多订阅,多租户)的情况下非常有用。在 MS 文档中 - Azure Lighthouse - cross-tenant-management-experience 有一个部分 Azure Automation
和简短描述 Use Automation accounts to access and work with delegated resources
。问题是它是如何工作的?我没有找到如何从一个中央订阅 运行 一本 运行 书和管理 remote/customers 订阅中的资源(列出虚拟机、存储帐户)的方法。有什么方法可以使用 Azure Lighthouse 从一个中心点 运行ning 自动化 运行 书籍并管理客户帐户中的资源。我知道我们可以使用 Azure Monitor 并创建警报并使用它们 运行 运行books 来管理客户帐户中的资源。
此答案与 Azure Light house 无关,但您可以通过提供必要的权限让自动化 Runbook 访问多个订阅。
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
Connect-AzAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
$Subs = Get-AzSubscription # filter by name
Select-AzSubscription -SubscriptionName $Subs.Name
Set-AzContext -SubscriptionId $RunAsConnection.SubscriptionId
# Rest of your script goes here