How to Onboard an Azure CSP Subscription

Table of Contents

This topic guides you to onboard an Azure CSP Subscription available under an Azure CSP Direct account that is already onboarded into CoreStack. 


Once an Azure CSP Direct account is onboarded into CoreStack, the associated Azure CSP Subscriptions will be discovered and listed in CoreStack. An Azure CSP Subscription from the list of discovered subscriptions can then be onboarded into CoreStack. But, there are certain pre-requisites that need to be set up in your Azure CSP Subscription before it can be onboarded into CoreStack. 

CoreStack uses Daemon Application scenario with Client Credentials flow for OAut2.0 flow and grant type as depicted here. Client Credential flow requires a valid Application registration to be created for a specific Azure subscription to successfully allow access to the required Azure resources. 

To onboard your Azure subscription into CoreStack, the following values must be generated/copied from your Azure console and configured in CoreStack. 

  1. Tenant ID 
  2. Application ID 
  3. Application Secret 
  4. Subscription Information 

As you retrieve each of these values, keep them ready in a notepad to be able to copy paste into CoreStack while onboarding. 

Step-1: Fetch Tenant ID

  1. Login to the Azure Portal ( 
  2. Navigate to Azure Active Directory. 
  3. Click Properties. The Properties screen appears. 
  4. The Tenant ID value will be displayed on the Properties screen. 
  5. Click on the Copy icon to copy the Tenant ID. 

Step-2: Fetch Application ID

  1. Navigate to Azure Active Directory > App registrations New registration in the Azure Portal. The Register an application screen appears. 
  2. Provide a name for the application, such as “CoreStack.App”. The other fields can be left with the default options. 
  3. The value of the Supported account types field can be Single Tenant. 
  4. The value of the Redirect URI field can be blank. 
  5. Click Register button. 

The application will be registered, and the Application ID (Client ID) will be displayed in the Overview screen. Copy the Application ID. 

Step-3: Fetch Application Secret

Application Secret is the password or key that you need to provide for the specific app that was just created. 

  1. Navigate to Certificates & secrets from the Overview screen. 
  2. Click New client secret. 
  3. Provide a description and expiry duration for the secret. You can leave the duration with the default value of 1 year. You can revoke this anytime later, if required. 
  4. Click Add button. The Client secret will be created and displayed. Ensure that you copy this value since you cannot retrieve this later. 

Step-4: Fetch Subscription Information

  1. Navigate to Subscriptions in the Azure Portal. A list of subscriptions will be listed under the selected AD Tenant. 
  2. Select the Subscription that will be used for onboarding into CoreStack. The Overview screen appears. 
  3. The subscription details will be displayed in the Overview screen. 
  4. Copy the Subscription ID and Subscription Name values.

Step-5: IAM Access for App

The app that is created in Step-2 must have the required access within the subscription. To provide the access, please follow the below steps:

1. Navigate to Subscriptions in the Azure Portal.
2. Select Access Control (IAM).
3. Click Add and select Add role assignmentAdd role assignment screen appears. 
4. Select Contributor or Reader in the Role dropdown. 

Note: Contributor role is required for subscriptions that will be onboarded with Assessment + Governance option. If the subscription will be onboarded with Assessment option, Reader role can be selected.

5. Ensure that the Azure AD user, group, or service principal option is selected in the Assign access to field.
6. Search and select the app that was created earlier – in this example “CoreStack.App” – in the Select field. 
7. Click Save button to assign the role. 

Once the role is assignedit will be listed in the Role Assignments tab. 

8. Repeat the steps 3 to 7 as specified above, but with Resource Policy Contributor selected in the Role dropdown and everything else remaining the same. This is required only if you intend to use CoreStack to create policies for your Azure subscription. 

Note: The Resource Policy Contributor role assignment is required only if you intend to use CoreStack to create policies for your Azure subscription.

Once the role is assigned, it will be listed in the Role Assignments tab. 

Copy all these details and provide them while onboarding your Azure CSP Subscription into CoreStack. 

Why are these Permissions Required?

CoreStack requires Contributor access to the following Service Providers. However, the account owner can restrict access to specific services that will only be managed through CoreStack. 

Following table explains the need for access to the service with the rationale: 

Azure Provider Product/Category Reader Access (For Discovery) Contributor Access (For Actions) Remarks 

Virtual Machines 

Virtual Machines Scale Sets 

Virtual Machines Sizes 

Availability Sets 

Image Publishers 



Mandatory  Mandatory   
Microsoft.ContainerInstance  Container Groups  Preferred Optional   
Microsoft.ContainerRegistry Container Registry Preferred Optional   

Container Service 


Preferred Optional   

Storage accounts 

Storage Snapshots 

Mandatory  Mandatory   
Microsoft.RecoveryServices  Recovery Vault  Preferred  Optional   

Route Tables 

Network Security Group 

Virtual Networks 

Public IP Address 

Traffic Manager Profiles 

Load Balancer 

Express Routes 

Application Gateway 

Application Gateway 

Available SSL Policy 

Mandatory  Mandatory   
Microsoft.Sql SQL Preferred  Optional   
Microsoft.DBforPostgreSQL  PGSQL Preferred  Optional   
Microsoft.DBforMySQL  Mysql Preferred  Optional   

Preferable: Access is not mandatory. However, some of the automation features will be not functional without the required access. You can exclude them for “Assessment-Only”. 

Optional: Not mandatory, similar to that of Preferable, core features will continue to work. Some low-level actions will have an Impact. You can exclude them for “Assessment-Only”. 

Mandatory: Non-negotiable, even to onboard account with read-only permissions (“Assessment-Only”), these access details would be needed. 

Impact on the Azure Subscription

If you intend to use CoreStack for remediation and automation, CoreStack creates resources and applies some configurations in Azure while configuring these capabilities in CoreStack. 

Alert Rules and Alert Actions: 

Alert rules will be created when monitoring thresholds are configured as part of the Operations – Alerts module. 

A new alert action will be added to the created rules to invoke CoreStack notification webhook when threshold alert is triggered. 

Azure Policy:

CoreStack will create the Policy Definitions and Assignments based on the GuardRails you prefer to set-up for your Azure Subscription. 

Security Center:

CoreStack will enable the Free-tier or Standard Tier for the resources based on the security configurations. (Enabling Standard Tier has cost implications, please exercise caution during configuration). 

Billing Impact due to CoreStack Onboarding

There is no billing impact as such in configuring your account with CoreStack until certain services are consumed through CoreStack. Following are the few areas where there might be cost implications. 

Feature  Free Units Included  Price  CS Remarks 
Alert Notifications  100,000 web hooks per month  $0.60/1,000,000 web hooks   
Dynamic Thresholds  None  $0.10 per dynamic threshold per month  CoreStack does not create Dynamic Thresholds as part of account onboarding. However, you can configure through Operations template, if required. 
Azure Security Center  Free Tier Pricing varies per resource type. 

Standard Tier if opted will have higher cost impact. 

Refer Azure pricing page for more details.

Monitoring Metrics  10 monitored metric time-series per month $0.10 per metric time-series monitored per month   



The following steps need to be performed to onboard an Azure CSP Subscription. 

  1. Navigate to the Account Governance Dashboard. 
  2. Mouseover the Azure tile in the Cloud Account Summary section and click CSP-Direct. The list of onboarded Azure CSP Direct accounts appears. The associated subscriptions will be displayed as a table. 
  3. To onboard a subscription, click Onboard Now button next to the required subscription in the list. The onboarding screen appears. 
  4. Select the required option in the Access Type field. The options are: Assessment and Assessment + Governance. 
  5. Select the required option in the Azure Environment field. The options are: Azure Global, Azure China, and Azure Government. 
  6. The value in the Currency dropdown list will be auto-selected and disabled. It is dependent on the currency configured in your Azure CSP Direct account. 
  7. Click Next. 
  8. The value in the Tenant ID field will be auto-populated. 
  9. Provide the details for other fields (Application ID, Application Secret) as explained in the Pre-onboarding section. 
  10. Click Validate button. 
  11. The Advanced Settings section will be displayed with additional fields (Name, Subscription, Subscription Type, Parent Account and Scope). 
  12. Modify the prepopulated name of the account in the Name field, if required. 
  13. The value in the Subscription field will be auto-populated. 
  14. The value in the Subscription Type field will be auto-populated. 
  15. The corresponding Azure CSP Direct account will be auto-selected in the Parent Account field. 
  16. Select the required option in the Scope field. The options are: Account, Private, and Tenant. 
  17. Click I’m Done button. 

The Azure CSP Subscription will be onboarded successfully into CoreStackRelevant insights and information about the resources available in the account will be populated under each cloud governance pillars in CoreStack.