This Azure Blueprint solution automatically deploys a multi-tier web application architecture with pre-configured security controls to help customers achieve compliance with FedRAMP requirements. The solution consists of Azure Resource Manager (ARM) templates and PowerShell scripts that guide resource deployment and configuration. Accompanying Azure Blueprint compliance documentation is provided, indicating security control inheritance from Azure and where deployed resources and configurations align with NIST SP 800-53 security controls, thereby enabling organizations to fast-track compliance obligations. Note: This solution deploys to Azure Government.
Click the button below, sign into the Azure portal, enter the required ARM template parameters, and click Purchase. Read more about deployment.
This solution deploys a notional architecture for a web application with a database backend. The architecture includes a web tier, data tier, Active Directory infrastructure, application gateway, and load balancer. Virtual machines deployed to the web and data tiers are configured in an availability set, and SQL Server instances are configured in an AlwaysOn availability group for high availability. Virtual machines are domain-joined, and Active Directory group policies are used to enforce security and compliance configurations at the operating system level. A management jumpbox (bastion host) provides a secure connection for administrators to access deployed resources.
The architecture includes the following Azure services:
This Azure Blueprint solution is comprised of JSON configuration files and PowerShell scripts that are handled by Azure Resource Manager's API service to deploy resources within Azure. For more information about ARM template deployment, see the following documentation:
During pre-deployment, you will confirm that your Azure subscription and local workstation are prepared to deploy the solution. The final pre-deployment step will run a PowerShell script that verifies the setup requirements, gathers parameters and credentials, and creates resources in Azure to prepare for deployment.
This Azure Blueprint solution is designed to deploy to Azure Government. The solution does not currently support Azure commercial regions. For customers with a multi-tenant environment, the account used to deploy must be a member of the Azure Active Directory instance that is associated with the subscription where this solution will be deployed.
PowerShell is used to initiate some pre-deployment tasks. PowerShell version 5.0 or greater must be installed on your local workstation. In PowerShell, use the following command to check the version:
$PSVersionTable.psversion
In order to run the pre-deployment script, you must have the current Azure PowerShell AzureRM modules installed (see Installing AzureRM modules).
This solution deploys an Application Gateway and requires an SSL certificate. To generate a self-signed SSL certificate using PowerShell, run this script. Note that self-signed certificates are not recommended for use in production environments.
The pre-deployment PowerShell script will verify that the necessary Azure PowerShell modules are installed. Azure PowerShell modules provide cmdlets for managing Azure resources. After all the setup requirements are verified, the script will ask you to sign into Azure and then will prompt you for parameters and credentials to use when the solution is deployed. The script will prompt you for the following parameters, in this order:
blueprint-rg
).Passwords must be at least 14 characters and contain one each of the following: lower case character, upper case character, number, and special character.
git clone https://github.com/AppliedIS/azure-blueprint.git
Note the resource group name and Key Vault name; these will be required during the deployment phase. The script will also generate a GUID for use during the deployment phase.
During this phase, an Azure Resource Manager (ARM) template will deploy Azure resources to your subscription and perform configuration activities.
After clicking the Deploy to Azure Gov button, the Azure portal will open and prompt you for the following settings:
Basics
Settings
Click the button below.
This solution uses multiple nested templates to deploy and configure the resources shown in the architecture diagram. The full deployment will take approximately [120] minutes. You can monitor the deployment from Azure Portal.
See TIMELINE.md for a resource dependency outline.
You can access your machines through the MGT VM that is created from the deployment. From this VM, you can remote into and access any of the VMs in the network.
Deploying this solution will create resources within your Azure subscription. You will be responsible for the costs associated with these resources, so it is important that you review the applicable pricing and legal terms associated with all the resources and offerings deployed as part of this solution. For cost estimates, you can use the Azure Pricing Calculator.
If you have a basic knowledge of how Azure Resource Manager (ARM) templates work, you can customize the deployment by editing azuredeploy.json or any of the templates located in the nested templates folder. Some items you might want to edit include, but are not limited to:
For more information about template deployment, read the following links:
If you do not want to specifically alter the template contents, you can edit the parameters section at the top level of the JSON object within azuredeploy.json.
If your deployment should fail, to avoid incurring costs and orphan resources it is advisable to delete the resource group associated with this solution in its entirety, fix the issue, and redeploy the solution. See the section below for instructions to delete all resources deployed by the solution.
Please feel free to open and submit a GitHub issue pertaining to the error you are experiencing.
To help with deleting protected resources, use postdeploy/deleteProtectedItems.ps1 -- this will specifically help you with removing the delete lock on the resources inside your vault.