Azure Citadel
  • Blogs

  • ARM
  • Azure Arc
    • Overview
    • Azure Arc-enabled Servers
      • Prereqs
      • Scenario
      • Hack Overview
      • Azure Landing Zone
      • Arc Pilot resource group
      • Azure Monitoring Agent
      • Additional policy assignments
      • Access your on prem VMs
      • Create onboarding scripts
      • Onboarding using scripts
      • Inventory
      • Monitoring
      • SSH
      • Windows Admin Center
      • Governance
      • Custom Script Extension
      • Key Vault Extension
      • Managed Identity
    • Azure Arc-enabled Kubernetes
      • Prereqs
      • Background
      • Deploy Cluster
      • Connect to Arc
      • Enable GitOps
      • Deploy Application
      • Enable Azure AD
      • Enforce Policy
      • Enable Monitoring
      • Enable Azure Defender
      • Enable Data Services
      • Enable Application Delivery
    • Useful Links
  • Azure CLI
    • Install
    • Get started
    • JMESPATH queries
    • Integrate with Bash
  • Azure Landing Zones
    • Prereqs
    • Day 1
      • Azure Baristas
      • Day 1 Challenge
    • Day 2
      • Example
      • Day 2 Challenge
    • Day 3
      • Day 3 Challenge
    • Useful Links
  • Azure Policy
    • Azure Policy Basics
      • Policy Basics in the Azure Portal
      • Creating Policy via the CLI
      • Deploy If Not Exists
      • Management Groups and Initiatives
    • Creating Custom Policies
      • Customer scenario
      • Policy Aliases
      • Determine the logic
      • Create the custom policy
      • Define, assign and test
  • Azure Stack HCI
    • Overview
    • Useful Links
    • Updates from Microsoft Ignite 2022
  • Marketplace
    • Introduction
      • Terminology
      • Offer Types
    • Partner Center
    • Offer Type
    • Publish a VM Offer HOL
      • Getting Started
      • Create VM Image
      • Test VM Image
      • VM Offer with SIG
      • VM Offer with SAS
      • Publish Offer
    • Other VM Resources
    • Publish a Solution Template HOL
      • Getting Started
      • Create ARM Template
      • Validate ARM Template
      • Create UI Definition
      • Package Assets
      • Publish Offer
    • Publish a Managed App HOL
      • Getting Started
      • Create ARM Template
      • Validate ARM Template
      • Create UI Definition
      • Package Assets
      • Publish Offer
    • Managed Apps with AKS HOL
    • Other Managed App Resources
    • SaaS Offer HOLs
    • SaaS Offer Video Series
      • Video 1 - SaaS Offer Overview
      • Video 2 - Purchasing a SaaS Offer
      • Video 3 - Purchasing a Private SaaS Plan
      • Video 4 - Publishing a SaaS Offer
      • Video 5 - Publishing a Private SaaS Plan
      • Video 6 - SaaS Offer Technical Overview
      • Video 7 - Azure AD Application Registrations
      • Video 8 - Using the SaaS Offer REST Fulfillment API
      • Video 9 - The SaaS Client Library for .NET
      • Video 10 - Building a Simple SaaS Landing Page in .NET
      • Video 11 - Building a Simple SaaS Publisher Portal in .NET
      • Video 12 - SaaS Webhook Overview
      • Video 13 - Implementing a Simple SaaS Webhook in .NET
      • Video 14 - Securing a Simple SaaS Webhook in .NET
      • Video 15 - SaaS Metered Billing Overview
      • Video 16 - The SaaS Metered Billing API with REST
  • Microsoft Fabric
    • Theory
    • Prereqs
    • Fabric Capacity
    • Set up a Remote State
    • Create a repo from a GitHub template
    • Configure an app reg for development
    • Initial Terraform workflow
    • Expanding your config
    • Configure a workload identity
    • GitHub Actions for Microsoft Fabric
    • GitLab pipeline for Microsoft Fabric
  • Packer & Ansible
    • Packer
    • Ansible
    • Dynamic Inventories
    • Playbooks & Roles
    • Custom Roles
    • Shared Image Gallery
  • Partner
    • Lighthouse and Partner Admin Link
      • Microsoft Cloud Partner Program
      • Combining Lighthouse and PAL
      • Minimal Lighthouse definition
      • Using service principals
      • Privileged Identity Management
    • Useful Links
  • REST API
    • REST API theory
    • Using az rest
  • Setup
  • Terraform
    • Fundamentals
      • Initialise
      • Format
      • Validate
      • Plan
      • Apply
      • Adding resources
      • Locals and outputs
      • Managing state
      • Importing resources
      • Destroy
    • Working Environments for Terraform
      • Cloud Shell
      • macOS
      • Windows with PowerShell
      • Windows with Ubuntu in WSL2
    • Using AzAPI
      • Using the REST API
      • azapi_resource
      • Removing azapi_resource
      • azapi_update_resource
      • Data sources and outputs
      • Removing azapi_update_resource
  • Virtual Machines
    • Azure Bastion with native tools & AAD
    • Managed Identities

  • About
  • Archive
  1. Home
  2. Azure Landing Zones
  3. Day 1
  4. Azure Baristas

