Azure Blob Storage
LAST UPDATED: OCT 23, 2024
Overview
Microsoft Azure Storage provides REST operations for working with blobs in the Blob service.
D3 SOAR is providing REST operations to function with Azure Blob Storage.
Azure Blob Storage is available for use in:
Connection
To connect to Azure Blob Storage from D3 SOAR, please follow this part to collect the required information below:
Parameter | Description | Example |
Server URL | The url of Azure Storage Account Blob. | https://<account_name>.blob.core.windows.net/ |
SAS Key | The Sas key for authentication. | *** |
Permission Requirements
Each endpoint in the Azure Blob Storage API requires a certain permission scope. The following are required scopes for the commands in this integration:
Command | Required Permission | API Doc |
List Blob Objects | Azure RBAC action: Microsoft.Storage/storageAccounts/blobServices/containers/read Least privileged built-in role: Storage Blob Data Reader | |
List Containers | Azure RBAC action: Microsoft.Storage/storageAccounts/blobServices/containers/read (scoped to the storage account or above) Least privileged built-in role: Storage Blob Data Contributor (scoped to the storage account or above) | List Containers (REST API) - Azure Storage | Microsoft Learn |
Upload File | Azure RBAC action:
Least privileged built-in role: Storage Blob Data Contributor |
Configuring Azure Blob Storage to Work with D3 SOAR
Login to your Microsoft Azure Account.
Inside the Search Bar, Search for Storage accounts.
Create or choose your desired Storage Account to create the SAS Token.
Navigate to the Access Control (IAM) tab, and grant access from the Permission Requirements to the resource you choose.
Under the Security + networking, click Shared access signature.
Enable the options below
Check Allowed Services: Blob, File
Check Allowed Resource Types: Service, Container, Object
Check Allowed Permissions: Read, Write, Delete, List, Add, Create, Immutable storage
Check Blob versioning permissions: Enables deletion of versions
The expiry date should be set to one day after the contract date. Additionally, add a reminder to update the SAS key before it expires. Notify the client that the key is about to expire and inform them that a new key will be generated based on the contract.
Click Generate SAS and connection string.
Copy SAS token to use in D3 SOAR.
Configuring D3 SOAR to Work with Azure Blob Storage
Log in to D3 SOAR.
Find the Azure Blob Storage integration.
Navigate to Configuration on the top header menu.
Click on the Integration icon on the left sidebar.
Type Azure Blob Storage in the search box to find the integration, then click it to select it.
Click + Connection, on the right side of the Connections section. A new connection window will appear.
Configure the following fields to create a connection to Azure Blob Storage.
Connection Name: The desired name for the connection.
Site: Specifies the site to use the integration connection. Use the drop-down menu to select the site. The Share to Internal Sites option enables all sites defined as internal sites to use the connection. Selecting a specific site will only enable that site to use the connection.
Recipient site for events from connections Shared to Internal Sites: This field appears if you selected Share to Internal Sites for Site to let you select the internal site to deploy the integration connection.
Agent Name (Optional): Specifies the proxy agent required to build the connection. Use the dropdown menu to select the proxy agent from a list of previously configured proxy agents.
Description (Optional): Add your desired description for the connection.
Tenant (Optional): When configuring the connection from a master tenant site, you have the option to choose the specific tenant sites you want to share the connection with. Once you enable this setting, you can filter and select the desired tenant sites from the dropdowns to share the connection.
Configure User Permissions: Defines which users have access to the connection.
Active: Check the tick box to ensure the connection is available for use.
System: This section contains the parameters defined specifically for the integration. These parameters must be configured to create the integration connection.
1. Input the Server URL. The default value is <https://<blob_name>.blob.core.windows.net/. Replace the <blob_name> with your Storage account name.
2. Copy the SAS Key from the Azure Blob Storage platform. Please refer to step 6 of Configuring Azure Blob Storage to Work with D3 SOAREnable Password Vault: An optional feature that allows users to take the stored credentials from their own password vault. Please refer to the password vault connection guide if needed.
Test the connection.
Click Test Connection to verify the account credentials and network connection. If the Test Connection Passed alert window appears, the test connection is successful. You will see Passed with a green checkmark appear beside the Test Connection button. If the test connection fails, please check your connection parameters and try again.
Click OK to close the alert window.
Click + Add to create and add the configured connection.
Commands
Azure Blob Storage includes the following executable commands for users to set up schedules or create playbook workflows. With the Test Command, you can execute these commands independently for playbook troubleshooting.
Integration API Note
For more information about the Azure Blob Storage API, please refer to the Azure Blob Storage API reference.
READER NOTE
Certain permissions are required for each command. Please refer to the Permission Requirements and Configuring Azure Blob Storage to Work with D3 SOAR for details.
List Blob Objects
Lists all of the blobs in a specified container.
READER NOTE
Container Name is a required parameter to run this command.
Run the List Containers command to obtain the Container Name. Container Names can be found in the raw data at the path $.EnumerationResults.Container[*].name.
Next Marker is an optional parameter to run this command.
If you run this command with raw data at the path $.EnumerationResults.NextMarker has value, the value can be used to input in the Next Marker parameter.
Input
Input Parameter | Required/Optional | Description | Example |
Container Name | Required | The name of the container to list objects from. It can either be the full name of the container or just a prefix of the container's name. | ***** |
Blob Name | Optional | The names of the blob objects to be listed can be specified using either the full name of the blob object or just a prefix. | D3Incidents |
Limit | Optional | The maximum number of return blob objects, with a default value of 20 and a maximum limit of 5000. | 1 |
Next Marker | Optional | The next set of blob objects to be returned. If there is a value returned in the raw data of Next Marker after running this command, the value can be used to input here to obtain the next blob object. | 2!96!*****- |
Output
Error Handling
If the Return Data is Failed, an Error tab will appear in the Test Result window.
The error tab contains the details responded from D3 SOAR or third-party API calls, including Failure Indicator, Status Code, and Message. This can help you locate the root cause of a command failure.
Parts in Error | Description | Example |
Failure Indicator | Indicates the command failure that happened at a specific input and/or API call. | List Blob Objects failed. |
Status Code | The response code issued by the third-party API server or the D3 SOAR system that can be used to locate the corresponding error category. For example, if the returned status code is 401, the selected connection is unauthorized to run the command. The user or system support would need to check the permission setting in the Azure Blob Storage portal. Refer to the HTTP Status Code Registry for details. | Status Code: 403. |
Message | The raw data or captured key error message from the integration API server about the API request failure. | Message: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. |
Error Sample Data List Blob Objects failed. Status Code: 403. Message: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. |
List Containers
Lists all of the containers in the current storage account.
READER NOTE
Next Marker is an optional parameter to run this command.
If you run this command with raw data at the path $.EnumerationResults.NextMarker has value, the value can be used to input in the Next Marker parameter.
Input
Input Parameter | Required/Optional | Description | Example |
Container Name | Optional | The name of the container to be listed can be specified using either the full name or just a prefix of the container's name. | d3uat |
Limit | Optional | The maximum number of return containers can be specified, with the default set to 20 and a maximum limit of 5000. | 1 |
Next Marker | Optional | The next set of containers to be returned can be specified using the name of the next container. If there is a value returned in the raw data of Next Marker after running this command, the value can be used to input here to obtain the next container. | /d3uat/***** |
Output
Error Handling
If the Return Data is Failed, an Error tab will appear in the Test Result window.
The error tab contains the details responded from D3 SOAR or third-party API calls, including Failure Indicator, Status Code, and Message. This can help you locate the root cause of a command failure.
Parts in Error | Description | Example |
Failure Indicator | Indicates the command failure that happened at a specific input and/or API call. | List Containers failed. |
Status Code | The response code issued by the third-party API server or the D3 SOAR system that can be used to locate the corresponding error category. For example, if the returned status code is 401, the selected connection is unauthorized to run the command. The user or system support would need to check the permission setting in the Azure Blob Storage portal. Refer to the HTTP Status Code Registry for details. | Status Code: 403. |
Message | The raw data or captured key error message from the integration API server about the API request failure. | Message: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. |
Error Sample Data List Containers failed. Status Code: 403. Message: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. |
Upload File
Submits files to storage
READER NOTE
Container Name is a required parameter to run this command.
Run the List Containers command to obtain the Container Name. Container Names can be found in the raw data at the path $.EnumerationResults.Container[*].name.
File ID and File Source
It is not recommended to use the Test Command feature with the Upload File command as it is designed for dynamic input files in Playbooks, Incident Attachments, and Artifact Attachments. There is a simple workaround to test the command:
Navigate to Configuration on the top bar menu.
Click on Utility Commands on the left sidebar menu.
Use the search box to find and select the Create a File from input Text Array command.
Click on the Test tab.
Input the required information for the parameters.
Click on the Test Command button. A D3 File ID will appear in the output data after the file has been successfully created. The D3 File Source of the created file will be Playbook File.

Input
Input Parameter | Required/Optional | Description | Example |
File IDs | Required | The file path of the file source. | [ "473" ] |
File Source | Required | The file source of the file to send. The options for file sources are: Incident Attachment File: Manually uploaded file from Incident Playbook File: Output from another Task Artifact File: Ingested Artifact in an Event | Playbook File |
Container Name | Required | The name of the container to upload files. | ***** |
Output
Error Handling
If the Return Data is Failed, an Error tab will appear in the Test Result window.
The error tab contains the details responded from D3 SOAR or third-party API calls, including Failure Indicator, Status Code, and Message. This can help you locate the root cause of a command failure.
Parts in Error | Description | Example |
Failure Indicator | Indicates the command failure that happened at a specific input and/or API call. | Upload File failed. |
Status Code | The response code issued by the third-party API server or the D3 SOAR system that can be used to locate the corresponding error category. For example, if the returned status code is 401, the selected connection is unauthorized to run the command. The user or system support would need to check the permission setting in the Azure Blob Storage portal. Refer to the HTTP Status Code Registry for details. | Status Code: 403. |
Message | The raw data or captured key error message from the integration API server about the API request failure. | Message: Submit Files failed. The file does not exist |
Error Sample Data Upload File failed. Status Code: 403. Message: Submit Files failed. The file does not exist. |