Microsoft Azure Setup for Workbench
This setup guide takes you through steps to set up Azure with Workbench.
Wizard vs. Manual Setup
You can use our Azure Wizard, which leverages Azure templates, to programmatically connect your Azure instance.
Or, you can easily deploy RBAC subscription roles in Azure, allowing you to decide whether Expel should monitor one or more subscriptions. Expel can also connect to existing log storage accounts, or create new ones on your behalf.
Prerequisites
You must be able to log in to the Microsoft Entra Admin Center as a user assigned the Global Administrator or User Administrator role.
You must install Microsoft 365 to monitor Azure Monitor Activity Log.
Microsoft allows using the Microsoft 365 Management Activity API to retrieve information about various user, admin, system, and policy actions and events from Microsoft 365 AND Microsoft Entra ID activity logs.
For example, this is how Expel pulls Azure sign-in logs. If you want us to monitor this type of data for your environment, enable audit logging and set up the Microsoft 365 security device in Workbench.
Ensure you have provided Expel access to the required RBAC permissions and roles listed in the Reference section.
Enabling Azure Defender is strongly recommended by Expel to monitor Azure infrastructure. Azure Defender can be enabled on a per-resource basis or for resource groups. The following Azure Defender services are currently monitored by Expel:
Azure Storage
Azure KeyVault
Azure Resource Manager
Azure App Service
Azure SQL Service
Azure Cosmos DB Service
About Connecting Your Device
Expel uses API integrations to connect directly to the Microsoft Azure platform. We support authentication through an Microsoft Entra ID app. To collect data, Workbench communicates directly with APIs, including the Microsoft Security Graph API to poll alerts from Microsoft Sentinel. Workbench also queries Azure Log Analytics to enrich Sentinel alerts with the Azure Log Analytics context that originally generated that alert.
About Console Permissions in Your Devices
As you connect your devices to Workbench, you provide Workbench access to those devices through permissions in the devices. These permissions vary from one device technology to another, but we typically need at least Read access to your devices to pull in any logs from those devices into Workbench. For more information, see Why Expel Asks for Console Access.
Step 1: Enable Console and Cross-Tenant Access for Expel
Step 1: Enable Console Access for a New Account
Expel requires console access to allow analysts to perform investigation and triage. Without this additional level of information, details cannot be verified by our analysts and an investigation cannot be initiated. For more information, see Why Expel Asks for Console Access.
Log in to the Microsoft Entra Admin Center as a user assigned the Global Administrator or User Administrator role.
Navigate to Entra ID > Users > All Users.
Select User > Invite external user.
On the Basics tab, include the following:
Email - use your Organization GUID to create the email address in the format "<Your Organization GUID>@soc.expel.io". For example,
a123bc45-aa12-123b@soc.expel.io.Display Name - enter "Expel SOC".
On the Assignments tab, configure the following:
Select Add role.
Search for and select Global Reader.
Select Review + invite and then Invite.
The user account will be added to your directory as a guest, and an invitation will be sent to the email provided.
Step 2: Enable Cross-Tenant Access
In this step you will add Expel as an external organization and configure inbound trust.
Still in the Microsoft Entra Admin Center, navigate to Entra ID > External Identities > Cross-tenant access settings.
Select the Organizational settings tab.
Select Add organization.
On the Add organization pane, enter Expel’s tenant ID:
1cde81fd-b430-4035-b24d-709921922876Select Expel from the search results, and then select Add.
In the Organizational settings list, locate the Expel row and select Inbound access.
On the "Inbound access settings - Expel" page, select the Trust settings tab, and configure the following:
Select Customize settings.
Enable Trust multifactor authentication from Microsoft Entra tenants.
Enable Trust compliant devices.
Enable Trust Microsoft Entra hybrid joined devices.
Under Automatic redemption, enable Automatically redeem invitations with the tenant Expel.
Select Save.
Step 2: Enable Azure Application Access
Choose one of the following methods to enable secure API access. You will need to save the following value(s) as they are generated, for use later in this guide:
Directory (tenant) ID
Application (client) ID*
Application (client) secret value*
Step 3: Enable Roles Within Azure Subscriptions
Some event sources within Azure require Role-Based Access (RBAC) roles to be granted to the Microsoft Entra ID Application within each Azure subscription. One of these RBAC roles granted to our Microsoft Entra ID Application should also be granted to the Expel user created in Step 1 to allow Expel to investigate further into any alerts.
This section walks through granting the Azure Log Analytics Reader role to both the Microsoft Entra ID Application from Step 2 and the Expel user from Step 1.
Navigate to Subscriptions in the main Azure service menu by searching "Subscriptions".
Select the subscription(s) Workbench will monitor.
Repeat the steps below for each subscription.
Add the below roles by selecting Access Control (IAM) > +Add > Add role assignment, assigning access to the Microsoft Entra ID user, group or application, and selecting the Expel Azure Integration enterprise app or custom Microsoft Entra ID app that you created earlier.
Log Analytics Reader: Required role to ingest logs.
Repeat the above step and assign the Log Analytic Reader role to Microsoft Entra ID, <Your Organization GUID>@soc.expel.io.
Step 4: Route and Enable Azure Resource Logs
To monitor activity within your Azure environment, Expel needs access to diagnostic logs (the "who, what, when" of resource activity). We do not monitor the actual data or files within your production storage accounts; that data remains completely invisible to us.
To set up this access securely, you will configure your existing Azure resources to send their diagnostic logs to a storage account that we can access. You have two options:
Option 1 (Recommended): Create a new, dedicated storage account to be used only for collecting logs for Expel.
Option 2: Use an existing centralized storage account (this account must be one where you aggregate diagnostic logs from multiple resources).
Step 5: Configure Azure in Workbench
Now that we have the correct access configured and noted the credentials, we can integrate your tech with Workbench.
In a new browser tab, log into https://workbench.expel.io/settings/security-devices?setupIntegration=azure.
Complete all fields using the credentials and information you collected in Step 2.
SIEM - select Expel Cloud Service.
Name - enter a name that might help you more easily identify this integration, such as “CompanyName Azure”; this name will display in Workbench under the Name column, and is a text string that you can filter on.
Location - enter the location of your integration, for example “cloud;” this is also a text string that you can filter on, so we recommend being consistent with location naming across your Expel integrations.
Directory (tenant) ID - enter your Directory/Tenant ID.
Application (client) ID - if you created a custom app, enter the Application (Client) ID.
Application (client) Secret - if you created a custom app, enter the Client Secret value.
Select Save.
Your device should be created successfully within a few seconds. A few reminders:
After your connection is healthy, it will take some time for your device to begin polling and receiving data.
To check on the status, select the downward arrow for your device in the first column and choose View details.
Polling will happen first; data will be received after that. You must refresh the page to see updates.
If your device does not begin polling within 15 minutes, and does not begin receiving data within 30 minutes, contact our support team for help.
To check if alerts are coming through, navigate to Dashboards > Alert Analysis. Scroll to the device you want to check, and select the Expel Alerts tab to reveal more alert information. It can take 36 to 72 hours for alerts to appear after setup, as we tune your device.
Reference
Azure RBAC Permissions and Roles
Workbench needs access to the following roles and operations in Azure.
Microsoft Azure Integration Application Permissions
SecurityEvents.Read.All
Ingests VendorAlerts from a direct poller.
User.Read
Creates an application.
RBAC Operations Needed to Read Azure Monitor Activity Log
Action - Microsoft.Insights/eventtypes/values/read
List activity log events (management events) in a subscription. This permission applies to both programmatic and portal access to the activity log.
RBAC Operations Needed to Read Storage Logs Using Microsoft Entra ID Auth
Action - Microsoft.Storage/storageAccounts/read
Returns the list of storage accounts or gets the properties for the specified storage account.
Action - Microsoft.Storage/storageAccounts/blobServices/containers/read
Returns a list of containers.
DataAction - Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Returns a blob or a list of blobs.
RBAC Operations Needed to Read Storage Logs Using Shared Key Auth
Action - Microsoft.Storage/storageAccounts/read
Returns the list of storage accounts or gets the properties for the specified storage account.
Action - Microsoft.Storage/storageAccounts/blobServices/containers/read
Returns a list of containers.
Action - Microsoft.Storage/storageAccounts/listKeys/action
Returns the access keys for the specified storage account.
RBAC Operations Needed to Query Azure Log Analytics
Action - Microsoft.OperationalInsights/workspaces/analytics/query/action
Search using new engine.
Roles That Roll Up Under Built-In RBAC Roles
Global Reader
Read everything that a Global Administrator can, but not update anything. Required role to ingest logs.
Log Analytics Reader
View and search all monitoring data as well as view monitoring settings, including viewing the configuration of Azure diagnostics on all Azure resources. Required role to ingest logs.
Storage Blob Data Reader or Storage Account Contributor (only if using shared key auth)
Storage Blob Data Reader: read and list Azure Storage containers and blobs. Required role to ingest logs.
Storage Account Contributor: allows management of storage accounts. Provides access to the account key, which can be used to access data via Shared Key authorization. Required role to ingest logs.
Remediation capabilities
Disable user account
Allows the app to enable and disable user accounts on behalf of the signed-in user.
Last updated
Was this helpful?

