From d1c7c94383bc7c38ddc2ad88c5379ba399dbbb53 Mon Sep 17 00:00:00 2001 From: Jan Egil Ring Date: Sat, 24 Oct 2026 05:26:28 +0000 Subject: [PATCH 1/3] Deploy one global LocalBox per Sovereign Cloud event Move LocalBox provisioning to the Console global event hook, grant event-wide access, publish shared resource discovery, and update cost estimates and participant guidance. Preserve per-subscription governance and quota preparation and add global lifecycle and cross-subscription command tests. Live cross-subscription VM creation remains an integration gate. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../01_Sovereign_Cloud/Readme.md | 4 +- .../challenges/challenge-06.md | 2 + .../labautomation/global-event-deploy.ps1 | 225 ++++++++++++++++++ .../labautomation/lab-defaults.json | 3 +- .../labautomation/localbox-credentials.ps1 | 2 +- .../labautomation/shared-deploy-lab.ps1 | 163 +------------ .../resources/hosted-events/readme.md | 64 ++++- .../resources/localbox/manual-preparation.md | 2 +- .../resources/localbox/readme.md | 2 +- .../01_Sovereign_Cloud/resources/readme.md | 4 +- .../resources/tests/global-localbox.tests.ps1 | 224 +++++++++++++++++ .../resources/tests/hosted-defender.tests.ps1 | 4 +- .../tests/hosted-tag-policy.tests.ps1 | 6 +- .../tests/prepare-localbox.tests.ps1 | 8 +- .../resources/tests/readme.md | 22 +- .../resources/tests/shared-aks.tests.ps1 | 3 +- .../walkthrough/challenge-06/solution-06.md | 20 +- 99-MicroHack-Template/labautomation/README.md | 53 ++++- lab-defaults-schema.json | 10 + 19 files changed, 625 insertions(+), 196 deletions(-) create mode 100644 03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/global-event-deploy.ps1 create mode 100644 03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/global-localbox.tests.ps1 diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/Readme.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/Readme.md index d35e8c490..8cc79fbe1 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/Readme.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/Readme.md @@ -145,13 +145,13 @@ Use the AZQR report for planning and preferred-region ordering, not as the deplo The main cost driver for this Hackathon is virtual machines: -- **LocalBox** cost is approximately 100-110 USD per subscription per day. Console's shared-deployment estimate is USD 110/day per subscription, separate from participant costs. For hosted events, schedule provisioning at least 24 hours ahead and budget for preparation time; avoid leaving it running for a week by default. Follow the [hosted-event budget guidance](https://github.com/microsoft/MicroHack/blob/main/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md). +- **LocalBox** cost is approximately 100-110 USD per instance per day. Hosted events now share **one instance across all event subscriptions**: Console's global-deployment estimate is **USD 110/day per event**, not per subscription, separate from participant costs. Re-import the updated content pack to enable the global hook. For hosted events, schedule provisioning at least 24 hours ahead and budget for preparation time; avoid leaving it running for a week by default. Validate that the single instance has capacity for the whole event. Follow the [hosted-event budget guidance](https://github.com/microsoft/MicroHack/blob/main/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md). - **Challenges 5 and 7** share one pre-provisioned cluster: two `Standard_D4s_v5` system nodes and two Ubuntu `Standard_DC2as_v5/v6` confidential nodes, plus a `Standard_D4s_v5` K3s VM, Bastion Standard and NAT Gateway. The removed standalone CVM is replaced by the second confidential node, so baseline confidential compute remains four vCPUs; sharing also avoids a second AKS system pool. - Example Linux PAYG compute in Spain Central from the [Azure Retail Prices API](https://prices.azure.com/api/retail/prices), checked 2026-09-21: three D4s v5 at USD 0.214/hour plus two DC2as v6 at USD 0.117/hour equals **USD 21.02/day** for compute alone. Disks, Bastion, NAT, public IPs, LoadBalancers, storage and traffic are additional. - Use **USD 35-45 per participant per day** as a planning range including a modest allowance for those services and Challenge 4's two 1-vCPU/2-GiB ACI groups, Basic ACR and image build. The Console estimate is USD 45/day, not a pricing quote. ACI duration, confidential pricing, builds and egress can change the total; validate a regional Pricing Calculator estimate before approval. - Plan subscription quotas for at least 12 general-purpose vCPUs and 4 confidential vCPUs per participant, plus upgrade headroom. Keep two participants per subscription unless larger aggregate increases have been approved. Challenge 5 application cleanup does not release node quota because Challenge 7 still uses the cluster. -For a 50-participant event, this planning range is USD 1,750-2,250 per day, plus LocalBox for each participating subscription if Challenge 6 is enabled. +For a 50-participant event, this planning range is USD 1,750-2,250 per day, plus one event-wide LocalBox if Challenge 6 is enabled. This is a cost illustration, not evidence that one LocalBox supports 50 concurrent participant VMs; verify capacity before delivery. There will also be smaller costs for services such as Key Vault, storage, and monitoring. Hosted Console setup automatically enables **Defender for Servers P2 and Endpoint protection on every event subscription**. Budget separately for P2 charges on covered servers during preparation and delivery; the infrastructure estimates above do not include them. Manual/BYOS organizers enable their approved plan separately. Removing lab resource groups does not reset subscription-level Defender settings. An Azure Pricing Calculator estimate is available [here](https://azure.com/e/1a7aec76a3e049cba57cda6742025373). This estimate can be adjusted for fewer/more students, running the VMs shorter/longer and adding additional services if desired. diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/challenges/challenge-06.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/challenges/challenge-06.md index eaced9551..db9957628 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/challenges/challenge-06.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/challenges/challenge-06.md @@ -12,6 +12,8 @@ Your organization must run workloads in a sovereign cloud while still leveraging Before starting, return your Challenge 1 exercise policies to **DoNotEnforce**. If a policy blocks deployment, use the [troubleshooting steps](https://github.com/microsoft/MicroHack/blob/main/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/solution-06.md#if-validation-or-deployment-is-blocked-by-a-location-policy) or ask the facilitator. +Hosted events share **one LocalBox across all subscriptions**. Find it using **Shared LocalBox Subscription ID** and **Shared LocalBox Resource Group ID** in the Console's Credentials tab. Your own VM still belongs in your assigned subscription/resource group; AKS proxy connections use the shared LocalBox subscription. + ### Explore and manage a VM * Explore the LocalBox hybrid infrastructure in the Azure Portal diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/global-event-deploy.ps1 b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/global-event-deploy.ps1 new file mode 100644 index 000000000..8119976a5 --- /dev/null +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/global-event-deploy.ps1 @@ -0,0 +1,225 @@ +<# +.SYNOPSIS +Deploys one event-wide LocalBox for Sovereign Cloud MicroHack labs. +.DESCRIPTION +Runs once per event in the Console-selected lowest-GUID subscription, before +shared subscription preparation. All event participants receive access and +nonsecret discovery credentials. Participant VMs remain in their assigned scopes. +For Microsoft-hosted environments only: assigns and verifies the MCAPS control-tag +initiative and enables paid Defender for Servers P2 with Endpoint protection before +deploying resources. Do not use this hook for BYOS setup. +#> +param( + [Parameter(Mandatory=$true)] + [string]$SubscriptionId, + + [Parameter(Mandatory=$true)] + [string[]]$PreferredLocation = @(), + + [Parameter(Mandatory=$false)] + [string[]]$AllowedEntraUserIds = @() +) + +$ErrorActionPreference = 'Stop' +. (Join-Path $PSScriptRoot 'localbox-credentials.ps1') +. (Join-Path $PSScriptRoot 'hosted-tag-policy.ps1') +. (Join-Path $PSScriptRoot 'hosted-defender.ps1') + +Update-MhhToken | Out-Null +if ((Get-AzContext -ErrorAction Stop).Subscription.Id -ne $SubscriptionId) { + throw "The Azure context must target global LocalBox subscription $SubscriptionId." +} +$participants = @($AllowedEntraUserIds | Sort-Object -Unique) +foreach ($participant in $participants) { + $objectId = [guid]::Empty + if (-not [guid]::TryParse($participant, [ref]$objectId) -or $objectId -eq [guid]::Empty) { + throw 'AllowedEntraUserIds must contain valid event participant object IDs.' + } +} +$groupCredentials = @(Get-LocalBoxConsoleGroupCredential) + +$azureLocalResourceProviderAppId = '1412d89f-b8a8-4111-b4fd-e82905cbd85d' +Update-MhhToken | Out-Null +$azureLocalResourceProviderObjectIds = @( + & az ad sp list ` + --filter "appId eq '$azureLocalResourceProviderAppId'" ` + --query '[].id' ` + --output tsv ` + --only-show-errors +) +if($LASTEXITCODE -ne 0) { + throw 'Unable to query Microsoft Graph for the Microsoft.AzureStackHCI service principal.' +} +$azureLocalResourceProviderObjectIds = @($azureLocalResourceProviderObjectIds | Where-Object { -not [string]::IsNullOrWhiteSpace($_) }) +if($azureLocalResourceProviderObjectIds.Count -ne 1) { + throw "Expected exactly one Microsoft.AzureStackHCI service principal, found $($azureLocalResourceProviderObjectIds.Count)." +} +Write-Host "Resolved Microsoft.AzureStackHCI service-principal object ID: $($azureLocalResourceProviderObjectIds[0])" -ForegroundColor Green + +Write-Host "Preparing subscription $SubscriptionId for the event-wide LocalBox..." +& (Join-Path $PSScriptRoot 'resource-providers.ps1') + +if (-not $?) { + throw "Resource provider registration failed for subscription $SubscriptionId." +} + +$defaults = Get-Content (Join-Path $PSScriptRoot 'lab-defaults.json') -Raw | ConvertFrom-Json +if($PreferredLocation.Count -eq 0) { + $PreferredLocation = @($defaults.preferredLocation) +} +$PreferredLocation = @($PreferredLocation | ForEach-Object { $_ -split ',' } | ForEach-Object { $_.Trim() } | Where-Object { $_ }) + +if ($PreferredLocation.Count -eq 0) { throw 'At least one preferred LocalBox host region is required.' } +Initialize-MhhHostedTagPolicy -SubscriptionId $SubscriptionId -Location $PreferredLocation[0] +Initialize-MhhHostedDefender -SubscriptionId $SubscriptionId + +$localBoxResourceGroupName = 'rg-localbox-shared' +$localBoxLocations = @( + $PreferredLocation | + Where-Object { $_ } | + Select-Object -Unique +) +$activeDeploymentStates = @('Accepted', 'Running', 'Ready', 'Creating', 'Created', 'Succeeded') +$resourceGroup = Get-AzResourceGroup -Name $localBoxResourceGroupName -ErrorAction SilentlyContinue +if ($resourceGroup) { + Update-AzTag ` + -ResourceId $resourceGroup.ResourceId ` + -Operation Merge ` + -Tag @{ + workload = 'sovereign-localbox' + challenge = '6' + SecurityControl = 'Ignore' + CostControl = 'Ignore' + } ` + -ErrorAction Stop | Out-Null + Write-Host "Applied the temporary MCAPS security-control exemption to $localBoxResourceGroupName." -ForegroundColor Green +} +$localBoxDeployment = if ($resourceGroup) { + Get-AzResourceGroupDeployment ` + -ResourceGroupName $localBoxResourceGroupName ` + -ErrorAction Stop | + Where-Object { + $_.DeploymentName -like 'localbox-*' -and + $_.ProvisioningState -in $activeDeploymentStates + } | + Sort-Object Timestamp -Descending | + Select-Object -First 1 +} + +if ($localBoxDeployment) { + Write-Host "Reusing LocalBox deployment '$($localBoxDeployment.DeploymentName)' ($($localBoxDeployment.ProvisioningState))." -ForegroundColor Green + $localBoxClient = Get-AzResource ` + -ResourceGroupName $localBoxResourceGroupName ` + -ResourceType 'Microsoft.Compute/virtualMachines' ` + -ErrorAction Stop | + Where-Object Name -eq 'LocalBox-Client' + if ($localBoxClient) { + Update-AzTag ` + -ResourceId $localBoxClient.ResourceId ` + -Operation Merge ` + -Tag @{ CostControl = 'Ignore' } ` + -ErrorAction Stop | Out-Null + } +} +else { + foreach ($localBoxLocation in $localBoxLocations) { + try { + Write-Host "Submitting shared LocalBox deployment in $localBoxLocation..." -ForegroundColor Cyan + $localBoxDeployment = & (Join-Path $PSScriptRoot 'deploy-localbox.ps1') ` + -SubscriptionId $SubscriptionId ` + -ResourceGroupName $localBoxResourceGroupName ` + -Location $localBoxLocation ` + -AzureLocalResourceProviderObjectId $azureLocalResourceProviderObjectIds[0] ` + -AzureLocalInstanceLocation 'australiaeast' ` + -UseConsoleCredentials ` + -NoWait + + if (-not $localBoxDeployment -or $localBoxDeployment.ProvisioningState -ne 'Submitted') { + throw "LocalBox deployment submission did not return the expected Submitted state." + } + break + } + catch { + $failureDetails = @( + $_.Exception.ToString() + $_.ErrorDetails.Message + ) | Where-Object { $_ } + $failureDetails = $failureDetails -join ' ' + $retryableRegionalFailure = $failureDetails -match 'RequestDisallowedByAzure|locationineligible|SkuNotAvailable|QuotaExceeded|OperationNotAllowed|AllocationFailed|VM size .+ unavailable|At least 32 unused' + + if ($retryableRegionalFailure -and $localBoxLocation -ne $localBoxLocations[-1]) { + Write-Warning "LocalBox is unavailable in $localBoxLocation; trying the next preferred region. $($_.Exception.Message)" + $localBoxDeployment = $null + continue + } + throw + } + } + + if (-not $localBoxDeployment) { + throw "LocalBox deployment submission failed in all candidate regions for subscription $SubscriptionId." + } +} + + +$localBoxScope = "/subscriptions/$SubscriptionId/resourceGroups/$localBoxResourceGroupName" +for ($attempt = 1; $attempt -le 60; $attempt++) { + Update-MhhToken | Out-Null + $runtimeProvider = Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesRuntime -ErrorAction Stop + if ($runtimeProvider.RegistrationState -eq 'Registered') { break } + Start-Sleep -Seconds 10 +} +if ($runtimeProvider.RegistrationState -ne 'Registered') { + throw 'Microsoft.KubernetesRuntime registration did not complete. LocalBox MetalLB preparation is blocked.' +} +$runtimeObjectIds = @(& az ad sp list --filter "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" --query '[].id' --output tsv --only-show-errors) +if ($LASTEXITCODE -ne 0) { throw 'Unable to resolve the Microsoft.KubernetesRuntime service principal for MetalLB.' } +$runtimeObjectIds = @($runtimeObjectIds | Where-Object { -not [string]::IsNullOrWhiteSpace($_) }) +$runtimeObjectId = [guid]::Empty +if ($runtimeObjectIds.Count -ne 1 -or -not [guid]::TryParse($runtimeObjectIds[0], [ref]$runtimeObjectId) -or $runtimeObjectId -eq [guid]::Empty) { + throw 'Expected exactly one valid Microsoft.KubernetesRuntime service-principal object ID. Have the tenant administrator verify provider registration.' +} +Update-AzTag -ResourceId $localBoxScope -Operation Merge ` + -Tag @{ 'microhack-k8s-runtime-object-id' = $runtimeObjectId.ToString() } -ErrorAction Stop | Out-Null + +foreach ($participantObjectId in $participants) { + Update-MhhToken | Out-Null + foreach ($roleName in @('Reader', 'Azure Stack HCI VM Contributor', 'Security Reader')) { + $roleScope = if ($roleName -eq 'Security Reader') { "/subscriptions/$SubscriptionId" } else { $localBoxScope } + $roleAssignment = Get-AzRoleAssignment ` + -ObjectId $participantObjectId ` + -RoleDefinitionName $roleName ` + -Scope $roleScope ` + -ErrorAction Stop + + if (-not $roleAssignment) { + Write-Host "Assigning '$roleName' on shared LocalBox to $participantObjectId..." + New-AzRoleAssignment ` + -ObjectId $participantObjectId ` + -RoleDefinitionName $roleName ` + -Scope $roleScope ` + -ErrorAction Stop | Out-Null + } + } +} + +Wait-LocalBoxDeployment -ResourceGroupName $localBoxResourceGroupName -DeploymentName $localBoxDeployment.DeploymentName + +$groupCredentials +@{ HackboxCredential = @{ + name = 'Shared LocalBox Subscription ID' + value = $SubscriptionId + note = 'Event-wide LocalBox and AKS host; your own VM stays in your assigned subscription/resource group' +} } +@{ HackboxCredential = @{ + name = 'Shared LocalBox Resource Group ID' + value = $localBoxScope + note = 'Use this exact scope to find the event-wide LocalBox, even from another lab subscription' +} } +@{ + 'HackboxCredential' = @{ + name = 'Shared LocalBox Resource Group' + value = $localBoxResourceGroupName + note = 'One Challenge 6 environment for the entire event; readiness is verified by the facilitator' + } +} \ No newline at end of file diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/lab-defaults.json b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/lab-defaults.json index 220905345..280e0954a 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/lab-defaults.json +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/lab-defaults.json @@ -5,5 +5,6 @@ "labsPerSubscription": 2, "preferredLocation": "spaincentral, swedencentral", "estimatedDailyCostsUsd": 45.0, - "estimatedSharedDeploymentDailyCostsUsd": 110.0 + "estimatedSharedDeploymentDailyCostsUsd": 0.0, + "estimatedGlobalDeploymentDailyCostsUsd": 110.0 } diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/localbox-credentials.ps1 b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/localbox-credentials.ps1 index bd7a01f24..f70540c39 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/localbox-credentials.ps1 +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/localbox-credentials.ps1 @@ -33,7 +33,7 @@ function Wait-LocalBoxDeployment { throw "LocalBox deployment '$DeploymentName' ended as $($deployment.ProvisioningState)." } if ((Get-Date -AsUTC) -ge $deadline) { - throw "Timed out waiting for LocalBox deployment '$DeploymentName'. Rerun the shared hook after investigating the deployment." + throw "Timed out waiting for LocalBox deployment '$DeploymentName'. Rerun the global event hook after investigating the deployment." } Write-Host "Waiting for LocalBox ARM deployment '$DeploymentName' ($($deployment.ProvisioningState))..." Start-Sleep -Seconds 30 diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/shared-deploy-lab.ps1 b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/shared-deploy-lab.ps1 index 866167fba..c267482d1 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/shared-deploy-lab.ps1 +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/shared-deploy-lab.ps1 @@ -5,7 +5,7 @@ Prepares a subscription for Sovereign Cloud MicroHack labs. Runs once per subscription before participant lab deployments and registers the required Azure resource providers. It ensures one preferred region has the VM SKUs and compute quota required by the subscription's participant count. -It also submits one shared LocalBox environment per subscription for Challenge 6. +LocalBox is deployed separately by global-event-deploy.ps1 once per event. For Microsoft-hosted environments only: assigns and verifies the MCAPS control-tag initiative and enables paid Defender for Servers P2 with Endpoint protection before deploying resources. Do not use this hook for BYOS setup. @@ -21,30 +21,15 @@ param( [string[]]$AllowedEntraUserIds = @() ) +$ErrorActionPreference = 'Stop' . (Join-Path $PSScriptRoot 'quota-helpers.ps1') -. (Join-Path $PSScriptRoot 'localbox-credentials.ps1') . (Join-Path $PSScriptRoot 'hosted-tag-policy.ps1') . (Join-Path $PSScriptRoot 'hosted-defender.ps1') -Get-LocalBoxConsoleGroupCredential - -$azureLocalResourceProviderAppId = '1412d89f-b8a8-4111-b4fd-e82905cbd85d' Update-MhhToken | Out-Null -$azureLocalResourceProviderObjectIds = @( - & az ad sp list ` - --filter "appId eq '$azureLocalResourceProviderAppId'" ` - --query '[].id' ` - --output tsv ` - --only-show-errors -) -if($LASTEXITCODE -ne 0) { - throw 'Unable to query Microsoft Graph for the Microsoft.AzureStackHCI service principal.' -} -$azureLocalResourceProviderObjectIds = @($azureLocalResourceProviderObjectIds | Where-Object { -not [string]::IsNullOrWhiteSpace($_) }) -if($azureLocalResourceProviderObjectIds.Count -ne 1) { - throw "Expected exactly one Microsoft.AzureStackHCI service principal, found $($azureLocalResourceProviderObjectIds.Count)." +if ((Get-AzContext -ErrorAction Stop).Subscription.Id -ne $SubscriptionId) { + throw "The Azure context must target participant subscription $SubscriptionId." } -Write-Host "Resolved Microsoft.AzureStackHCI service-principal object ID: $($azureLocalResourceProviderObjectIds[0])" -ForegroundColor Green Write-Host "Preparing subscription $SubscriptionId for Sovereign Cloud labs..." & (Join-Path $PSScriptRoot 'resource-providers.ps1') @@ -157,142 +142,4 @@ Set-MhhConfidentialComputeSelection -SubscriptionId $SubscriptionId -Candidate $ Write-Host "Selected $($selectedCandidate.VmSize) in $($selectedCandidate.Location); compute SKUs and quotas are ready for $participantCount participants." -ForegroundColor Green Initialize-MhhHostedTagPolicy -SubscriptionId $SubscriptionId -Location $selectedCandidate.Location -Initialize-MhhHostedDefender -SubscriptionId $SubscriptionId - -$localBoxResourceGroupName = 'rg-localbox-shared' -$localBoxLocations = @( - @($selectedCandidate.Location) + $PreferredLocation | - Where-Object { $_ } | - Select-Object -Unique -) -$activeDeploymentStates = @('Accepted', 'Running', 'Ready', 'Creating', 'Created', 'Succeeded') -$resourceGroup = Get-AzResourceGroup -Name $localBoxResourceGroupName -ErrorAction SilentlyContinue -if ($resourceGroup) { - Update-AzTag ` - -ResourceId $resourceGroup.ResourceId ` - -Operation Merge ` - -Tag @{ - workload = 'sovereign-localbox' - challenge = '6' - SecurityControl = 'Ignore' - CostControl = 'Ignore' - } ` - -ErrorAction Stop | Out-Null - Write-Host "Applied the temporary MCAPS security-control exemption to $localBoxResourceGroupName." -ForegroundColor Green -} -$localBoxDeployment = if ($resourceGroup) { - Get-AzResourceGroupDeployment ` - -ResourceGroupName $localBoxResourceGroupName ` - -ErrorAction Stop | - Where-Object { - $_.DeploymentName -like 'localbox-*' -and - $_.ProvisioningState -in $activeDeploymentStates - } | - Sort-Object Timestamp -Descending | - Select-Object -First 1 -} - -if ($localBoxDeployment) { - Write-Host "Reusing LocalBox deployment '$($localBoxDeployment.DeploymentName)' ($($localBoxDeployment.ProvisioningState))." -ForegroundColor Green - $localBoxClient = Get-AzResource ` - -ResourceGroupName $localBoxResourceGroupName ` - -ResourceType 'Microsoft.Compute/virtualMachines' ` - -ErrorAction Stop | - Where-Object Name -eq 'LocalBox-Client' - if ($localBoxClient) { - Update-AzTag ` - -ResourceId $localBoxClient.ResourceId ` - -Operation Merge ` - -Tag @{ CostControl = 'Ignore' } ` - -ErrorAction Stop | Out-Null - } -} -else { - foreach ($localBoxLocation in $localBoxLocations) { - try { - Write-Host "Submitting shared LocalBox deployment in $localBoxLocation..." -ForegroundColor Cyan - $localBoxDeployment = & (Join-Path $PSScriptRoot 'deploy-localbox.ps1') ` - -SubscriptionId $SubscriptionId ` - -ResourceGroupName $localBoxResourceGroupName ` - -Location $localBoxLocation ` - -AzureLocalResourceProviderObjectId $azureLocalResourceProviderObjectIds[0] ` - -AzureLocalInstanceLocation 'australiaeast' ` - -UseConsoleCredentials ` - -NoWait - - if (-not $localBoxDeployment -or $localBoxDeployment.ProvisioningState -ne 'Submitted') { - throw "LocalBox deployment submission did not return the expected Submitted state." - } - break - } - catch { - $failureDetails = @( - $_.Exception.ToString() - $_.ErrorDetails.Message - ) | Where-Object { $_ } - $failureDetails = $failureDetails -join ' ' - $retryableRegionalFailure = $failureDetails -match 'RequestDisallowedByAzure|locationineligible|SkuNotAvailable|QuotaExceeded|OperationNotAllowed|AllocationFailed|VM size .+ unavailable|At least 32 unused' - - if ($retryableRegionalFailure -and $localBoxLocation -ne $localBoxLocations[-1]) { - Write-Warning "LocalBox is unavailable in $localBoxLocation; trying the next preferred region. $($_.Exception.Message)" - $localBoxDeployment = $null - continue - } - throw - } - } - - if (-not $localBoxDeployment) { - throw "LocalBox deployment submission failed in all candidate regions for subscription $SubscriptionId." - } -} - - -$localBoxScope = "/subscriptions/$SubscriptionId/resourceGroups/$localBoxResourceGroupName" -for ($attempt = 1; $attempt -le 60; $attempt++) { - Update-MhhToken | Out-Null - $runtimeProvider = Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesRuntime -ErrorAction Stop - if ($runtimeProvider.RegistrationState -eq 'Registered') { break } - Start-Sleep -Seconds 10 -} -if ($runtimeProvider.RegistrationState -ne 'Registered') { - throw 'Microsoft.KubernetesRuntime registration did not complete. LocalBox MetalLB preparation is blocked.' -} -$runtimeObjectIds = @(& az ad sp list --filter "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" --query '[].id' --output tsv --only-show-errors) -if ($LASTEXITCODE -ne 0) { throw 'Unable to resolve the Microsoft.KubernetesRuntime service principal for MetalLB.' } -$runtimeObjectIds = @($runtimeObjectIds | Where-Object { -not [string]::IsNullOrWhiteSpace($_) }) -$runtimeObjectId = [guid]::Empty -if ($runtimeObjectIds.Count -ne 1 -or -not [guid]::TryParse($runtimeObjectIds[0], [ref]$runtimeObjectId) -or $runtimeObjectId -eq [guid]::Empty) { - throw 'Expected exactly one valid Microsoft.KubernetesRuntime service-principal object ID. Have the tenant administrator verify provider registration.' -} -Update-AzTag -ResourceId $localBoxScope -Operation Merge ` - -Tag @{ 'microhack-k8s-runtime-object-id' = $runtimeObjectId.ToString() } -ErrorAction Stop | Out-Null - -foreach ($participantObjectId in $AllowedEntraUserIds) { - foreach ($roleName in @('Reader', 'Azure Stack HCI VM Contributor')) { - $roleAssignment = Get-AzRoleAssignment ` - -ObjectId $participantObjectId ` - -RoleDefinitionName $roleName ` - -Scope $localBoxScope ` - -ErrorAction SilentlyContinue - - if (-not $roleAssignment) { - Write-Host "Assigning '$roleName' on shared LocalBox to $participantObjectId..." - New-AzRoleAssignment ` - -ObjectId $participantObjectId ` - -RoleDefinitionName $roleName ` - -Scope $localBoxScope ` - -ErrorAction Stop | Out-Null - } - } -} - -Wait-LocalBoxDeployment -ResourceGroupName $localBoxResourceGroupName -DeploymentName $localBoxDeployment.DeploymentName - -@{ - 'HackboxCredential' = @{ - name = 'Shared LocalBox Resource Group' - value = $localBoxResourceGroupName - note = 'Shared Challenge 6 environment; readiness is verified by the facilitator' - } -} \ No newline at end of file +Initialize-MhhHostedDefender -SubscriptionId $SubscriptionId \ No newline at end of file diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md index 8b10777e4..82713252f 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md @@ -14,11 +14,55 @@ This runbook covers the FY27 EMEA Cloud & AI Hackathons program described in the When automatic provisioning is not scheduled, use the Console's **Create Users**, content-pack license defaults and **Deploy Lab Environment** lifecycle in order. Investigate failures before continuing; do not compensate by running subscription-wide manual utilities. +## One LocalBox per event + +Re-import the content pack after updating it. The Console discovers +[global-event-deploy.ps1](../../labautomation/global-event-deploy.ps1) beside the +participant hook and requires `estimatedGlobalDeploymentDailyCostsUsd` to be +**greater than 5**. This pack sets it to **USD 110/day**, with the per-subscription +shared infrastructure estimate set to **0**. A missing/mismatched global signature +or a cost of 5 or less causes the Console to skip the hook and log a warning; +verify the global deployment job actually ran before continuing. + +The Console runs the global hook **once per event in the lowest-GUID event +subscription**, passing all event lab-user object IDs. It completes before +`shared-deploy-lab.ps1` runs in each subscription, followed by participant +deployments. A global failure stops the event deployment. Host-region fallback +uses the preferred regions within that selected subscription; it does not choose +a different subscription if quota or SKU availability is insufficient. + +The global hook deploys/reuses one `rg-localbox-shared`, including one LocalBox +Client. It publishes **Shared LocalBox Subscription ID**, **Shared LocalBox Resource +Group ID**, the group name and lab-group metadata to **every event participant**. +It grants each participant Reader and Azure Stack HCI VM Contributor on the +LocalBox resource group, plus Security Reader on the host subscription for +reference-VM security inspection. No participant Owner, host login or password is +granted by this hook. Existing shared VM/AKS access remains a workshop trust +boundary, not per-participant isolation. + +Participant VMs still belong in their own assigned subscription/resource group, +using the shared custom location, image, network and storage. Keep the participant +subscription separate from the LocalBox subscription when following Challenge 6. +AKS proxy connections target the **LocalBox subscription**; team namespaces remain +unique by participant subscription plus resource group. + +**Capacity and migration:** one instance now carries the entire event's nested +VMs, reference VM, AKS workers and service IP allocations. Validate memory, storage +and address-pool headroom for the planned event size; the cost reduction does not +increase LocalBox capacity. Use a fresh event to validate this change, including +a participant assigned to a different subscription. Existing LocalBoxes in other +subscriptions are not moved or deleted automatically. Review their dependencies +and arrange explicit cleanup separately. Keep the global environment until all +participant VMs are removed, then verify Console teardown removes it. + ## Defender for Servers configuration and costs -The [shared hook](../../labautomation/shared-deploy-lab.ps1) calls -[hosted Defender setup](../../labautomation/hosted-defender.ps1) once per subscription, -after hosted tag-policy verification and before LocalBox deployment. It sets +The [global hook](../../labautomation/global-event-deploy.ps1) calls +[hosted Defender setup](../../labautomation/hosted-defender.ps1) in the host +subscription after hosted tag-policy verification and before LocalBox deployment. +The [shared hook](../../labautomation/shared-deploy-lab.ps1) also verifies these +settings on every participant subscription before lab deployment, including an +idempotent recheck of the host subscription. Setup sets `Microsoft.Security/pricings/VirtualMachines` to `Standard` / `P2` and `Microsoft.Security/settings/WDATP` to `enabled=true` (the **Endpoint protection** toggle). Existing pricing extension and enforcement settings are preserved; other @@ -41,18 +85,18 @@ releasing a subscription. This hook is not part of manual/BYOS preparation. ## Complete LocalBox preparation -The shared hook submits `localbox-*` in `rg-localbox-shared`, then waits up to six hours for ARM completion, refreshing its Console authentication while polling. It does not publish LocalBox administrator credentials. A Client VM appearing after roughly 15-20 minutes confirms only that deployment has started. Full nested Azure Local provisioning can take 4-6 hours and must still be checked separately. +The global hook submits `localbox-*` in `rg-localbox-shared` in the published **Shared LocalBox Subscription ID**, then waits up to six hours for ARM completion, refreshing its Console authentication while polling. It does not publish LocalBox administrator credentials. A Client VM appearing after roughly 15-20 minutes confirms only that deployment has started. Full nested Azure Local provisioning can take 4-6 hours and must still be checked separately. 1. Inspect the Azure deployment, Client bootstrap logs and Azure Local/Arc status. Resolve failures before proceeding. 2. If the Client password is unknown, an authorized event lead/coach uses the Azure VM's **Help > Reset password** to set a known password for the `arcdemo` host account, then connects to `LocalBox-Client` through Bastion. Do not expose this password through participant credentials or job logs. A host password reset does not change the nested-node Windows credentials. See [LocalBox credentials](#localbox-credentials). 3. Copy **Lab Group ObjectId** from the Console's **Credentials** tab for the preparation prompt or `-AksAdminGroupObjectId`. Confirm that intended Azure lab identities/coaches are members; see the group dependency below. -4. Follow [LocalBox preparation](../localbox/readme.md), once per shared subscription, in elevated PowerShell 7. It creates AKS and then installs/verifies the shared MetalLB extension and reserved ARP pool. Azure authentication uses the Client VM's managed identity; preparation constructs the nested Windows credential locally from the installed configuration without printing it. An explicit `-NodeCredential` overrides that value after a nested-account rotation. +4. Follow [LocalBox preparation](../localbox/readme.md), **once per event on the global LocalBox Client**, in elevated PowerShell 7. It creates AKS and then installs/verifies the shared MetalLB extension and reserved ARP pool. Azure authentication uses the Client VM's managed identity; preparation constructs the nested Windows credential locally from the installed configuration without printing it. An explicit `-NodeCredential` overrides that value after a nested-account rotation. Preparation includes `sov-ref-vm` by default; run it **the day before the event** for inspection while participant VMs onboard, or opt out with `-IncludeReferenceVm:$false`. Follow the [reference readiness checks](../localbox/readme.md#reference-readiness-and-participant-use); Console plan configuration and successful provisioning do not establish completed VM assessments. Participants must not modify this shared VM; no RBAC restrictions are added. 5. Run [Pester health checks](../tests/readme.md) for LocalBox and every selected participant lab. A control-plane-only pass does not establish full readiness. 6. Console shared setup enables and verifies **Defender for Servers Plan 2** and **Endpoint protection** on every event subscription. Complete the [Defender readiness checklist](../localbox/manual-preparation.md#defender-for-servers-readiness-organizer) and [participant VM readiness exercise](../localbox/manual-preparation.md#step-6-test-the-environment), including guest management, actual Defender onboarding and Update Manager. Verified subscription settings do not prove that a VM has completed onboarding. 7. Verify an intended participant can use Entra-authenticated `az connectedk8s proxy` and a private application port-forward from their Codespace. Participants inspect MetalLB, not install it, and never need LocalBox-Client access. This validates the lab access path, not routing to the MetalLB service VIP. -Shared setup registers `Microsoft.KubernetesRuntime`, waits for registration, +Global setup registers `Microsoft.KubernetesRuntime`, waits for registration, resolves its tenant service-principal object ID using the Console's existing Graph-capable identity, and records it in the shared RG tag `microhack-k8s-runtime-object-id`. Missing registration or identity resolution @@ -85,7 +129,7 @@ do not assume a region is available merely because its SKU/quota checks passed. There are three separate locations to check: the participant resource group's metadata location, the Azure region hosting the LocalBox simulator, and the Azure Local/custom-location registration region. The hosted -[shared hook](../../labautomation/shared-deploy-lab.ps1) explicitly passes +[global hook](../../labautomation/global-event-deploy.ps1) explicitly passes `AzureLocalInstanceLocation = australiaeast`; the [manual deployment](../manual-setup/localbox/deploy-localbox.ps1) defaults to `australiaeast`. Host-region fallback does not change that registration parameter. @@ -123,7 +167,7 @@ Existing-environment cleanup is a separate organizer action. ### Hosted MCAPS control-tag initiative -The organizer-owned [shared hook](../../labautomation/shared-deploy-lab.ps1) deploys the [hosted tag initiative](../../labautomation/infra/hosted-tag-policy.bicep) once per subscription, before LocalBox deployment and participant lab fan-out. This is specific to MCAPS governance in Microsoft-internal hosted environments. **Do not deploy it for bring-your-own-subscription or manual setup.** The Console deployment identity must be authorized to create subscription-scoped policy initiatives and assignments, as well as the lab resources. +The organizer-owned [global hook](../../labautomation/global-event-deploy.ps1) deploys and verifies the [hosted tag initiative](../../labautomation/infra/hosted-tag-policy.bicep) before LocalBox deployment. The [shared hook](../../labautomation/shared-deploy-lab.ps1) deploys/verifies the same initiative on every participant subscription before participant lab fan-out; rechecking the host subscription is idempotent. This is specific to MCAPS governance in Microsoft-internal hosted environments. **Do not deploy it for bring-your-own-subscription or manual setup.** The Console deployment identity must be authorized to create subscription-scoped policy initiatives and assignments, as well as the lab resources. The initiative `sovereign-hosted-control-tags` and assignment `sov-hosted-control-tags` use four built-in **modify** policies: @@ -152,7 +196,7 @@ Verify that the hosted governance system honors the tag. It does not disable ind For new hosted deployments, the wrapper uses `New-MhhStablePassword -Purpose 'localbox-admin-v1' -Length 24`. The same Console scope and purpose yield the same password on retries. The password is passed as a secure template parameter, never added to tags, deployment outputs, log messages or `HackboxCredential` outputs. Do not change the password purpose or length for an existing event. -Shared-hook credentials are visible to **every lab in that subscription**. Only the resource-group name and nonsecret lab-group metadata are published by this hook. LocalBox administrator credentials must be restricted to coaches/event leads. A supported Console mechanism for restricted retrieval or secret input is pending confirmation from the Console owner and is not implemented here. It is not required for the Client-reset/local-configuration workflow above. The manual deployment path keeps its existing password handling and does not require Console helpers. +Global-hook credentials are visible to **every lab in the event**. Only the LocalBox subscription ID, resource-group name/ID and nonsecret lab-group metadata are published by this hook. LocalBox administrator credentials must be restricted to coaches/event leads. A supported Console mechanism for restricted retrieval or secret input is pending confirmation from the Console owner and is not implemented here. It is not required for the Client-reset/local-configuration workflow above. The manual deployment path keeps its existing password handling and does not require Console helpers. **Existing deployments:** environments are reused without password rotation. Original random passwords cannot be recovered from ARM or reconstructed by rerunning this hook, but Jumpstart's installed configuration on the Client retains `SDNAdminPassword`. After gaining host access, preparation reads that value through `$env:LocalBoxConfigFile` and uses the configured domain's Administrator account for PowerShell Direct. A Client-only reset does not alter it. If the nested account has since been rotated, supply its current credential explicitly. Do not redeploy the environment merely to recover a password. @@ -162,7 +206,7 @@ If an earlier automation version already published an administrator password, re ### Console group dependency -The shared hook calls the Console-supported `Get-MhhDefaultLabGroup` helper and publishes **Lab Group ObjectId**, **Lab Group GroupName** and **Lab Group DisplayName** as separate credentials. Complete the Console's Entra user/group creation lifecycle first; missing or invalid metadata stops shared deployment. The object ID is the value to supply to LocalBox preparation for AKS Entra administration. +The global hook calls the Console-supported `Get-MhhDefaultLabGroup` helper and publishes **Lab Group ObjectId**, **Lab Group GroupName** and **Lab Group DisplayName** as separate credentials to the entire event. Complete the Console's Entra user/group creation lifecycle first; missing or invalid metadata stops global deployment. The object ID is the value to supply to LocalBox preparation for AKS Entra administration. The [platform contract](../../../../../99-MicroHack-Template/labautomation/README.md#groups-supported-values) still uses `groups` for licensing activation (`GHCPUsers`, `M365-E5-Users`), not arbitrary group creation. No new schema fields or Graph permissions are needed. The Console owns the event group, its membership and teardown; the facilitator must verify intended users/coaches and late registrations. The preparation script still prompts for the ID on the Client, where Console helpers are unavailable, and does not create groups or validate membership through Graph. diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/manual-preparation.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/manual-preparation.md index 541a8309d..32d3b5011 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/manual-preparation.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/manual-preparation.md @@ -131,6 +131,6 @@ Resolve connectivity, extension provisioning, or permission failures before the ## Notes -- **Shared Environment**: For MicroHack events, typically one LocalBox instance per subscription is shared among participants; each participant creates a VM in their assigned resource group +- **Shared Environment**: Hosted MicroHack events use one LocalBox instance across all event subscriptions; each participant creates a VM in their assigned subscription/resource group. Use the Console's Shared LocalBox Subscription ID to find the shared infrastructure. Manual organizers choose and publish their LocalBox scope. - **Resource Costs**: LocalBox and the enabled security services consume Azure resources; clean up lab resources after the event and review lab-specific paid plans with the subscription owner - **Deployment Time**: Plan for deployment time when scheduling your MicroHack diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/readme.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/readme.md index 9e38c9026..110139b61 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/readme.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/readme.md @@ -76,7 +76,7 @@ There is **one import attempt per run**, not an endless retry loop. If the new a ## MetalLB preparation MetalLB is installed automatically **after AKS is ready**, by this organizer -preparation script, not by participants. The Console shared hook still deploys +preparation script, not by participants. The Console global event hook deploys LocalBox only; it registers the Runtime provider and supplies the object-ID tag needed for this later step. No Client VM access is granted to attendees. diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/readme.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/readme.md index f159e2e96..15efec3b0 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/readme.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/readme.md @@ -16,10 +16,10 @@ Both paths use [LocalBox preparation](localbox/readme.md) and the [Pester health | Subscriptions, users, initial lab RBAC, provider/quota preparation | Console and content automation | Subscription owner | | Participant shared Azure AKS with Ubuntu confidential pool, K3s and networking | Console content automation for Challenges 5/7 | Subscription owner using the lab template | | Challenge 4 ACI/ACR comparison and Challenge 5 applications | Participants using walkthrough scripts | Same walkthrough scripts against the prepared scope | -| Shared LocalBox deployment | Console submits once per subscription; full readiness still requires verification | Subscription owner deploys LocalBox | +| Shared LocalBox deployment | Console submits once per event in the lowest-GUID event subscription; full readiness still requires verification | Subscription owner deploys LocalBox | | Storage, Windows image, VM/AKS networks, AKS on Azure Local | Event Lead runs preparation on each LocalBox Client | Same preparation script | | AKS Local Entra admin group | Console-owned event group; use **Lab Group ObjectId** from the Credentials tab | Supply an existing security group with intended users as members | | Runtime health and participant access | Event Lead | Organizer/subscription owner | | Teardown | Console lifecycle; verify shared resources and group cleanup | Explicit owner-managed cleanup | -One Console team is one lab. This content pack currently shares one LocalBox per **subscription**, so an event spanning several subscriptions has several LocalBoxes. The existing Azure AKS/K3s labs are not replaced by AKS on Azure Local. \ No newline at end of file +One Console team is one lab. This content pack shares **one LocalBox across the entire event**, even when participant labs span several subscriptions. Use the Console's **Shared LocalBox Subscription ID** and **Shared LocalBox Resource Group ID** to find it. Participant VMs stay in their assigned scopes. The existing Azure AKS/K3s labs are not replaced by AKS on Azure Local. \ No newline at end of file diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/global-localbox.tests.ps1 b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/global-localbox.tests.ps1 new file mode 100644 index 000000000..0ca0528be --- /dev/null +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/global-localbox.tests.ps1 @@ -0,0 +1,224 @@ +BeforeAll { + $root = (Resolve-Path "$PSScriptRoot/../..").Path + $fixture = Join-Path $TestDrive 'lab' + New-Item -ItemType Directory -Path $fixture | Out-Null + foreach ($name in @('global-event-deploy.ps1', 'shared-deploy-lab.ps1', 'lab-defaults.json')) { + Copy-Item "$root/labautomation/$name" $fixture + } + foreach ($name in @('quota-helpers.ps1', 'localbox-credentials.ps1', 'hosted-tag-policy.ps1', 'hosted-defender.ps1')) { + Set-Content "$fixture/$name" '' + } + Set-Content "$fixture/resource-providers.ps1" 'Register-TestProviders' + @' +param($SubscriptionId, $ResourceGroupName, $Location, $AzureLocalResourceProviderObjectId, $AzureLocalInstanceLocation, [switch]$UseConsoleCredentials, [switch]$NoWait) +Submit-TestLocalBox @PSBoundParameters +'@ | Set-Content "$fixture/deploy-localbox.ps1" + function Update-MhhToken {} + function Get-AzContext {} + function Get-LocalBoxConsoleGroupCredential {} + function Register-TestProviders {} + function Initialize-MhhHostedTagPolicy { param($SubscriptionId, $Location) } + function Initialize-MhhHostedDefender { param($SubscriptionId) } + function Get-AzResourceGroup { param($Name) } + function Get-AzResourceGroupDeployment { param($ResourceGroupName) } + function Get-AzResource { param($ResourceGroupName, $ResourceType) } + function Update-AzTag { param($ResourceId, $Operation, $Tag) } + function Get-AzResourceProvider { param($ProviderNamespace) } + function Get-AzRoleAssignment { param($ObjectId, $RoleDefinitionName, $Scope) } + function New-AzRoleAssignment { param($ObjectId, $RoleDefinitionName, $Scope) } + function Wait-LocalBoxDeployment { param($ResourceGroupName, $DeploymentName) } + function Submit-TestLocalBox { + param($SubscriptionId, $ResourceGroupName, $Location, $AzureLocalResourceProviderObjectId, $AzureLocalInstanceLocation, [switch]$UseConsoleCredentials, [switch]$NoWait) + } + function az {} + . "$root/labautomation/quota-helpers.ps1" + function Get-AzComputeResourceSku { param($Location) } + function Get-AzVMUsage { param($Location) } +} + +Describe 'Global LocalBox Console contract' { + It 'uses the exact supported global parameter contract and opt-in threshold' { + $errors = $null + $ast = [Management.Automation.Language.Parser]::ParseFile("$fixture/global-event-deploy.ps1", [ref]$null, [ref]$errors) + $errors.Count | Should -Be 0 + $parameters = $ast.ParamBlock.Parameters + @($parameters.Name.VariablePath.UserPath) -join ',' | Should -Be 'SubscriptionId,PreferredLocation,AllowedEntraUserIds' + $command = Get-Command "$fixture/global-event-deploy.ps1" + $command.Parameters.SubscriptionId.ParameterType | Should -Be ([string]) + $command.Parameters.PreferredLocation.ParameterType | Should -Be ([string[]]) + $command.Parameters.AllowedEntraUserIds.ParameterType | Should -Be ([string[]]) + foreach ($name in @('SubscriptionId', 'PreferredLocation')) { + ($command.Parameters[$name].Attributes | Where-Object { $_ -is [Management.Automation.ParameterAttribute] }).Mandatory | Should -BeTrue + } + ($command.Parameters.AllowedEntraUserIds.Attributes | Where-Object { $_ -is [Management.Automation.ParameterAttribute] }).Mandatory | Should -BeFalse + $parameters[1].DefaultValue.Extent.Text | Should -Be '@()' + $parameters[2].DefaultValue.Extent.Text | Should -Be '@()' + $defaults = Get-Content "$fixture/lab-defaults.json" -Raw + $defaults | Test-Json -SchemaFile "$root/../../../lab-defaults-schema.json" | Should -BeTrue + $config = $defaults | ConvertFrom-Json + $config.estimatedGlobalDeploymentDailyCostsUsd | Should -BeGreaterThan 5 + $config.estimatedGlobalDeploymentDailyCostsUsd | Should -Be 110 + $config.estimatedSharedDeploymentDailyCostsUsd | Should -Be 0 + } +} + +Describe 'Event-wide LocalBox orchestration' { + BeforeEach { + $state = @{ + Subscription = '10000000-0000-0000-0000-000000000001' + Events = [Collections.Generic.List[string]]::new() + Assignments = [Collections.Generic.List[object]]::new() + } + $users = @('20000000-0000-0000-0000-000000000001', '20000000-0000-0000-0000-000000000002') + $scope = "/subscriptions/$($state.Subscription)/resourceGroups/rg-localbox-shared" + Mock Update-MhhToken {} + Mock Get-AzContext { @{ Subscription = @{ Id = $state.Subscription } } } + Mock Get-LocalBoxConsoleGroupCredential { @{ HackboxCredential = @{ name = 'Lab Group ObjectId'; value = '30000000-0000-0000-0000-000000000001' } } } + Mock Register-TestProviders { $state.Events.Add('providers') } + Mock Initialize-MhhHostedTagPolicy { $state.Events.Add("tags:$SubscriptionId") } + Mock Initialize-MhhHostedDefender { $state.Events.Add("defender:$SubscriptionId") } + Mock Get-AzResourceGroup {} + Mock Get-AzResourceGroupDeployment { @{ DeploymentName = 'localbox-existing'; ProvisioningState = 'Succeeded'; Timestamp = Get-Date } } + Mock Get-AzResource { @{ Name = 'LocalBox-Client'; ResourceId = "$scope/providers/Microsoft.Compute/virtualMachines/LocalBox-Client" } } + Mock Update-AzTag {} + Mock Get-AzResourceProvider { @{ RegistrationState = 'Registered' } } + Mock Get-AzRoleAssignment {} + Mock New-AzRoleAssignment { $state.Assignments.Add(@{ User = $ObjectId; Role = $RoleDefinitionName; Scope = $Scope }) } + Mock Wait-LocalBoxDeployment { $state.Events.Add('wait') } + Mock Submit-TestLocalBox { + $state.Events.Add("deploy:$SubscriptionId") + @{ DeploymentName = 'localbox-new'; ProvisioningState = 'Submitted' } + } + Mock az { $global:LASTEXITCODE = 0; '40000000-0000-0000-0000-000000000001' } + Mock Start-Sleep {} + Mock Get-AzComputeResourceSku { @(@{ ResourceType = 'virtualMachines'; Name = 'Standard_DC2as_v5'; Restrictions = @() }, @{ ResourceType = 'virtualMachines'; Name = 'Standard_D4s_v5'; Restrictions = @() }) } + Mock Get-AzVMUsage { + foreach ($name in @('standardDCasv5Family', 'StandardDSv5Family', 'cores')) { + @{ Name = @{ Value = $name }; CurrentValue = 36; Limit = 200 } + } + } + Mock Set-MhhConfidentialComputeSelection {} + Mock Request-MhhComputeQuota { throw 'Unexpected quota request' } + } + It 'deploys once for an event and gives users from every subscription the same discovery scope' { + $result = @(& "$fixture/global-event-deploy.ps1" -SubscriptionId $state.Subscription -PreferredLocation spaincentral -AllowedEntraUserIds ($users + $users[0])) + Should -Invoke Submit-TestLocalBox -Times 1 -Exactly -ParameterFilter { + $SubscriptionId -eq $state.Subscription -and $ResourceGroupName -eq 'rg-localbox-shared' -and + $AzureLocalInstanceLocation -eq 'australiaeast' -and $UseConsoleCredentials -and $NoWait + } + $state.Events -join ',' | Should -Be "providers,tags:$($state.Subscription),defender:$($state.Subscription),deploy:$($state.Subscription),wait" + $state.Assignments.Count | Should -Be 6 + foreach ($user in $users) { + @($state.Assignments | Where-Object { $_.User -eq $user -and $_.Scope -eq $scope -and $_.Role -in @('Reader', 'Azure Stack HCI VM Contributor') }).Count | Should -Be 2 + @($state.Assignments | Where-Object { $_.User -eq $user -and $_.Scope -eq "/subscriptions/$($state.Subscription)" -and $_.Role -eq 'Security Reader' }).Count | Should -Be 1 + } + ($result.HackboxCredential | Where-Object name -eq 'Shared LocalBox Subscription ID').value | Should -Be $state.Subscription + ($result.HackboxCredential | Where-Object name -eq 'Shared LocalBox Resource Group ID').value | Should -Be $scope + $result | ConvertTo-Json -Depth 10 | Should -Not -Match 'password|arcdemo' + Should -Invoke Request-MhhComputeQuota -Times 0 + Should -Invoke Set-MhhConfidentialComputeSelection -Times 0 + foreach ($subscription in @($state.Subscription, '10000000-0000-0000-0000-000000000002')) { + $state.Subscription = $subscription + & "$fixture/shared-deploy-lab.ps1" -SubscriptionId $subscription -PreferredLocation spaincentral -AllowedEntraUserIds @($users[0]) + } + Should -Invoke Submit-TestLocalBox -Times 1 -Exactly + Should -Invoke Set-MhhConfidentialComputeSelection -Times 2 -Exactly + Should -Invoke Initialize-MhhHostedDefender -Times 3 -Exactly + Should -Invoke Initialize-MhhHostedTagPolicy -Times 3 -Exactly + } + It 'reuses running or succeeded deployments and existing grants on rerun' -TestCases @( + @{ ProvisioningState = 'Running' }; @{ ProvisioningState = 'Succeeded' } + ) { + param($ProvisioningState) + Mock Get-AzResourceGroup { @{ ResourceId = $scope } } + Mock Get-AzResourceGroupDeployment { @{ DeploymentName = 'localbox-existing'; ProvisioningState = $ProvisioningState } } + Mock Get-AzRoleAssignment { @{ RoleAssignmentId = 'existing' } } + & "$fixture/global-event-deploy.ps1" -SubscriptionId $state.Subscription -PreferredLocation spaincentral -AllowedEntraUserIds $users | Out-Null + Should -Invoke Submit-TestLocalBox -Times 0 + Should -Invoke New-AzRoleAssignment -Times 0 + Should -Invoke Wait-LocalBoxDeployment -Times 1 -ParameterFilter { $DeploymentName -eq 'localbox-existing' } + } + It 'tries the next host region without changing the global subscription' { + Mock Submit-TestLocalBox { throw 'SkuNotAvailable' } -ParameterFilter { $Location -eq 'spaincentral' } + & "$fixture/global-event-deploy.ps1" -SubscriptionId $state.Subscription -PreferredLocation @('spaincentral, swedencentral') -AllowedEntraUserIds $users | Out-Null + Should -Invoke Submit-TestLocalBox -Times 2 -Exactly + Should -Invoke Submit-TestLocalBox -Times 1 -ParameterFilter { $Location -eq 'swedencentral' -and $SubscriptionId -eq $state.Subscription } + } + It 'stops without publishing discovery credentials when fails' -TestCases @( + @{ Stage = 'tags' }; @{ Stage = 'defender' }; @{ Stage = 'roles' }; @{ Stage = 'wait' }; @{ Stage = 'deploy' }; @{ Stage = 'graph' } + ) { + param($Stage) + switch ($Stage) { + 'tags' { Mock Initialize-MhhHostedTagPolicy { throw 'Test failure' } } + 'defender' { Mock Initialize-MhhHostedDefender { throw 'Test failure' } } + 'roles' { Mock Get-AzRoleAssignment { throw 'Test failure' } } + 'wait' { Mock Wait-LocalBoxDeployment { throw 'Test failure' } } + 'deploy' { Mock Submit-TestLocalBox { throw 'Test failure' } } + 'graph' { Mock az { $global:LASTEXITCODE = 1 } } + } + $captured = [Collections.Generic.List[object]]::new() + { & "$fixture/global-event-deploy.ps1" -SubscriptionId $state.Subscription -PreferredLocation spaincentral -AllowedEntraUserIds $users | + ForEach-Object { $captured.Add($_) } } | Should -Throw + $captured.Count | Should -Be 0 + if ($Stage -in @('tags', 'defender', 'graph')) { Should -Invoke Submit-TestLocalBox -Times 0 } + } + It 'rejects the wrong subscription context before mutating resources' -TestCases @( + @{ Hook = 'global-event-deploy.ps1' }; @{ Hook = 'shared-deploy-lab.ps1' } + ) { + param($Hook) + { & "$fixture/$Hook" -SubscriptionId 'wrong-subscription' -PreferredLocation spaincentral -AllowedEntraUserIds $users } | Should -Throw '*context must target*' + Should -Invoke Register-TestProviders -Times 0 + Should -Invoke Submit-TestLocalBox -Times 0 + } + It 'rejects invalid event participant IDs before provisioning' { + { & "$fixture/global-event-deploy.ps1" -SubscriptionId $state.Subscription -PreferredLocation spaincentral -AllowedEntraUserIds @('invalid') } | Should -Throw '*valid event participant*' + Should -Invoke Register-TestProviders -Times 0 + } +} + +Describe 'Cross-subscription participant commands' { + It 'targets the global proxy while keeping team namespaces unique by participant subscription' -Skip:(-not (Get-Command bash -ErrorAction SilentlyContinue)) { + $guide = Get-Content "$root/walkthrough/challenge-06/solution-06.md" -Raw + $section = ($guide -split '### Task 5.3:')[1] -split '### Task 5.4:' | Select-Object -First 1 + $blocks = [regex]::Matches($section, '```bash\r?\n(.*?)```', 'Singleline') + $blocks.Count | Should -Be 2 + $harness = @' +set -e +PARTICIPANT_SUB="$1" +SHARED_SUB="$2" +export HOME="$3" +az() { + if [[ "$1 $2" == "account show" ]]; then + if [[ "$*" == *"tenantId"* ]]; then printf '%s\n' "test-tenant" + else printf '%s\n' "$PARTICIPANT_SUB"; fi + elif [[ "$1 $2" == "group show" ]]; then + [[ "$4" == "$PARTICIPANT_SUB" ]] || return 41 + elif [[ "$1 $2" == "connectedk8s show" || "$1 $2" == "connectedk8s proxy" ]]; then + [[ "$4" == "$SHARED_SUB" ]] || return 42 + if [[ "$2" == "proxy" ]]; then printf 'PROXY_OK\n'; fi + else + echo "Unexpected Azure command" >&2 + return 43 + fi +} +'@ + $scriptPath = Join-Path $TestDrive 'participant-proxy.sh' + $harness + "`n" + ($blocks | ForEach-Object { $_.Groups[1].Value } | Join-String -Separator "`n") | + Set-Content -LiteralPath $scriptPath + $shared = '10000000-0000-0000-0000-000000000001' + $namespaces = @( + foreach ($participant in @($shared, '10000000-0000-0000-0000-000000000002')) { + $homePath = Join-Path $TestDrive $participant + $output = "rg-labuser-same`n$shared`n" | & bash $scriptPath $participant $shared $homePath + $LASTEXITCODE | Should -Be 0 + $output | Should -Contain 'PROXY_OK' + $settings = Get-Content "$homePath/.config/microhack/challenge06.env" -Raw + $settings | Should -Match "export SUBSCRIPTION_ID=$participant" + $settings | Should -Match "export LOCALBOX_SUBSCRIPTION_ID=$shared" + [regex]::Match($settings, 'export TEAM_NAMESPACE=(\S+)').Groups[1].Value + } + ) + $namespaces[0] | Should -Not -BeNullOrEmpty + $namespaces[0] | Should -Not -Be $namespaces[1] + } +} diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/hosted-defender.tests.ps1 b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/hosted-defender.tests.ps1 index bfde60a08..47b199610 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/hosted-defender.tests.ps1 +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/hosted-defender.tests.ps1 @@ -131,10 +131,12 @@ Describe 'Hosted Defender setup' { } It 'wires Defender after hosted tag setup and before LocalBox deployment' { - $hook = Get-Content "$root/labautomation/shared-deploy-lab.ps1" -Raw + $hook = Get-Content "$root/labautomation/global-event-deploy.ps1" -Raw $hook | Should -Match "Join-Path \`$PSScriptRoot 'hosted-defender.ps1'" $call = $hook.IndexOf('Initialize-MhhHostedDefender -SubscriptionId $SubscriptionId') $call | Should -BeGreaterThan $hook.IndexOf('Initialize-MhhHostedTagPolicy -SubscriptionId') $call | Should -BeLessThan $hook.IndexOf("`$localBoxResourceGroupName = 'rg-localbox-shared'") + $shared = Get-Content "$root/labautomation/shared-deploy-lab.ps1" -Raw + $shared | Should -Match 'Initialize-MhhHostedDefender -SubscriptionId \$SubscriptionId' } } diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/hosted-tag-policy.tests.ps1 b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/hosted-tag-policy.tests.ps1 index ed8e0c902..53d03d126 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/hosted-tag-policy.tests.ps1 +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/hosted-tag-policy.tests.ps1 @@ -152,11 +152,13 @@ Describe 'Hosted control-tag setup' { Describe 'Hosted-only policy wiring' { It 'calls policy setup before any shared LocalBox deployment' { - $source = Get-Content "$root/labautomation/shared-deploy-lab.ps1" -Raw + $source = Get-Content "$root/labautomation/global-event-deploy.ps1" -Raw $source | Should -Match "Join-Path .+ 'hosted-tag-policy.ps1'" - $setup = $source.IndexOf('Initialize-MhhHostedTagPolicy -SubscriptionId $SubscriptionId -Location $selectedCandidate.Location') + $setup = $source.IndexOf('Initialize-MhhHostedTagPolicy -SubscriptionId $SubscriptionId -Location $PreferredLocation[0]') $setup | Should -BeGreaterThan -1 $setup | Should -BeLessThan $source.IndexOf('$localBoxResourceGroupName =') + Get-Content "$root/labautomation/shared-deploy-lab.ps1" -Raw | + Should -Match 'Initialize-MhhHostedTagPolicy -SubscriptionId \$SubscriptionId' } It 'does not wire hosted policies into BYOS setup or participant deployment' { diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/prepare-localbox.tests.ps1 b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/prepare-localbox.tests.ps1 index 122b66a0f..da16bb3a9 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/prepare-localbox.tests.ps1 +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/prepare-localbox.tests.ps1 @@ -1114,7 +1114,7 @@ Describe 'Console LocalBox credential isolation' { Should -Invoke New-MhhStablePassword -Times 0 } It 'keeps group metadata and deployment checks without password publication in the shared hook' { - $source = Get-Content "$PSScriptRoot/../../labautomation/shared-deploy-lab.ps1" -Raw + $source = Get-Content "$PSScriptRoot/../../labautomation/global-event-deploy.ps1" -Raw $source | Should -Match '-UseConsoleCredentials' $source | Should -Match 'Get-LocalBoxConsoleGroupCredential' $source | Should -Match 'Wait-LocalBoxDeployment -ResourceGroupName \$localBoxResourceGroupName -DeploymentName \$localBoxDeployment.DeploymentName' @@ -1146,7 +1146,7 @@ Describe 'LocalBox registration region contract' { It 'uses Australia East registration while preserving shared host-region selection' { $errors = $null $ast = [System.Management.Automation.Language.Parser]::ParseFile( - "$PSScriptRoot/../../labautomation/shared-deploy-lab.ps1", [ref]$null, [ref]$errors) + "$PSScriptRoot/../../labautomation/global-event-deploy.ps1", [ref]$null, [ref]$errors) $errors.Count | Should -Be 0 $ast.Extent.Text | Should -Match "-AzureLocalInstanceLocation 'australiaeast'" $ast.Extent.Text | Should -Match '-Location \$localBoxLocation' @@ -1176,7 +1176,7 @@ Describe 'Console LocalBox CLI failure propagation' { }, $true) . ([scriptblock]::Create($helper.Extent.Text)) $shared = [Management.Automation.Language.Parser]::ParseFile( - "$PSScriptRoot/../../labautomation/shared-deploy-lab.ps1", [ref]$null, [ref]$null) + "$PSScriptRoot/../../labautomation/global-event-deploy.ps1", [ref]$null, [ref]$null) $loop = $shared.Find({ param($node) $node -is [Management.Automation.Language.ForEachStatementAst] -and @@ -1711,7 +1711,7 @@ Describe 'LocalBox MetalLB preparation' { foreach ($path in @('../../labautomation/resource-providers.ps1', '../manual-setup/subscription-preparations/1-resource-providers.ps1')) { Get-Content "$PSScriptRoot/$path" -Raw | Should -Match '"Microsoft.KubernetesRuntime"' } - $shared = Get-Content "$PSScriptRoot/../../labautomation/shared-deploy-lab.ps1" -Raw + $shared = Get-Content "$PSScriptRoot/../../labautomation/global-event-deploy.ps1" -Raw $shared | Should -Match "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" $shared | Should -Match 'microhack-k8s-runtime-object-id.*\$runtimeObjectId\.ToString' $preparation = ${function:Invoke-LocalBoxPreparation}.ToString() diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md index 7aaf77f5b..a6d59391d 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md @@ -37,12 +37,32 @@ authorized test of real network access through the load-balancer address. The LocalBox registration-region contract is checked offline with `Invoke-Pester ./prepare-localbox.tests.ps1 -FullName 'LocalBox registration region contract*' -Output Detailed`. It verifies that both deployment entry points default registration to Australia East, -the shared hook passes that region independently of host-region selection, and +the global hook passes that region independently of host-region selection, and all four Challenge 1 policy parameter examples include the Australia East lab-only exception while retaining the four European regions. These checks make no Azure changes; a fresh Console deployment and participant VM creation remain required to validate regional service availability and effective inherited policies. +## Global event LocalBox checks + +Run `Invoke-Pester ./global-localbox.tests.ps1 -Output Detailed` for offline +coverage of the Console's exact global-hook signature, cost/schema opt-in, one +LocalBox deployment followed by two subscription preparations, all-event RBAC, +shared subscription/resource-group discovery outputs, regional fallback, reuse, +context guards and failure propagation without publishing success credentials. +The preparation, hosted-tag-policy, hosted-defender and shared-AKS suites also +cover the relocated wiring and unchanged per-subscription setup. + +For integration, re-import the content pack and provision a fresh event spanning +at least two subscriptions with organizer approval (the normal one-lab smoke test +cannot verify cross-subscription access). Confirm exactly one global job and +LocalBox, separate shared preparation jobs, identical global discovery credentials +for all labs, and a participant in the other subscription creating/managing their +own VM against the shared custom location. Verify reference-VM Defender visibility, +Entra AKS proxy access, distinct team namespaces and teardown ordering. These are +live integration gates; offline tests do not establish Console execution or +cross-subscription Azure resource-linking behavior. + ## Reference-VM checks Run `Invoke-Pester ./prepare-localbox.tests.ps1 -Output Detailed` for the offline diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/shared-aks.tests.ps1 b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/shared-aks.tests.ps1 index deafaff99..d5015abd9 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/shared-aks.tests.ps1 +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/shared-aks.tests.ps1 @@ -146,7 +146,8 @@ Describe 'Shared AKS infrastructure contract' { } $defaults = Get-Content "$root/labautomation/lab-defaults.json" -Raw | ConvertFrom-Json $defaults.estimatedDailyCostsUsd | Should -Be 45 - $defaults.estimatedSharedDeploymentDailyCostsUsd | Should -Be 110 + $defaults.estimatedSharedDeploymentDailyCostsUsd | Should -Be 0 + $defaults.estimatedGlobalDeploymentDailyCostsUsd | Should -Be 110 } It 'removes obsolete resources and credentials while retaining two labeled Ubuntu confidential nodes' { $template = Get-Content "$root/labautomation/sovereign-lab.bicep" -Raw diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/solution-06.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/solution-06.md index 80f976f3b..c3d3eb30e 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/solution-06.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/solution-06.md @@ -48,7 +48,7 @@ LocalBox runs as a nested lab environment hosted in Azure. In a production sover **Familiarize yourself with the LocalBox resources in Azure Portal to understand the hybrid architecture.** 1. Sign in to the [Azure Portal](https://portal.azure.com) -2. Navigate to the shared LocalBox resource group (e.g., `rg-localbox-shared`) +2. From the Console's Credentials tab, copy **Shared LocalBox Subscription ID** and **Shared LocalBox Resource Group ID**. Navigate to that exact shared resource group (`rg-localbox-shared` in hosted events), enabling its subscription in the portal filter if needed. One LocalBox serves the whole event; it may be in a different subscription from your assigned lab. For manual delivery, use the scope supplied by the facilitator. 3. Locate the **Azure Local** instance resource 4. Review the following connected resources: - **Arc Resource Bridge** - Connects Azure Local to Azure @@ -80,7 +80,7 @@ LocalBox runs as a nested lab environment hosted in Azure. In a production sover 💥 **Basic settings:** -1. **Subscription**: Select your subscription (e.g. **traininglab-01**) +1. **Subscription**: Select your assigned participant subscription (e.g. **traininglab-01**), not the shared LocalBox subscription unless they are the same 2. **Resource group**: Select your assigned resource group (e.g., `rg-labuser-0024`; use the exact name provided by the facilitator) 3. **Virtual machine name**: `labuserXX-vm-01` (replace XX with your own suffix) 4. **Security type**: Select **Standard** @@ -89,6 +89,8 @@ LocalBox runs as a nested lab environment hosted in Azure. In a production sover Verify that **Custom location** points to the shared LocalBox environment and **Virtual machine kind** is **Azure Local**. Leave **Storage path** set to **Choose automatically** unless the facilitator instructs otherwise. +Your VM remains in your own resource group even when the custom location, image and network are in the event's shared subscription. Verify the shared resource IDs instead of choosing a similarly named resource in another subscription. If the wizard does not expose the assigned shared resources, ask the facilitator to check access; do not deploy into the shared resource group or create another LocalBox. + > [!NOTE] > The selected custom location determines the Azure region used for the VM's management resources; it need not match your resource group's location or the Azure region hosting the LocalBox simulator. Fresh hosted deployments and the manual deployment default to **Australia East**, including LocalBox's staging storage account, after a hosted test encountered a West Europe eligibility rejection. This is a lab-only choice, not a European data-residency recommendation. Inspect the actual custom location in your event rather than assuming the latest default has changed an existing environment. > @@ -359,7 +361,7 @@ The shared AKS cluster and MetalLB load balancer are already prepared for you. I ### Task 5.1: Verify Your Cluster Access -1. In the Azure portal, open **`localbox-aks`** in **`rg-localbox-shared`**. +1. In the Azure portal, open **`localbox-aks`** in **`rg-localbox-shared`**, using the Console's **Shared LocalBox Subscription ID**. 2. Open **Access control (IAM) > Check access > View my access**. 3. Under **Current role assignments**, confirm that **Azure Arc Enabled Kubernetes Cluster User Role** applies to your workshop identity on this cluster. It can be assigned directly, through a group, or inherited from a parent scope. If it is missing, ask the facilitator; do not add role assignments yourself. @@ -392,20 +394,25 @@ If the extension, healthy workloads, or pool are missing, stop and contact the f ### Task 5.3: Start the Microsoft Entra Cluster Connect Proxy — Terminal 1 -Open a **Bash** terminal in your Sovereign Cloud Codespace. This assumes you are already signed in to Azure CLI with your workshop identity and have selected the workshop subscription. Retrieve the tenant and subscription IDs from the current CLI context, then enter your **assigned participant resource group**, not `rg-localbox-shared`, when prompted. Teammates sharing an assigned resource group share one namespace; coordinate deployment and cleanup. +Open a **Bash** terminal in your Sovereign Cloud Codespace. Sign in with your workshop identity and keep your **assigned participant subscription** selected. Retrieve its tenant and subscription IDs, then enter your **assigned participant resource group**, not `rg-localbox-shared`, and the separate **Shared LocalBox Subscription ID** from Console credentials. For manual delivery, use the LocalBox subscription supplied by the facilitator. Teammates sharing an assigned resource group share one namespace; coordinate deployment and cleanup. ```bash TENANT_ID=$(az account show --query tenantId --output tsv) || exit 1 SUBSCRIPTION_ID=$(az account show --query id --output tsv) || exit 1 read -r -p "Your assigned participant resource group: " PARTICIPANT_RG +read -r -p "Shared LocalBox Subscription ID: " LOCALBOX_SUBSCRIPTION_ID if [[ -z "$TENANT_ID" || -z "$SUBSCRIPTION_ID" || -z "$PARTICIPANT_RG" || + ! "$LOCALBOX_SUBSCRIPTION_ID" =~ ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ || "${PARTICIPANT_RG,,}" == "rg-localbox-shared" ]]; then - echo "Verify your current Azure CLI context and use your own assigned resource group." + echo "Verify your participant context, assigned resource group and Shared LocalBox Subscription ID." exit 1 fi printf 'Current tenant: %s\nCurrent subscription: %s\n' "$TENANT_ID" "$SUBSCRIPTION_ID" az group show --subscription "$SUBSCRIPTION_ID" --name "$PARTICIPANT_RG" \ --query '{name:name,id:id}' --output table || exit 1 +az connectedk8s show --subscription "$LOCALBOX_SUBSCRIPTION_ID" \ + --resource-group rg-localbox-shared --name localbox-aks \ + --query '{name:name,id:id}' --output table || exit 1 ``` Confirm the displayed tenant, subscription, and resource group match your workshop before continuing. The following derives a valid, bounded namespace from your resource group, adding a stable hash of the subscription and group to distinguish names that normalize alike. It saves **only nonsecret settings**, outside the repository, for the other terminals. Never commit or share your kubeconfig or authentication cache. @@ -423,13 +430,14 @@ umask 077 mkdir -p "$HOME/.config/microhack" "$HOME/.kube" printf 'export %s=%q\n' \ SUBSCRIPTION_ID "$SUBSCRIPTION_ID" PARTICIPANT_RG "$PARTICIPANT_RG" \ + LOCALBOX_SUBSCRIPTION_ID "$LOCALBOX_SUBSCRIPTION_ID" \ TEAM_NAMESPACE "$TEAM_NAMESPACE" AKS_CONTEXT "$AKS_CONTEXT" \ AKS_KUBECONFIG "$AKS_KUBECONFIG" MANIFEST "$MANIFEST" \ > "$HOME/.config/microhack/challenge06.env" source "$HOME/.config/microhack/challenge06.env" printf 'Team namespace: %s\n' "$TEAM_NAMESPACE" az connectedk8s proxy \ - --subscription "$SUBSCRIPTION_ID" \ + --subscription "$LOCALBOX_SUBSCRIPTION_ID" \ --resource-group rg-localbox-shared --name localbox-aks \ --file "$AKS_KUBECONFIG" --kube-context "$AKS_CONTEXT" --port 47011 ``` diff --git a/99-MicroHack-Template/labautomation/README.md b/99-MicroHack-Template/labautomation/README.md index 2d1d9ce18..0331b1a9c 100644 --- a/99-MicroHack-Template/labautomation/README.md +++ b/99-MicroHack-Template/labautomation/README.md @@ -11,6 +11,9 @@ optional script, [shared-deploy-lab.ps1](shared-deploy-lab.ps1), runs once per subscription *ahead of* that fan-out to lay down whatever the individual labs build on. See [Optional hook](#optional-hook-shared-deploy-labps1). +For resources shared across *all* subscriptions in an event, use the opt-in +[global event hook](#optional-hook-global-event-deployps1), which runs before the +per-subscription shared hooks. **One deployment fans out into N identical labs, one per participant.** The platform runs *your one script* many times over, in a separate process each @@ -27,7 +30,10 @@ flowchart TD A[Deployment start] --> B[Read lab-defaults.json] B --> C["Reserve the event's subscriptions"] C --> D["Pre-provision each participant's scope
subscription / resource group
+ user RBAC"] - D --> SH["shared-deploy-lab.ps1 (optional)
once per subscription, in parallel
receives all its participants"] + D --> GE["global-event-deploy.ps1 (opt-in)
once per event in lowest-GUID subscription
receives all event participants"] + GE --> GG{"Global stage
succeeded or not enabled?"} + GG -- no --> X + GG -- yes --> SH["shared-deploy-lab.ps1 (optional)
once per subscription, in parallel
receives all its participants"] SH --> G{"Shared stage
succeeded?"} G -- no --> X["No deploy-lab.ps1 runs at all
deployment marked failed"] @@ -43,6 +49,7 @@ flowchart TD G -- yes --> LN SH -. HackboxCredential for every lab in that subscription .-> CR + GE -. HackboxCredential for every lab in the event .-> CR L1 -. HackboxCredential .-> CR L2 -. HackboxCredential .-> CR LN -. HackboxCredential .-> CR @@ -94,6 +101,7 @@ Key points for integration: - [Passwords and re-runs](#passwords-and-re-runs) - [Cleaning up](#cleaning-up) - [Local testing](#local-testing) + - [Optional hook: `global-event-deploy.ps1`](#optional-hook-global-event-deployps1) - [Optional hook: `shared-deploy-lab.ps1`](#optional-hook-shared-deploy-labps1) - [Where it fits in the pipeline](#where-it-fits-in-the-pipeline) - [Shared hook parameter contract](#shared-hook-parameter-contract) @@ -121,6 +129,7 @@ Key points for integration: ```text labautomation/ ├── lab-defaults.json # Platform-facing configuration (required if folder exists) +├── global-event-deploy.ps1 # Opt-in: once per event, before the shared hooks ├── shared-deploy-lab.ps1 # Optional: runs once per subscription, before the labs ├── deploy-lab.ps1 # Optional: per-user Azure deployment script ├── main.bicep # Optional: Bicep/ARM template your script deploys (Recommended) @@ -131,6 +140,8 @@ labautomation/ automatically by file name, no registration step is required. Anything else in the folder is yours; reference it from your script with `Join-Path $PSScriptRoot ''`. +The global event hook additionally requires the cost opt-in described below; +re-import the content pack after adding or enabling it. ## `lab-defaults.json` @@ -163,6 +174,7 @@ Only include fields you want to set; missing fields fall back to platform defaul | `preferredLocation` | `string` | Comma-separated Azure regions, **in priority order** (e.g. `"swedencentral, norwayeast"`). The first region is used as the default deployment location. List multiple regions so your script can fall back if the first region doesn't support every service your lab needs; see [authoring guidelines](#authoring-guidelines). | | `estimatedDailyCostsUsd` | `number` (≥ 0) | Estimated daily cost per lab environment in USD. Based on the resources created by `deploy-lab.ps1`. Used for cost forecasting in the lab lifecycle wizard. | | `estimatedSharedDeploymentDailyCostsUsd` | `number` (≥ 0) | Estimated daily cost in USD of resources created once per subscription by `shared-deploy-lab.ps1`. Cost forecasting multiplies this value by the subscription count: labs divided by `labsPerSubscription`, rounded up, for resource-group deployments; one subscription per lab for `subscription` deployments. Defaults to `0` when absent. | +| `estimatedGlobalDeploymentDailyCostsUsd` | `number` (≥ 0) | Estimated daily cost in USD of resources created once per event by `global-event-deploy.ps1`, not multiplied by subscription count. Must be **greater than 5**, with a matching hook signature, to enable global deployment. | ### Cost forecasting formula @@ -185,6 +197,7 @@ The final estimated cost in USD is: \underbrace{\left(\text{estimatedDailyCostsUsd} + \textstyle\sum \text{groupSurcharge}\right)}_{\text{per-lab}} + \text{subs} \times \underbrace{\text{estimatedSharedDeploymentDailyCostsUsd}}_{\text{per-subscription}} ++ \underbrace{\text{estimatedGlobalDeploymentDailyCostsUsd}}_{\text{per-event, when enabled}} \right) ``` @@ -192,6 +205,7 @@ Here, `labs` is the number of lab environments, `days` is the deployment duratio and $\sum \text{groupSurcharge}$ represents the license costs for `groups` per lab. Per-lab costs and group surcharges are multiplied by `labs`; shared deployment costs are multiplied by `subs` because `shared-deploy-lab.ps1` runs once per subscription. +Enabled global deployment costs are added once per day for the whole event. ### `groups`: supported values @@ -633,6 +647,34 @@ required parameters from the [contract](#required-parameter-contract): > They are not identical to the platform versions, but they are sufficient for > testing your script logic and parameter contract. +## Optional hook: `global-event-deploy.ps1` + +Place this file beside `deploy-lab.ps1` in the content pack's lab folder using +exactly this parameter contract: + +```powershell +param( + [Parameter(Mandatory=$true)] [string]$SubscriptionId, + [Parameter(Mandatory=$true)] [string[]]$PreferredLocation = @(), + [Parameter(Mandatory=$false)] [string[]]$AllowedEntraUserIds = @() +) +``` + +Set `estimatedGlobalDeploymentDailyCostsUsd` in `lab-defaults.json` to a value +**greater than 5**, then **re-import the content pack**. If the signature does not +match or the cost is 5 or less, the Console skips the hook and logs a warning. + +The Console runs it **once per event**, in the event's **lowest-GUID +subscription**, with **all event lab-user object IDs**. It must finish before +any `shared-deploy-lab.ps1` invocation. Failure stops the entire lab deployment. +The hook does not pick a different subscription based on regional quota. + +Every `HackboxCredential` it outputs is delivered to **every lab user in the +event**. Publish nonsecret resource IDs for discovery across subscriptions; do not +publish organizer-only credentials. Grant the needed shared-resource permissions +to all intended users, preserve safe reruns, and remove the same resource creation +from the per-subscription hook to avoid deploying duplicate infrastructure. + ## Optional hook: `shared-deploy-lab.ps1` `deploy-lab.ps1` deliberately only ever sees one lab. That is what makes it safe @@ -791,8 +833,11 @@ as in [Local testing](#local-testing); only the invocation differs: Pass `-PreferredLocation` as a comma-separated string or as an array, matching however you declared it. Run the scripts in the real order — -`shared-deploy-lab.ps1` first, then `deploy-lab.ps1` — if you want to reproduce -what the platform does. Pass more than one object ID to `-AllowedEntraUserIds` +`global-event-deploy.ps1` once when enabled, then `shared-deploy-lab.ps1` per +subscription, then `deploy-lab.ps1` per lab — if you want to reproduce +what the platform does. Use the global host context and all event users for the +global hook; use each subscription's context and users for its shared hook. +Pass more than one object ID to `-AllowedEntraUserIds` to check that your RBAC really covers every participant. ## Available helper cmdlets @@ -1503,5 +1548,3 @@ resource names unique inside the subscription. - **Do not call `Connect-AzAccount`, `Set-AzContext` or `az login`.** The platform manages authentication and subscription context, and keeps each lab's Azure CLI login isolated for you. - - diff --git a/lab-defaults-schema.json b/lab-defaults-schema.json index be7e72bbb..7440fe1ed 100644 --- a/lab-defaults-schema.json +++ b/lab-defaults-schema.json @@ -4,6 +4,11 @@ "description": "Smart defaults for the lab lifecycle wizard. Place as lab-defaults.json in hackcontent//lab/. Only include fields you want to override — missing fields are ignored.", "type": "object", "properties": { + "$schema": { + "type": "string", + "format": "uri", + "description": "Optional URI of the lab-defaults JSON schema." + }, "groups": { "type": "array", "items": { "type": "string" }, @@ -29,6 +34,11 @@ "minimum": 0, "description": "Estimated daily cost per lab environment in USD: the running cost of the resources deploy-lab.ps1 creates. Used for cost forecasting in the lab lifecycle wizard. Defaults to 25 when absent or < 1." }, + "estimatedGlobalDeploymentDailyCostsUsd": { + "type": "number", + "minimum": 0, + "description": "Estimated daily cost in USD of resources created once per event by global-event-deploy.ps1, not multiplied by subscription count. The Console only runs this hook when its parameter contract matches and this value is greater than 5; re-import the content pack after enabling it." + }, "estimatedSharedDeploymentDailyCostsUsd": { "type": "number", "minimum": 0, From ed88ce806d4a4b929153191061b5242de2587bfe Mon Sep 17 00:00:00 2001 From: Jan Egil Ring Date: Sat, 24 Oct 2026 06:55:00 +0000 Subject: [PATCH 2/3] Reuse global Security Reader grants during participant setup Avoid RoleAssignmentExists for participants in the global LocalBox subscription by preserving existing direct grants. Keep default creation in other subscriptions, fail on lookup errors, and cover recovery with focused regression tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../labautomation/deploy-lab.ps1 | 16 ++++ .../labautomation/main.bicep | 6 +- .../resources/hosted-events/readme.md | 8 ++ .../resources/tests/global-localbox.tests.ps1 | 75 ++++++++++++++++++- .../resources/tests/readme.md | 4 + 5 files changed, 106 insertions(+), 3 deletions(-) diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/deploy-lab.ps1 b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/deploy-lab.ps1 index ef1c3dbe1..bc01d6568 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/deploy-lab.ps1 +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/deploy-lab.ps1 @@ -166,6 +166,21 @@ $sovereignLabResult = Invoke-MhhDeploymentWithRegionFallback ` $deploymentName = "lab-$stableHash" Write-Host "Assigning subscription-scoped lab RBAC to participant $($AllowedEntraUserIds[0])..." +Update-MhhToken | Out-Null +$securityReaderScope = "/subscriptions/$SubscriptionId" +$securityReaderRoleId = '39bc4728-0917-49c7-9d2c-d95423bc2eb4' +$existingSecurityReader = @(Get-AzRoleAssignment ` + -ObjectId $AllowedEntraUserIds[0] ` + -RoleDefinitionId $securityReaderRoleId ` + -Scope $securityReaderScope ` + -ErrorAction Stop | Where-Object { + $_.ObjectId -ieq $AllowedEntraUserIds[0] -and + $_.Scope -ieq $securityReaderScope -and + $_.RoleDefinitionId -ieq $securityReaderRoleId + }) +if ($existingSecurityReader.Count -gt 0) { + Write-Host 'Reusing the existing subscription Security Reader assignment without changing its ID.' +} New-AzSubscriptionDeployment ` -Name $deploymentName ` -Location $effectiveLocation ` @@ -173,6 +188,7 @@ New-AzSubscriptionDeployment ` -TemplateParameterObject @{ userObjectId = $AllowedEntraUserIds[0] resourceGroupName = $ResourceGroupName + assignSecurityReader = ($existingSecurityReader.Count -eq 0) } | Out-Null @{"HackboxCredential" = @{ name = "Sovereign Lab Region"; value = $sovereignLabResult.LocationUsed; note = "Region selected after capacity checks" }} diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/main.bicep b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/main.bicep index d5d6baff1..b1caa80c9 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/main.bicep +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/labautomation/main.bicep @@ -19,11 +19,14 @@ param userObjectId string @description('Name of the participant resource group (created by the platform) to grant resource-group-scoped RBAC roles in.') param resourceGroupName string +@description('Create the subscription Security Reader assignment only when the participant does not already have a direct assignment at this scope.') +param assignSecurityReader bool = true + // Built-in role definition IDs (stable across all Azure subscriptions) var securityReaderRoleId = '39bc4728-0917-49c7-9d2c-d95423bc2eb4' var resourcePolicyContributorRoleId = '36243c78-bf99-498c-9df9-86d9f8d28608' -resource securityReaderAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = { +resource securityReaderAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = if (assignSecurityReader) { name: guid(subscription().id, userObjectId, securityReaderRoleId) properties: { principalId: userObjectId @@ -50,4 +53,3 @@ module resourceGroupRbac 'rg-rbac.bicep' = { userObjectId: userObjectId } } - diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md index 82713252f..1c6ba16e8 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md @@ -40,6 +40,14 @@ reference-VM security inspection. No participant Owner, host login or password i granted by this hook. Existing shared VM/AKS access remains a workshop trust boundary, not per-participant isolation. +Participant RBAC setup reuses an existing direct Security Reader assignment on +its subscription, including the grant made by the global hook for participants +in the LocalBox host subscription. It does not recreate the same grant under a +different role-assignment ID. If an earlier run failed with +`RoleAssignmentExists` during `lab-*` deployment, re-import the corrected branch +and retry the event deployment; do not delete the global grants or LocalBox. +An assignment lookup failure stops setup rather than treating access as absent. + Participant VMs still belong in their own assigned subscription/resource group, using the shared custom location, image, network and storage. Keep the participant subscription separate from the LocalBox subscription when following Challenge 6. diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/global-localbox.tests.ps1 b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/global-localbox.tests.ps1 index 0ca0528be..a70f64c34 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/global-localbox.tests.ps1 +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/global-localbox.tests.ps1 @@ -24,7 +24,7 @@ Submit-TestLocalBox @PSBoundParameters function Get-AzResource { param($ResourceGroupName, $ResourceType) } function Update-AzTag { param($ResourceId, $Operation, $Tag) } function Get-AzResourceProvider { param($ProviderNamespace) } - function Get-AzRoleAssignment { param($ObjectId, $RoleDefinitionName, $Scope) } + function Get-AzRoleAssignment { param($ObjectId, $RoleDefinitionName, $RoleDefinitionId, $Scope) } function New-AzRoleAssignment { param($ObjectId, $RoleDefinitionName, $Scope) } function Wait-LocalBoxDeployment { param($ResourceGroupName, $DeploymentName) } function Submit-TestLocalBox { @@ -222,3 +222,76 @@ az() { $namespaces[0] | Should -Not -Be $namespaces[1] } } + +Describe 'Participant Security Reader reuse after global setup' { + BeforeAll { + $source = Get-Content "$root/labautomation/deploy-lab.ps1" -Raw + $start = $source.IndexOf('Write-Host "Assigning subscription-scoped lab RBAC') + $end = $source.IndexOf('@{"HackboxCredential" = @{ name = "Sovereign Lab Region"') + if ($start -lt 0 -or $end -le $start) { throw 'Participant RBAC block was not found.' } + $rbacBlock = Join-Path $fixture 'participant-rbac.ps1' + $source.Substring($start, $end - $start) | Set-Content -LiteralPath $rbacBlock + function New-AzSubscriptionDeployment { param($Name, $Location, $TemplateFile, $TemplateParameterObject) } + } + BeforeEach { + $SubscriptionId = '10000000-0000-0000-0000-000000000001' + $AllowedEntraUserIds = @('20000000-0000-0000-0000-000000000001') + $ResourceGroupName = 'rg-labuser-test' + $deploymentName = 'lab-test' + $effectiveLocation = 'spaincentral' + $existing = @{ + ObjectId = $AllowedEntraUserIds[0] + Scope = "/subscriptions/$SubscriptionId" + RoleDefinitionId = '39bc4728-0917-49c7-9d2c-d95423bc2eb4' + RoleAssignmentId = "/subscriptions/$SubscriptionId/providers/Microsoft.Authorization/roleAssignments/c868cdb5-b1ed-4d61-8aea-d192f49de4e5" + } + Mock Update-MhhToken {} + Mock Get-AzRoleAssignment { $existing } + Mock New-AzSubscriptionDeployment {} + } + It 'preserves the global grant instead of redeploying the same role under the Bicep GUID' { + & $rbacBlock + Should -Invoke Get-AzRoleAssignment -Times 1 -Exactly -ParameterFilter { + $Scope -eq "/subscriptions/$SubscriptionId" -and + $ObjectId -eq $AllowedEntraUserIds[0] -and + $RoleDefinitionId -eq '39bc4728-0917-49c7-9d2c-d95423bc2eb4' + } + Should -Invoke New-AzSubscriptionDeployment -Times 1 -Exactly -ParameterFilter { + $TemplateParameterObject.assignSecurityReader -eq $false -and + $TemplateParameterObject.userObjectId -eq $AllowedEntraUserIds[0] -and + $TemplateParameterObject.resourceGroupName -eq $ResourceGroupName + } + } + It 'still grants Security Reader in another subscription where no grant exists' { + Mock Get-AzRoleAssignment { @() } + & $rbacBlock + Should -Invoke New-AzSubscriptionDeployment -Times 1 -Exactly -ParameterFilter { + $TemplateParameterObject.assignSecurityReader -eq $true + } + } + It 'does not skip the grant based on a different ' -TestCases @( + @{ Field = 'Scope'; Value = '/subscriptions/other' } + @{ Field = 'Scope'; Value = '/subscriptions/10000000-0000-0000-0000-000000000001/resourceGroups/child' } + @{ Field = 'ObjectId'; Value = 'another-user' } + @{ Field = 'RoleDefinitionId'; Value = 'another-role' } + ) { + param($Field, $Value) + $existing[$Field] = $Value + & $rbacBlock + Should -Invoke New-AzSubscriptionDeployment -Times 1 -Exactly -ParameterFilter { + $TemplateParameterObject.assignSecurityReader -eq $true + } + } + It 'fails closed when existing role assignments cannot be read' { + Mock Get-AzRoleAssignment { throw 'AuthorizationFailed' } + { & $rbacBlock } | Should -Throw '*AuthorizationFailed*' + Should -Invoke New-AzSubscriptionDeployment -Times 0 + } + It 'keeps the default grant and other RBAC resources unchanged in the template' { + $template = Get-Content "$root/labautomation/main.bicep" -Raw + $template | Should -Match 'param assignSecurityReader bool = true' + $template | Should -Match "resource securityReaderAssignment [^\r\n]+ = if \(assignSecurityReader\)" + $template | Should -Match "resource resourcePolicyContributorAssignment [^\r\n]+ = \{" + $template | Should -Match "module resourceGroupRbac 'rg-rbac.bicep' = \{" + } +} diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md index a6d59391d..db102a921 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md @@ -50,6 +50,10 @@ coverage of the Console's exact global-hook signature, cost/schema opt-in, one LocalBox deployment followed by two subscription preparations, all-event RBAC, shared subscription/resource-group discovery outputs, regional fallback, reuse, context guards and failure propagation without publishing success credentials. +Participant RBAC regressions cover reuse of the global Security Reader grant, +creation when absent, rejecting unrelated-scope/user/role matches, and read-error +propagation. This prevents `RoleAssignmentExists` when the global hook's +assignment ID differs from the participant Bicep template's deterministic ID. The preparation, hosted-tag-policy, hosted-defender and shared-AKS suites also cover the relocated wiring and unchanged per-subscription setup. From 966a87971e4c5cf7786af8b66c65838ba55d7b19 Mon Sep 17 00:00:00 2001 From: Jan Egil Ring Date: Sun, 25 Oct 2026 05:02:34 +0000 Subject: [PATCH 3/3] Document successful cross-subscription LocalBox VM creation Add participant subscription-selection guidance, TEST4 deployment screenshots and integration evidence, and the observed 4h24m preparation duration with readiness caveats. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../resources/hosted-events/readme.md | 14 ++++++++++ .../img/preparation-duration-test4.png | Bin 0 -> 130477 bytes .../resources/localbox/readme.md | 17 +++++++++++++ .../resources/tests/readme.md | 24 ++++++++++++++++++ .../localbox-cross-subscription-basics.png | Bin 0 -> 159729 bytes .../localbox-cross-subscription-complete.png | Bin 0 -> 31834 bytes .../walkthrough/challenge-06/solution-06.md | 9 ++++++- 7 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/img/preparation-duration-test4.png create mode 100644 03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/images/localbox-cross-subscription-basics.png create mode 100644 03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/images/localbox-cross-subscription-complete.png diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md index 1c6ba16e8..0d700e481 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/hosted-events/readme.md @@ -54,6 +54,13 @@ subscription separate from the LocalBox subscription when following Challenge 6. AKS proxy connections target the **LocalBox subscription**; team namespaces remain unique by participant subscription plus resource group. +Portal VM creation across subscriptions was successfully tested as `labuser-0027` +on 25 October 2026, using its original RG in traininglab-12 with LocalBox in +traininglab-59. The wizard defaulted to the host subscription: remind participants +to change **Subscription** to their assigned subscription before selecting their +own RG. Keep the existing single participant-RG workflow; see +[test evidence and remaining checks](../tests/readme.md#observed-test4-integration-results). + **Capacity and migration:** one instance now carries the entire event's nested VMs, reference VM, AKS workers and service IP allocations. Validate memory, storage and address-pool headroom for the planned event size; the cost reduction does not @@ -95,6 +102,13 @@ releasing a subscription. This hook is not part of manual/BYOS preparation. The global hook submits `localbox-*` in `rg-localbox-shared` in the published **Shared LocalBox Subscription ID**, then waits up to six hours for ARM completion, refreshing its Console authentication while polling. It does not publish LocalBox administrator credentials. A Client VM appearing after roughly 15-20 minutes confirms only that deployment has started. Full nested Azure Local provisioning can take 4-6 hours and must still be checked separately. +The subsequent preparation script took **4 hours 24 minutes 26 seconds** in the +TEST4 run reported on 25 October 2026, including reference-VM creation. This is +additional post-provisioning time, not the total event deployment duration or a +guaranteed runtime. MDE was still Pending when preparation finished. See the +[timing evidence and planning guidance](../localbox/readme.md#preparation-time); +allow time for both preparation and later assessments. + 1. Inspect the Azure deployment, Client bootstrap logs and Azure Local/Arc status. Resolve failures before proceeding. 2. If the Client password is unknown, an authorized event lead/coach uses the Azure VM's **Help > Reset password** to set a known password for the `arcdemo` host account, then connects to `LocalBox-Client` through Bastion. Do not expose this password through participant credentials or job logs. A host password reset does not change the nested-node Windows credentials. See [LocalBox credentials](#localbox-credentials). 3. Copy **Lab Group ObjectId** from the Console's **Credentials** tab for the preparation prompt or `-AksAdminGroupObjectId`. Confirm that intended Azure lab identities/coaches are members; see the group dependency below. diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/img/preparation-duration-test4.png b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/img/preparation-duration-test4.png new file mode 100644 index 0000000000000000000000000000000000000000..568420e5da70605a2127a90f41cb27337933e543 GIT binary patch literal 130477 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 C1;y3? literal 0 HcmV?d00001 diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/readme.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/readme.md index 110139b61..ce29cc29a 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/readme.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/localbox/readme.md @@ -2,6 +2,23 @@ Run [prepare-localbox.ps1](../prepare-localbox.ps1) **inside LocalBox-Client**, after Jumpstart has finished deploying the nested Azure Local cluster. This is common to hosted and manual delivery. It does not deploy a new LocalBox or replace the existing Azure AKS/K3s labs. +## Preparation time + +In a test run reported on **25 October 2026**, PowerShell history recorded +**4 hours 24 minutes 26 seconds** for `./prepare-localbox.ps1`, including the +default reference VM. This is the observed duration of the whole preparation +command, not an image-download or reference-VM-only measurement, and not a +guaranteed runtime. + +PowerShell history showing prepare-localbox.ps1 completed in 4:24:26.111, with the reference VM Running, Arc Connected and MDE Pending. + +Budget this post-provisioning work **in addition to** the initial LocalBox and +nested Azure Local deployment. At preparation completion, the reference VM was +**Running**, **Arc Connected**, and **MDE Pending**; health checks and Defender/ +Update Manager readiness still had to be verified separately. Start provisioning +at least **24 hours before the event**, complete preparation the day before, and +verify readiness rather than treating the elapsed time as a guarantee. + ## Prerequisites - Elevated PowerShell 7 on `LocalBox-Client` and an installed Azure CLI. Preparation automatically installs missing `stack-hci-vm`, `customlocation` and `aksarc` extensions, including during `-WhatIf`, verifies their versions and leaves existing versions unchanged. Internet access to the extension downloads is required; installation failure stops preparation before infrastructure changes. Record the versions printed by the script for your event. diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md index db102a921..869d68ef4 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/resources/tests/readme.md @@ -67,6 +67,30 @@ Entra AKS proxy access, distinct team namespaces and teardown ordering. These ar live integration gates; offline tests do not establish Console execution or cross-subscription Azure resource-linking behavior. +### Observed TEST4 integration results + +The 24 October 2026 Console log for `NO-SovCloud-Oct24-TEST4` showed one completed +global deployment in **traininglab-59**, completed subscription preparation in +**traininglab-12** and **traininglab-59**, and **4/4** completed participant jobs. +The two participants in the host subscription reused their existing Security +Reader grants without a role-assignment collision. + +On **25 October 2026**, the organizer signed in as **labuser-0027** and successfully +created VM **labuser-0027** in **traininglab-12 / rg-labuser-0027**, using LocalBox +in **traininglab-59 / rg-localbox-shared**. The portal initially selected the +LocalBox subscription; switching it to the participant subscription exposed the +participant's original resource group while retaining the shared custom location +and image. See the [wizard example](../../walkthrough/challenge-06/images/localbox-cross-subscription-basics.png). + +Completed Azure Local VM deployment for labuser-0027 in traininglab-12 and rg-labuser-0027. + +This is live evidence for **portal VM creation across subscriptions** with the +tested participant permissions, not blanket validation of every Azure CLI +operation. Guest management was selected during creation, but connected guest +status, Defender onboarding/assessments, Update Manager results, AKS proxy access +and teardown still require their separate checks. No second participant resource +group or shared-RG VM placement is needed for the tested creation flow. + ## Reference-VM checks Run `Invoke-Pester ./prepare-localbox.tests.ps1 -Output Detailed` for the offline diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/images/localbox-cross-subscription-basics.png b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/images/localbox-cross-subscription-basics.png new file mode 100644 index 0000000000000000000000000000000000000000..be0e5af44c298828c29c38b3fc443abd40c92a9f GIT binary patch literal 159729 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

-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

p%`q*5WHs)N`oaXHf|^R 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 literal 0 HcmV?d00001 diff --git a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/solution-06.md b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/solution-06.md index c3d3eb30e..6183ac7fa 100644 --- a/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/solution-06.md +++ b/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud/walkthrough/challenge-06/solution-06.md @@ -85,8 +85,15 @@ LocalBox runs as a nested lab environment hosted in Azure. In a production sover 3. **Virtual machine name**: `labuserXX-vm-01` (replace XX with your own suffix) 4. **Security type**: Select **Standard** +> [!IMPORTANT] +> When you start the wizard from the shared LocalBox cluster, **Subscription may default to the LocalBox host subscription**. Change it to your assigned participant subscription first, then select your own resource group where you have Owner access. For example, the tested participant `labuser-0027` changed **traininglab-59** (LocalBox) to **traininglab-12**, then selected **rg-labuser-0027**. Use your own assigned values, not these example names. + ![Azure Arc VM creation Basics showing the assigned resource group, VM name, Standard security, and automatic storage selection](./images/localbox_02.png) +Azure Local VM creation from the shared cluster with traininglab-12 and rg-labuser-0027 selected, retaining the shared jumpstart custom location and Windows Server 2025 image. + +*Cross-subscription example: the VM's subscription and resource group belong to the participant; the custom location remains the shared LocalBox location.* + Verify that **Custom location** points to the shared LocalBox environment and **Virtual machine kind** is **Azure Local**. Leave **Storage path** set to **Choose automatically** unless the facilitator instructs otherwise. Your VM remains in your own resource group even when the custom location, image and network are in the event's shared subscription. Verify the shared resource IDs instead of choosing a similarly named resource in another subscription. If the wizard does not expose the assigned shared resources, ask the facilitator to check access; do not deploy into the shared resource group or create another LocalBox. @@ -96,7 +103,7 @@ Your VM remains in your own resource group even when the custom location, image > > In production, the workload runs on the Azure Local hardware, while Azure stores management data in the registration region. In this lab, that hardware is simulated inside Azure-hosted LocalBox. Registration in Australia East does **not** mean that the nested VM's compute has moved there, but the management-data location still matters for sovereignty and Azure Policy. See [Azure Local regions](https://learn.microsoft.com/azure/azure-local/concepts/system-requirements-23h2#azure-requirements) and [Azure Local data handling](https://learn.microsoft.com/azure/azure-local/faq#does-my-data-stored-on-azure-local-get-sent-to-the-cloud). -The creation screenshots use `labuser24-vm-01`, while the validation and management screenshots use `labuser23-vm-01`. These are examples from different participants; create and use only your own VM throughout the challenge. +The screenshots show examples from different participants, including `labuser24-vm-01`, `labuser23-vm-01` and the cross-subscription test VM `labuser-0027`. Create and use only your own VM throughout the challenge. 5. **Image**: Select the available gallery image **2025-datacenter-azure-edition-smalldisk-01** (Windows Server 2025) 6. **Virtual processor count**: 2