Git Product home page Git Product logo

azure / canadapubsecalz Goto Github PK

View Code? Open in Web Editor NEW
121.0 20.0 86.0 14.35 MB

This reference implementation is based on Cloud Adoption Framework for Azure and provides an opinionated implementation that enables ITSG-33 regulatory compliance by using NIST SP 800-53 Rev. 4 and Canada Federal PBMM Regulatory Compliance Policy Sets.

License: MIT License

Bicep 78.44% Lua 0.01% Shell 0.57% Python 1.51% TSQL 0.10% PowerShell 14.13% Batchfile 5.24%
landing-zones canada public-sector azure bicep cloud-adoption-framework azure-devops github-actions powershell devops

canadapubsecalz's Introduction

Azure Landing Zones for Canadian Public Sector

Introduction

The purpose of the reference implementation is to guide Canadian Public Sector customers on building Landing Zones in their Azure environment. The reference implementation is based on Cloud Adoption Framework for Azure and provides an opinionated implementation that enables ITSG-33 regulatory compliance by using NIST SP 800-53 Rev. 4 and Canada Federal PBMM Regulatory Compliance Policy Sets.

Architecture supported up to Treasury Board of Canada Secretariat (TBS) Cloud Profile 3 - Cloud Only Applications. This profile is applicable to Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) with characteristics:

  • Cloud-based services hosting sensitive (up to Protected B) information
  • No direct system to system network interconnections required with GC data centers

This implementation is specific to Canadian Public Sector departments. Please see Implement Cloud Adoption Framework enterprise-scale landing zones in Azure if you are looking for implementation for other industries or customers.

Architecture

See architecture documentation for detailed walkthrough of design.

Deployment to Azure is supported using Azure DevOps Pipelines and can be adopted for other automated deployment systems like GitHub Actions, Jenkins, etc.

The automation is built with Project Bicep and Azure Resource Manager template.

GC 30-Day Cloud Guardrails

As part of the Government of Canada (GC) Cloud Operationalization Framework, the GC has provided a set of minimum guardrails to be implemented within the first 30-days of standing up a cloud environment.

See GC 30-Day Cloud Guardrails to find out how the reference implementations meet (or can meet) these requirements.

We recommend deploying the Guardrails Solution Accelerator for evidence collection. The solution provides continuous audit to the Canadian Public Sector customers' environment with a comprehensive workbook revealing the compliance status for each of the 12 GC 30-Day Cloud Guardrails controls.

Onboarding to Azure DevOps

See the following onboarding guides for setup instructions:

  • Azure DevOps Setup provides guidance on considerations and recommended practices when creating and configuring your Azure DevOps Services environment.
  • Azure DevOps Scripts provides guidance on the scripts available to help simplify the onboarding process to Azure Landing Zones design using Azure DevOps pipelines.
  • Azure DevOps Pipelines provides guidance on the manual steps for onboarding to the Azure Landing Zones design using Azure DevOps Pipelines.
  • Configuration Scripts provides guidance on the scripts available to help simplify the configuration process of the Azure Landing Zones design.

Goals

  • Support Treasury Board of Canada Secretariat (TBS) Cloud Profile 3 - Cloud Only Applications

  • Secure environment capable for Protected B workloads.

  • Accelerate the use of Azure in Public Sector through onboarding multiple types of workloads including App Dev and Data & AI.

  • Simplify compliance management through a single source of compliance, audit reporting and auto remediation.

  • Deployment of DevOps frameworks & business processes to improve agility.