Table of Contents

  • Company background & information
  • Technical details
  • Requirements
  • Stretch Goals

Azure Baristas

Background information for the Azure Baristas scenario.

Company background & information

  • Global coffee brand (roastery, wholesale, distribution, retail)
  • HQ in London. Regional HQs in New York, Dubai, Frankfurt & Singapore
  • Warehouses, distribution centres & coffee shops in all these locations
  • 100s of other coffee shops in each continent, each lead by their regional HQ
  • No operations in China currently
  • Strict data sovereignty requirements for all operations in Germany
  • Due to COVID-19 looking to migrate all IT workloads to Microsoft Azure
  • Currently a typical VMware vSphere estate in each of the regional HQs either in the offices or in co-lo DCs in the same countries, all have a DR DC in the same country too.
  • Around 10,000 VMs worldwide
  • Due to COVID-19 – heavy investment in online shop/website as main revenue stream for business
    • Developed by teams across the globe – local teams focus on regional specific features/offers/promos
    • Another development team is developing a separate payment service which is subject to PCI-DSS which will be used by the online shop/website
  • Global MPLS connecting all sites with regional DC hubs acting as internet breakout points. No local breakouts at each site
  • Already utilising Microsoft 365 services (EOL, SharePoint, Teams etc.)

Technical details

  • Have a global EA with Microsoft for Microsoft 365 services, Azure consumption & Windows Server/Client licensing (all have active Software Assurance)
  • Microsoft 365 Licenses: Office 365 E5 & EM+S E3 for all users
  • Azure EA Prepayment (aka Commit): $10 million over 3 years
  • Azure Subscriptions: 3 subscriptions in total that developers have been using to test and play in. Can be deleted if required.
  • Azure AD Tenant: azurebaristas.onmicrosoft.com
    • Synced with on-premise AD DS Domain: azbaristas.local via Azure AD Connect, Password Hash Sync Enabled & SSO
  • Centralised Network team that manages all networking globally with strong skills in the Citrix networking space (ADC, NetScaler etc.)
  • All IT staff are trained and certified in Microsoft Azure and have basic to intermediate experience with ARM Templates, Git, GitHub/Azure DevOps.
  • A CCoE has been formed between 3 members of each IT team from each regional HQ – total of 12 members – now at ‘Ready’ phase of CAF

Requirements

  • Need to be able to report costs for each continent & country easily
  • Want to replace MPLS solution with cloud-based SD-WAN approach
    • Also allowing local internet breakout from all sites to improve SaaS application performance and load on global WAN.
  • Require ability to deny certain Azure Resources/Services
    • The CCoE are concerned with users deploying HDInsight clusters within Azure
  • Require separated Production, Staging & Development environments for security and cost separation/reporting
    • The CCoE do not want development or staging environments and associated VNETs to be able to communicate with production
    • All production VMs must be backed up, however selected VMs in dev/test environments may need backing up also
  • Require built-in platform regulatory compliance security checks and reporting for all production environments (PCI-DSS, ISO27001, CIS etc.)
    • ISO27001 & CIS for all environments except Sandbox subscriptions
    • PCI-DSS for the payment system
  • Require unrestricted area for developers to innovate on new solutions/services
    • Not allowed any connectivity into corporate networks
  • Require a more granular approach to admin access to environments within Azure
    • The CCoE are concerned as currently there are to many domain admins and enterprise admins within their estate
  • Real customer data is not allowed to exist in unrestricted developer environments, it must be anonymised
  • All Subnets must be protected with NSGs and cannot be disabled
  • All Resources, Resource Groups & Subscriptions must be tagged with the following Tags (at a minimum):
    • Cost-Centre, Environment, IT-Owner-Contact, Service-Application
  • Azure Activity Logs for all Subscriptions & Diagnostic settings for all Azure Resources should be enabled automatically and sent to a Log Analytics Workspace
  • No M-Series or LS-Series VMs can be deployed
    • Except for the SAP environments
  • TDE & Auditing should be enforced on all Azure SQL DBs/Servers
  • Azure Monitor VM Insights should be enabled on all Production VMs and any required agents automatically installed
  • No Public IP Addresses are allowed in the environment except for Core networking, Sandboxes & Online applications.

Stretch Goals

  • Create a custom policy and assign to a scope within Azure via AzOps (GitHub Actions)
  • For the ‘Cost-Centre’ tag it should only accept values starting with the following: “AZBACC-”
    • Each value should only be 10 characters in length
  • How would an Azure MSP/Support Partner gain access to the Azure Baristas Azure environment?
  • How can we block Azure Sentinel from being deployed but not stopping Log Analytics Workspaces from being deployed?
  • Need to be able to prevent incorrect licensing options being selected for VMs – AHUB must be enabled on Production only VMs (stretch goal)
Previous Azure Baristas Day 1 Challenge