π **Azure Lighthouse¶
π What is Azure Lighthouse?¶
Azure Lighthouse allows cross-tenant management of Azure resources at scale.
It lets MSPs (Managed Service Providers) or enterprise teams manage multiple customer tenants/subscriptions securely, natively, and at scale from their own tenant.
π§ Why Use Azure Lighthouse?¶
| Feature | Benefit |
|---|---|
| Cross-tenant management | Manage multiple customer environments from one portal |
| Just-in-time (JIT) access | Reduce standing privileges using PIM integration |
| RBAC-based access delegation | Granular control over who can do what |
| Security and compliance | Auditability, least privilege, and MFA enforced |
| Automation support | ARM, Bicep, Terraform, and REST APIs supported |
π§° Key Concepts¶
| Term | Description |
|---|---|
| Managing tenant | The service providerβs tenant (your tenant) |
| Customer tenant | The tenant you are managing |
| Delegated resource | Subscription or Resource Group assigned to be managed externally |
| Authorization | RBAC roles assigned during delegation (e.g., Reader, Contributor, etc.) |
βοΈ Setup Overview¶
πͺ Option 1: Portal-Based (Manual)¶
-
Go to Azure Lighthouse > Service Providers
-
Click Add customer
-
Choose subscription/resource group
-
Assign RBAC roles
-
Customer must accept the delegation
π§± Option 2: Programmatic (ARM/Bicep)¶
ARM Template Example¶
{
"properties": {
"authorizations": [
{
"principalId": "<objectId-of-user-or-group>",
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/<role-guid>",
"principalIdDisplayName": "DevOps Engineer"
}
],
"managedByTenantId": "<managing-tenant-id>"
}
}
Deploy via CLI¶
az deployment create \
--name lighthouse-delegation \
--location eastus \
--template-file delegation.json \
--parameters principalId=<user/group ID> roleDefinitionId=<role-id> managedByTenantId=<your-tenant-id>
π Terraform Example¶
resource "azurerm_lighthouse_definition" "example" {
name = "my-lighthouse-def"
scope = azurerm_subscription.primary.id
managing_tenant_id = "00000000-0000-0000-0000-000000000000"
description = "Lighthouse access for DevOps team"
authorization {
principal_id = "12345678-1234-1234-1234-123456789abc"
role_definition_id = "b24988ac-6180-42a0-ab88-20f7382dd24c" # Contributor
}
}
π Use Cases¶
| Use Case | Example |
|---|---|
| Managed Service Provider (MSP) | Manage multiple customer environments from one console |
| Multi-team internal access | Central IT manages many business unit subscriptions securely |
| DevOps-as-a-Service | Your team manages customer pipelines, infra, monitoring centrally |
| Security Auditing | Give read-only (RBAC) access to auditors without full trust delegation |
π Security Features¶
| Feature | Azure Lighthouse |
|---|---|
| Role-based Access Control (RBAC) | β Granular and scoped |
| Azure AD Conditional Access | β Enforce MFA, location policies |
| Just-in-time access (PIM) | β Via Azure AD Privileged Identity Mgmt |
| Audit Logs | β Cross-tenant activity tracked in Azure |
π€ Azure Lighthouse vs AWS Resource Access Manager (RAM)¶
| Feature | Azure Lighthouse | AWS RAM |
|---|---|---|
| Cross-tenant resource access | β Full RBAC, native delegation | β οΈ Only limited resource types (VPC, FSx) |
| Fine-grained permissions | β RBAC + PIM + Conditional Access | β οΈ IAM-based, but not as flexible |
| Multi-subscription management | β Native in Azure Portal/CLI | β Not directly centralized |
| MSP / external party support | β Built-in for service providers | β Needs Org-level trust or workarounds |
| GitOps and DevOps automation | β ARM, Bicep, Terraform, REST, PowerShell | β οΈ Only limited CloudFormation support |
π Conclusion: Azure Lighthouse is more powerful for centralized cross-tenant access and DevOps automation than AWS RAM.
π Monitoring and Auditing¶
Use Azure Monitor, Activity Logs, and Log Analytics to:
-
View cross-tenant activity logs
-
Track who accessed which resource
-
Monitor compliance of managed environments
π Azure Lighthouse vs AWS Organizations¶
| Feature/Concept | Azure Lighthouse | AWS Organizations |
|---|---|---|
| π Purpose | Delegate resource access across tenants (MSP-focused) | Account management and centralized billing/governance |
| π§© Scope | Cross-tenant (customer β service provider) | Intra-org (within same AWS org accounts) |
| π Access Control | RBAC delegation (Contributor, Reader, etc.) across tenants | SCPs (Service Control Policies), IAM Roles within Org Units |
| π§βπ§ Use Case | MSP managing multiple customer environments securely | Large enterprise managing multiple internal AWS accounts |
| π° Billing Management | β No billing features | β Consolidated billing, cost management |
| π Policy and Security Mgmt | Delegated via RBAC, PIM, Conditional Access | SCPs, Guardrails, central config enforcement |
| π Trust Model | Explicit delegation by customer (they retain ownership) | Implicit trust under same AWS Org root |
| βοΈ Automation Support | β ARM, Bicep, Terraform, REST, PowerShell | β CloudFormation, AWS CLI, Terraform |
| π§Ύ Auditability | β Delegated access, full logs in managing tenant | β CloudTrail logs per account |
| π§βπ» Target Audience | MSPs, Partners, Multi-Tenant DevOps | Enterprises managing many business unit AWS accounts |
π§ Summary¶
| π§ Use Case | Use |
|---|---|
| Managing customersβ Azure environments | β Azure Lighthouse |
| Managing multiple internal AWS accounts | β AWS Organizations |
| Consolidated billing and budgets | β AWS Organizations |
| Secure cross-tenant DevOps/Monitoring | β Azure Lighthouse |
π Analogy¶
| Scenario | Azure Equivalent | AWS Equivalent |
|---|---|---|
| Partner managing multiple client tenants | Azure Lighthouse | β No direct equivalent |
| Company managing multiple internal accounts | Management Groups + Policy | β AWS Organizations |
β Conclusion:¶
-
Azure Lighthouse β AWS Organizations
-
Azure Lighthouse is like giving external access to a customer's environment in a controlled, auditable way.
-
AWS Organizations is like managing your own family of accounts under one umbrella.