Non-Goals

  • Automation does not configure firewalls deployed as Network Virtual Appliance (NVA). In this reference implementation, Fortinet firewalls can be deployed but customer is expected to configure and manage upon deployment.

  • Automatic approval for Canada Federal PBMM nor Authority to Operate (ATO). Customers must collect evidence, customize to meet their departmental requirements and submit for Authority to Operate based on their risk profile, requirements and process.

  • Compliant on all Azure Policies when the reference implementation is deployed. This is due to the shared responsibility of cloud and customers can choose the Azure Policies to exclude. For example, using Azure Firewall is an Azure Policy that will be non-compliant since majority of the Public Sector customers use Network Virtual Appliances such as Fortinet. Customers must review Microsoft Defender for Cloud Regulatory Compliance dashboard and apply appropriate exemptions.

Contributing

See Contributing Reference Implementation for information on building/running the code, contributing code, contributing examples and contributing feature requests or bug reports.

Telemetry

November 11, 2021 onward

Microsoft can identify the deployments of the Azure Resource Manager and Bicep templates with the deployed Azure resources. Microsoft can correlate these resources used to support the deployments. Microsoft collects this information to provide the best experiences with their products and to operate their business. The telemetry is collected through customer usage attribution. The data is collected and governed by Microsoft's privacy policies, located at https://www.microsoft.com/trustcenter.

If you don't wish to send usage data to Microsoft, you can set the customerUsageAttribution.enabled setting to false in config/telemetry.json. Learn more in our Azure DevOps Pipelines onboarding guide.

Project Bicep collects telemetry in some scenarios as part of improving the product.

Pre-November 11, 2021

This reference implementation does not collect any telemetry. Project Bicep collects telemetry in some scenarios as part of improving the product.

License

All files except for Super-Linter in the repository are subject to the MIT license.

Super-Linter in this project is provided as an example for enabling source code linting capabilities. It is subjected to the license based on it's repository.

Trademark

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

canadapubsecalz's People

Contributors

adeelku avatar aporodnov avatar autocloudarc avatar ccmsft avatar davidchristiansen avatar ghostme avatar hudua avatar ifyagolu avatar igomaa avatar lukemurraynz avatar microsoftopensource avatar mnigh avatar mosharafms avatar nataliakon avatar obay avatar obrien-j avatar sabyadg avatar senthuransivananthan avatar skeeler avatar slavaroikhman avatar sunchero avatar tredell avatar vallentyne avatar ylepine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

canadapubsecalz's Issues

Use built-in OSS database policy for Azure Defender

Azure Defender provides a built-in policy to enable Defender Plan for OSS databases. We should replace the custom policy with this built-in.

Name: Configure Azure Defender for open-source relational databases to be enabled
Policy Definition ID: /providers/Microsoft.Authorization/policyDefinitions/44433aa3-7ec2-4002-93ea-65c65ff0310a

Unable to deploy hub managed private endpoint policy assignment

Steps to reproduce:

  1. Run either platform-connectivity-hub-azfw-ci or platform-connectivity-hub-nva-ci pipeline.

Error:

Hub Network will manage private dns zones, creating Azure Policy assignment to automatically create Private Endpoint DNS Zones
Deploying policy assignment using policy/custom/assignments/dns-private-endpoints.bicep
ERROR: An error occurred reading file. Could not find file '/home/vsts/work/1/s/policy/custom/assignments/dns-private-endpoints.bicep'.

##[error]Caller: 10 /home/vsts/work/_temp/azureclitaskscript1638139169085.sh, LineNo: 1, Command: az deployment mg create --location canadacentral --management-group-id pubsec --template-file dns-private-endpoints.bicep --parameters policyAssignmentManagementGroupId='pubsec' policyDefinitionManagementGroupId='pubsec' privateDNSZoneSubscriptionId='ed7f4eed-9010-4227-b115-2a5e37728f27' privateDNSZoneResourceGroupName='pubsec-dns-rg'
##[error]Script failed with exit code: 1

Related to #78

Support allLog diagnostic settings category group in Azure Policies

Category groups are a collection of different logs to help you achieve different monitoring goals. These groups are defined dynamically and Microsoft may add or remove categories as the product evolves, resulting in new charges.

