Azure Lighthouse is a management service that enables service providers to manage Azure resources for multiple customers from a single control plane.
The Azure Lighthouse template empowers customers to grant service providers access to their tenant for the management of Azure services like Azure Policy, Microsoft Sentinel, Azure Arc, and more. The activity logs are stored in the customer's tenant, enabling them to monitor changes to their tenant.
For more information, see Azure Lighthouse. If you don't wish to grant tenant access to any service provider, you don't need to install this template.
The template requires two prerequisites:
- Active subscription to deploy this template
- Owner permissions on the management group in the managed tenant under which Azure Lighthouse should manage subscriptions
There's no hard dependency of Sovereign Landing Zone (SLZ), however we have implemented and tested this template given an SLZ management group hierarchy and existing policies.
We have created a policy to enforce Lighthouse on subscriptions under the scope of the given management group. If newer subscriptions are added after deployment, the Azure Lighthouse template will integrate those subscriptions via a logic application that triggers every four hours.
Note
This deployment is only supported for the 'Owner' role now. We're working on adding roles with more granular permissions in future releases.**
-
Open PowerShell 7.x. command shell.
-
Clone the cloud for sovereignty apps repo.
git clone https://github.com/Azure/cloud-for-sovereignty-quickstarts
-
Run commands to authenticate to Azure, where
subscription-id
is the subscription ID where the deployment occurs. We recommend running it under theManagement
subscription ID under thePlatform
management group. See image to identify theManagement
subscription ID.Login-AzAccount Connect-AzAccount -Subscription <subscription-id>
-
Navigate to
cloud-for-sovereignty-quickstarts\workloadAccelerators\lighthouse\scripts\parameters\
and openlighthouse.parameters.json
in a text editor, for example VS Code.cd .\cloud-for-sovereignty-quickstarts\workloadAccelerators\lighthouse\scripts\parameters\
code .
-
Update the parameters and save the file. Use the Parameters table for assistance.
-
Change directory to scripts and run deployment PowerShell script.
cd .. .\lighthouseAccelerator.ps1
-
A successful deployment finishes with the following statements:
>>> Policy Remediation Started >>> Policy Remediation Successful >>> Lighthouse deployment Successful
-
Confirm deployment completion on providers by navigating to the Azure portal Service providers offers page in your tenant where you want to manage services for your organization.
- Search for the offer name that you specified in the parameters file
parLighthouseOfferName
. - Search also under
Service providers - Delegations
tab to access on-demand auditing and reporting across all service providers actions. For more information, see image.
- Search for the offer name that you specified in the parameters file
-
Confirm deployment completion for customers by navigating to the Azure portal My customers - Customers page.
- Make sure you have the
Show only delegation selected in the global subscriptions filter
checked. - You should find the customer's name as the tenant you deployed your Lighthouse in, and
Delegations
for existing subscriptions with the assignedparRoleDefinitionId
role in the config parameter. - From here, you can select each subscription that you want to manage and see all related resources. For more information, see image.
- Make sure you have the
The Parameters table shows the descriptions and accepted values for all parameters within the lighthouse.parameters.json
file. All parameters marked with *
are required.
Parameter | Description | Guidance, examples |
---|---|---|
parDeploymentPrefix* | Deployment prefix used for creating deployment resource group and resources. If you're deploying the template on an SLZ, we recommend having this prefix match the SLZ’s prefix. | Five characters or less, lowercase, for example: mcfs |
parManagementGroupId* | The Id of the top level management group where we enable Lighthouse on all subscriptions under it. In case you are deploying on SLZ, it's the top level management group of the SLZ | Maximum 10 characters, for example {slz-name} |
parDeploymentLocation* | Location of the deployment. Location must be part of the allowed locations list if deploying this on an SLZ deployment. | for example: northeurope |
parLighthouseManagementTenantId* | The tenant ID of the service provider. *Note: This value can't be the same as the tenant ID where this template is being deployed. | In the Azure portal, sign in to the service provider tenant. Navigate to Azure AD to find the tenant ID. For more information, see image for help with finding this information. |
parLighthouseOfferName* | Name of the service provider offer. | Maximum 20 characters, for example: "Lighthouse offer" |
parLighthouseOfferDescription* | Brief description of the offer. | for example: “Lighthouse description” |
parPrincipalId* | The principal ID value of the user, group, or service principal in the service provider tenant, which gives access to your tenant. | From the Azure AD, locate the ObjectId for the user, group, or service principal in the service provider's tenant. |
parPrincipalIdDisplayName* | Display name to identify the principal ID. | Group or user or service principal name |
parRoleDefinitionId* | Role to be assigned for service provider, all built-in roles are currently supported with Azure Lighthouse, but with the some exceptions. Note:Lighthouse does not support owner role. For more information on predefined roles, navigate to Azure RBAC roles and reference Roles for Azure Lighthouse scenarios for restrictions on role usage. |
Contributor Role is the default value |