Instead of specifying each log category separately, use the allLogs to ensure new categories added to diagnostic settings are automatically included.

Option in Azure Portal:

image

AKS - Restrict Cluster's and pods' Egress traffic by using outboundType: userDefinedRouting

In a secure environment where Azure Firewall or NVA is used to restrict and control egress traffic, it is important to secure AKS egress trafic as well.

https://docs.microsoft.com/en-us/azure/aks/egress-outboundtype

Adding code to default the AKS configurattion to outboundType: userDefinedRouting
updating the AKS Subnet configuration in Machine Learning LZ to use a UDR to support this routing and configuration requirement
Adding the Azure Policy that prevents the creation of a load balancer with a public IP
Adding Azure Firewall Policy rules to allow trafic to Microsoft endpoints and Ubuntu NTP and Security patches: https://docs.microsoft.com/en-us/azure/aks/limit-egress-traffic

The solution will provide the following:

  • All Egress traffic from the Cluster and its pods will be routed through the network virtual applicance (Azure Firewall)
  • There will be no default Loadbalancer provisionned with Public IP (as it is the case now), and therefore the Cluster will have zero public IPs.
  • Block the possibility to create K8s service of type loadbalancer with public IP

Toggle for required tags from enforcement to auditing.

Is your feature request related to a problem? Please describe.
We are unable to deploy resources from the portal due to the required tags having to exist for resources to be deployed, it also makes it difficult to follow some guides for deploying things like Sentinel Connectors.

Describe the solution you'd like
A variable that allows us to switch enforcement from deny deployments to audits. This way we can still require tags but don't have to block deployments through the portal. I like to manually configure some resources then sync them with Terraform after the fact since I'm not as comfortable with Azure as I am with other CSP's at the moment.

Describe alternatives you've considered
I can remove the required tags but it's still nice to be able some enforcement in pace

Generate random names for Key vaults

Is your feature request related to a problem? Please describe.
When testing the landing zone, it's inevitable the same deployment will be deployed multiple times. because keyvault is set with anti purging, there's no wait to create a vault with the same name as a deleted vault.

Describe the solution you'd like
use date and time of the creation in the uniquestring function to generate a hash that is dependent on a variable not just a fixed value like the resource group id.

lz-healthcare | service health section in the sample parameter file and sample main.bicep is not deploying

Describe the bug
In landingzones/lz-healthcare/main.parameters-sample.json

"serviceHealthAlerts": {
      "value": {
        "resourceGroupName": "pubsec-service-health",
        "incidentTypes": [ "Incident", "Security" ],
        "regions": [ "Global", "Canada East", "Canada Central" ],
        "receivers": {
          "app": [ "[email protected]" ],
          "email": [ "[email protected]" ],
          "sms": [
              { "countryCode": "1", "phoneNumber": "5555555555" }
          ],
          "voice": [
              { "countryCode": "1", "phoneNumber": "5555555555" }
          ]
        }
      }
    }

This object missing

"actionGroupName": "ALZ action group",
    "actionGroupShortName": "alz-alert",
    "alertRuleName": "ALZ alert rule",
    "alertRuleDescription": "Alert rule for Azure Landing Zone"

To Reproduce
Steps to reproduce the behavior:
az deployment sub create --location CanadaCentral --template-file main.bicep --parameters main.parameters-sample.json

Expected behavior
Successful deployment

Error
The language expression property 'actionGroupName' doesn't exist, available properties are 'resourceGroupName, incidentTypes, regions, receivers'.'\",\r\n \"additionalInfo\": [\r\n {\r\n \"type\": \"TemplateViolation\",\r\n \"info\": {\r\n \"lineNumber\": 1,\r\n \"linePosition\": 7753,\r\n \"path\": \"\"\r\n }\r\n }\r\n ]\r\n }\r\n}"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}"}]}}

Azure DevOps Pipelines running on PR instead of just on merge to main

Describe the bug
When I open a new PR in my repo with pipelines configured according to your onboarding guide a job kicks off that insta fails due to missing files.

I'm okay with it failing my issue is it shouldn't be running my assumption was that these pipelines were only to run when merging to main not when a PR is created.

To Reproduce

  1. Follow onboarding guide
  2. Create a pipeline using the yml files in the repo
  3. Create a PR
  4. watch it fail

Expected behavior
I expect it not to kick off a pipeline job when a PR opens

Screenshots
image

Enable Diagnostic Settings for Log Analytics Workspace

Is your feature request related to a problem? Please describe.
Log query audit logs provide telemetry about log queries run in Azure Monitor. This includes information such as when a query was run, who ran it, what tool was used, the query text, and performance statistics describing the query's execution.

On Dec 1, Audit logs for Log Analytics Workspace became generally available.

Announcement: https://azure.microsoft.com/en-us/updates/general-availability-audit-logs-of-azure-monitor-log-queries/

Platform Management Group alignment with Reference Architecture

Align Platform management group based on Reference Architecture described at https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/ready/enterprise-scale/architecture#high-level-architecture

The change includes:

  1. 3 child management groups under Platform: Identity, Connectivity, Management
  2. Networking subscription will be moved to Connectivity MG
  3. Log Analytics subscription will be moved to Management MG

Revised management group structure:

image

GitHub Action for PR Check should only validate files that have changed.

Instead of validating all the files in the Bicep files in the repo it should only validate bicep scripts that have been modified since the last PR

This scan takes 6 minutes to run in a PR that has zero changes to bicep scripts, although this PR does add a variable that was missing. However based on the fact that my PR missing the required variable passed this check I'm assuming the template validation doesn't check for variables so I'm guessing it doesn't need to run unless files being validated are changed.

Enable Azure customer usage attribution

Customer usage attribution associates usage from Azure resources in customer subscriptions created while deploying Azure Landing Zones for Canadian Public Sector. Forming these associations in internal Microsoft systems brings greater visibility to the Azure footprint deploying the landing zones.

This will align to

  1. Planned implementation in Azure Landing Zone Reference Implementation (http://github.com/azure/enterprise-Scale/)

  2. Existing work in Terraform modules for usage tracking
    https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs
    image

We will implement this metric with enabled by default with a single flag to disable if customers do not want the information to be tracked. Tracking ID will be a83f6385-f514-415f-991b-2d9bd7aed658

This work will also update the documentation to highlight the telemetry that is being tracked. Recommended wording:

When you deploy Azure Landing Zones for Canadian Public Sector, Microsoft can identify the deployments of the ARM/Bicep templates with the deployed Azure resources. Microsoft can correlate these resources used to support the deployments. Microsoft collects this information to provide the best experiences with their products and to operate their business. The data is collected and governed by Microsoft's privacy policies, located at https://www.microsoft.com/trustcenter.

Reference: https://docs.microsoft.com/en-us/azure/marketplace/azure-partner-customer-usage-attribution

Enable diagnostic settings in Recovery Vault for Azure Site Recovery Diagnostics Events

Is your feature request related to a problem? Please describe.
Create an azure policy to enable Azure Site Recovery diagnostic events to be sent to a log analytics workspace

Describe the solution you'd like
An Azure Policy is created to enable the following Site Recovery events to be to a log analytics workspace

  • AzureSiteRecoveryJobs
  • AzureSiteRecoveryEvents
  • AzureSiteRecoveryReplicatedItems
  • AzureSiteRecoveryReplicationStats
  • AzureSiteRecoveryRecoveryPoints
  • AzureSiteRecoveryReplicationDataUploadRate
  • AzureSiteRecoveryProtectedDiskDataChurn

Describe alternatives you've considered
N/A

Additional context
N/A

Branding Changes

At Ignite, a few Azure services were rebranded. We need to update the names in docs, images and code to reflect the changes:

  • Azure Security Center is now Microsoft Defender for Cloud
  • Azure Sentinel is now Microsoft Sentinel

Create data analytics LZ

Is your feature request related to a problem? Please describe.
Although most products needed for the Analytics landing zone are available, there's no Analytics landing zone

Describe the solution you'd like
Create a new landing zone for data analytics

Improve archetype parameter JSON schemas

We use JSON Schemas to validate input parameters provided during an archetype deployment. The input parameters are organized into a JSON Parameters file and provided to the subscription-ci Azure DevOps Pipeline.

We chose to use JSONSchema to validate the inputs since ARM doesn't have a native method to validate object types. The inputs are organized into JSON object so that the parameters are contextually organized for better readability and configuration.

Today, the JSONSchema for archetypes are located in https://github.com/Azure/CanadaPubSecALZ/tree/main/schemas and versioned based on the changes to the archetype input parameters. When a version change occurs, multiple tasks needs to occur such as:

  • Update Azure DevOps pipeline for subscription-ci
  • Update Pull Request Pipeline for validation
  • Update Archetype documentation to latest version

This increases the effort for making incremental changes and we need to improve the versioning scheme.

We are going to move to the following schema to help improve the authoring experience:

  • latest
  • v0.1.0
  • v0.2.0
  • vx.y.z

latest is the version that will be referenced in all of our pipelines and docs. The latest folder will have a readme.md that has the changelog and last updated date. The version folders are kept to pin the changes a specific version and can be used for diff between version to see the changes.

Recovery services vault Bicep property error due to API version

Describe the bug
When declaring the recovery vault using the Microsoft.RecoveryServices/vaults@2020-02-02 API version, the below non-blocking syntax warning appears in the VS code
The property "tier" is not allowed on objects of type "Sku". No other properties are allowed. If this is an inaccuracy in the documentation, please report it to the Bicep Team

To Reproduce
Steps to reproduce the behavior:

  1. Open backup-recovery-vault.bicep file in vscode
  2. On line 31, a squiggly line appears in the "tier" property associated with the SKU object
  3. which indicates the following message
    The property "tier" is not allowed on objects of type "Sku". No other properties are allowed. If this is an inaccuracy in the documentation, please report it to the Bicep Team

Expected behavior
No error message

Screenshots

  • Azure Bicep version v0.4.1008

Policy.yml pipeline fails when no required tags are provided.

The tags.bicep scripts should be able to handle no required tags.

This is the error message we get

Deploying Tags.bicep using create operation...
ERROR: {"status":"Failed","error":{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.","details":[{"code":"BadRequest","message":"{\r\n  \"error\": {\r\n    \"code\": \"InvalidCreatePolicySetDefinitionRequest\",\r\n    \"message\": \"The policy set definition 'audit-required-tags-on-resources' create request is invalid. At least one policy definition must be referenced.\"\r\n  }\r\n}"},{"code":"BadRequest","message":"{\r\n  \"error\": {\r\n    \"code\": \"InvalidCreatePolicySetDefinitionRequest\",\r\n    \"message\": \"The policy set definition 'required-tags-on-resource-group' create request is invalid. At least one policy definition must be referenced.\"\r\n  }\r\n}"},{"code":"BadRequest","message":"{\r\n  \"error\": {\r\n    \"code\": \"InvalidCreatePolicySetDefinitionRequest\",\r\n    \"message\": \"The policy set definition 'custom-tags-inherited-from-resource-group' create request is invalid. At least one policy definition must be referenced.\"\r\n  }\r\n}"}]}}
##[error]Caller: 10 /home/vsts/work/_temp/azureclitaskscript1637855831889.sh, LineNo: 1, Command: az deployment mg create --location canadacentral --management-group-id pubsec --template-file Tags.bicep --parameters Tags.parameters.json
##[error]Script failed with exit code: 1

This is what I have for the https://github.com/Azure/CanadaPubSecALZ/blob/main/policy/custom/definitions/policyset/Tags.parameters.json file

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "policyDefinitionManagementGroupId": {
            "value": "{{var-topLevelManagementGroupName}}"
        },
        "requiredResourceTags": {
            "value": [ ]
        }
    }
}

Automation Account

The Automation Account that is created by the landing zone scripts fails the Audit Diagnostic Setting policy from the PBMM Controls.

It either doesn't have Logging or Metrics setup I haven't dug too much into it yet:
image

No need to store sql connection string in AKV

Is your feature request related to a problem? Please describe.
storing SQL DB connection string in key vault is unnecessary extra step that is not needed. The SQL user name and password are saved in AKV in the case of SQL authentication and in the case of AAD only authentication, there's no need to save anything.

Describe the solution you'd like
Remove the module that stores the connection string in AKV

Support for AKS w/ Azure CNI

Adding code to support Azure CNI network plugin for the AKS module

https://docs.microsoft.com/en-us/azure/aks/concepts-network

Azure CNI, provides the following capabilities (compared to Kubenet):

• Network policy (Azure) is native – Calico can be used as an add-on at Cluster creation
• Support for Windows Nodes
• Support for Virtual nodes
• Allows connecting to existing Azure | on-premises resources directly via IP addresses assigned to each pod

However, Azure CNI requires pre-designing and creating a VNET in advance as well as more IPs (than Kubenet)

Adding the option to use either:

Revise Onboarding Document

  • Add table of contents
  • Expand on Service Principal and RBAC requirements
  • CLI commands for creating Service Principal & role assignment
  • Explain security group and role assignment for Logging & Network Section
  • Expand on the steps for service connection setup
  • Expand on using an existing log analytics workspace

Support Azure App Service as a deployment target for AML

Is your feature request related to a problem? Please describe.
AKS deployment and maintenance is quite complicated compared to Azure App Service

Describe the solution you'd like
Support Azure App Service as a deployment target for AML in the ML landing zone

Improve subscription/archetype documentation

We need to improve the documentation for archetypes. Specifically:

  • Folder structure used for organization archetype configurations (ARM parameters)
  • Steps for deploying a new instance of an archetype
  • Steps for creating a new archetype

Support Container Instance as a deployment target for AML

Is your feature request related to a problem? Please describe.
AKS deployment and maintenance is quite complicated compared to Azure Container Instances

Describe the solution you'd like
Support Azure Container Instance as a deployment target for AML in the ML landing zone

Deploying la-vminsights-readonly.bicep using create operation fails

Describe the bug
Running the roles-ci pipeline fails

Current working directory: /home/vsts/work/1/s/roles

Deploying la-vminsights-readonly.bicep using create operation...
ERROR: {"error":{"code":"AuthorizationFailed","message":"The client '71734fab-5326-4534-8b2c-c2e51a4fd2fa' with object id '71734fab-5326-4534-8b2c-c2e51a4fd2fa' does not have authorization to perform action 'Microsoft.Resources/deployments/validate/action' over scope '/providers/Microsoft.Management/managementGroups/Science-Program/providers/Microsoft.Resources/deployments/la-vminsights-readonly' or the scope is invalid. If access was recently granted, please refresh your credentials."}}
##[error]Caller: 5 /home/vsts/work/_temp/azureclitaskscript1635988781424.sh, LineNo: 1, Command: az deployment mg create --template-file la-vminsights-readonly.bicep --location canadacentral --management-group-id Science-Program --parameters assignableMgId=Science-Program
##[error]Script failed with exit code: 1
/usr/bin/az account clear
Finishing: Create Custom Roles - la-vminsights-readonly.bicep

subscription pipeline failing

Not sure where to check but the path for the management group isn't correct.

Ive probably edited a config file wrong, but unsure where to look
image

image

Actual error code

2021-11-04T19:17:24.7955997Z Moving subscription c6fc362a-00c0-4c77-a09d-b916de32fd4a to management group ScPx-SPScPx-SP-LandingZonesScPx-SP-LandingZones-DevTest...
2021-11-04T19:17:27.9971221Z ERROR: {"error":{"code":"AuthorizationFailed","message":"The client '71734fab-5326-4534-8b2c-c2e51a4fd2fa' with object id '71734fab-5326-4534-8b2c-c2e51a4fd2fa' does not have authorization to perform action 'Microsoft.Resources/deployments/validate/action' over scope '/providers/Microsoft.Management/managementGroups/ScPx-SPScPx-SP-LandingZonesScPx-SP-LandingZones-DevTest/providers/Microsoft.Resources/deployments/move-subscription-c6fc362a-00c0-4c77-a09d-b916de32fd4a-canadace' or the scope is invalid. If access was recently granted, please refresh your credentials."}}
2021-11-04T19:17:28.0547009Z ##[error]Caller: 8 /home/vsts/work/_temp/azureclitaskscript1636053430754.sh, LineNo: 1, Command: az deployment mg create --location canadacentral --management-group-id ScPx-SPScPx-SP-LandingZonesScPx-SP-LandingZones-DevTest --template-file move-subscription.bicep --name ${deployName} --parameters managementGroupId='ScPx-SPScPx-SP-LandingZonesScPx-SP-LandingZones-DevTest' subscriptionId='c6fc362a-00c0-4c77-a09d-b916de32fd4a'
2021-11-04T19:17:28.0559707Z ##[error]Script failed with exit code: 1

Support for Azure Bastion Standard SKU

Automation uses Azure Bastion Basic SKU in the Hub Network deployment (in NVA and Azure Firewall deployment)

Azure Bastion Standard SKU is now GA'ed (Nov 2nd, 2021) and provides these 2 capabilities:

  • Manually scale Bastion host Virtual Machine instances: Azure Bastion supports manual scaling of the Virtual Machine (VM) instances facilitating Bastion connectivity. You can configure 2-50 instances to manage the number of concurrent SSH and RDP sessions Azure Bastion can support.

  • Azure Bastion admin panel: Azure Bastion supports enabling/disabling features accessed by the Bastion host.

Reference: https://azure.microsoft.com/en-us/updates/general-availability-bastion-standard-sku/

Landing Zones management groups design

We are looking for feedback on this proposed change. We will target this change for December release (v0.6.0). Please share any alternative solutions via comments.

Landing Zones management groups are defined in this reference implementation as DevTest, QA and Prod to create alignment to various environments a customer might have. These are provided as examples and can be modified by each customer based on their preferred structure.

From Azure Portal:

image

We are considering to change the management groups from environment focused to data sensitivity focused.

The proposed target definition will enable us to customize Azure Policies (used for guardrails) based on data classification of subscriptions such as Unclassified, Protected A, Protected B, etc..

All subscriptions will be kept in these management groups and we would not add another level to break it out by environments.

Therefore, the change would be:

From current definition

pubsec
 |- Landing Zones
    |- DevTest
    |- QA
    |- Prod
 |- other management groups removed for simplicity   

To proposed target definition

pubsec
 |- Landing Zones
    |- Unclassified
    |- Protected A
    |- Protected B
 |- other management groups removed for simplicity   

Example region should probably be canadaeast

The example region specified is causing issues https://github.com/Azure/CanadaPubSecALZ/blob/main/docs/onboarding/ado.md#step-31-update-commonyml-in-git-repository

When I try to deploy the G-Suite Workplace connector to canadacentral it fails because the function (I'm guessing linux functions aren't available in the region) can't run there.

Because i was unaware of that I have to either migrate our LogWorkspace to canadacentral or pay to egress data across regions.

Since functions is probably going to be a common pattern to ingest logs into sentinel the example should probably default to canadacentral.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.