LogoLogo
  • Overview
  • publisher
    • Introduction
    • Getting Started
      • Logging in to Publisher
    • Data Sources
      • Connecting a Data Source
      • Managing a Data Source
      • Connectors
        • AWS S3 Permissions
        • Connecting to AWS S3 Storage
        • Google Cloud Storage (GCS) Permissions
        • Connecting to Google Cloud Storage
        • PostgreSQL Permissions
        • Connecting to PostgreSQL
        • PostgreSQL on Azure Permissions
        • Microsoft Azure Blob Storage Permissions
        • Connecting to Microsoft Azure Blob Storage
        • Connecting to HTTPS
        • Connecting to other sources via Trino
          • BigQuery
    • Collections
      • Creating a Collection
      • Sharing a Collection
      • Collection Filters
      • Editing Collection Metadata
      • Updating Collection Contents
    • Access Policies
      • Creating an Access Policy
      • Managing Access Policies
    • Questions
      • Adding Questions
      • Example Question
    • Settings
      • Viewing Current and Past Administrators
      • Adding an Administrator
      • Removing an Administrator
      • Setting Notification Preferences
  • Explorer
    • Introduction
    • Viewing a Collection
    • Browsing Collections
    • Asking Questions
    • Accessing a Private Collection
      • Requesting Access to a Private Collection
    • Filtering Data in Tables
      • Strings
      • Dates
      • Numbers
  • Workbench
    • Introduction
    • Getting Started
      • Logging into Workbench
      • Connecting an Engine
      • Finding or Importing a Workflow
      • Configuring Workflow Inputs
      • Running and Monitoring a Workflow
      • Locating Outputs
    • Engines
      • Adding and Updating an Engine
        • On AWS HealthOmics
        • On Microsoft Azure
        • On Google Cloud Platform
        • On Premises
      • Parameters
        • AWS HealthOmics
        • Google Cloud Platform
        • Microsoft Azure
        • On-Premises
        • Cromwell
        • Amazon Genomics CLI
    • Workflows
      • Finding Workflows
      • Adding a Workflow
      • Supported Languages
      • Repositories
        • Dockstore
    • Instruments
      • Getting Started with Instruments
      • Connecting a Storage Account
      • Using Sample Data in a Workflow
      • Running Workflows Using Samples
      • Family Based Analysis with Pedigree Information
      • Monitor the Workflow
      • CLI Reference
        • Instruments
        • Storage
        • Samples
        • OpenAPI Specification
    • Entities
    • Terminology
  • Passport
    • Introduction
    • Registering an Email Address for a Google Identity
  • Command Line Interface
    • Installation
    • Usage Examples
    • Working with JSON Data
    • Reference
      • workbench
        • runs submit
        • runs list
        • runs describe
        • runs cancel
        • runs delete
        • runs logs
        • runs tasks list
        • runs events list
        • engines list
        • engines describe
        • engines parameters list
        • engines parameters describe
        • engines health-checks list
        • workflows create
        • workflows list
        • workflows describe
        • workflows update
        • workflows delete
        • workflows versions create
        • workflows versions list
        • workflows versions describe
        • workflows versions files
        • workflows versions update
        • workflows versions delete
        • workflows versions defaults create
        • workflows versions defaults list
        • workflows versions defaults describe
        • workflows versions defaults update
        • workflows versions defaults delete
        • namespaces get-default
        • storage add
        • storage delete
        • storage describe
        • storage list
        • storage update
        • storage platforms add
        • storage platforms delete
        • storage platforms describe
        • storage platforms list
        • samples list
        • samples describe
        • samples files list
      • publisher
        • datasources list
  • Analysis
    • Python Library
    • Popular Environments
      • Cromwell
      • CWL Tool
      • Terra
      • Nextflow
      • DNAnexus
Powered by GitBook

© DNAstack. All rights reserved.

On this page
  • General Setup
  • AWS S3
  • Connect AWS S3
  • Required Permissions
  • Generating an Access Key
  • Azure Storage Account
  • Using OAuth2
  • Required Permissions
  • Creating a Service Principal
  • Using SAS Token
  • Generating a SAS Token for a Container
  • Using Access Key
  • Retrieving the Storage Account Access Key
  • Google Cloud Storage
  • Steps to Connect GCS
  • Required Permissions
  • Creating a Service Account with Required Permissions
  • Granting Bucket-Specific Access

Was this helpful?

  1. Workbench
  2. Instruments

Connecting a Storage Account

PreviousGetting Started with InstrumentsNextUsing Sample Data in a Workflow

Last updated 2 days ago

Was this helpful?

When a storage account is connected, Workbench indexes the directories and identifies the samples and files. The following sections detail how to set up storage accounts for different providers.

General Setup

  1. Log in to your

  2. Click on Data from the left navigation panel

  3. Click the Connect Data button

  4. Continue onto the the section that corresponds to the cloud you are configuring


AWS S3

The following guide outlines the key concepts and minimal configuration needed to establish a secure connection between Instruments and your AWS S3 resources.

Connect AWS S3

  1. Select Amazon AWS as the provider.

  2. Enter your Access Key ID and Secret Access Key.

  3. Specify the Bucket URI and Region.

  4. Click Save to connect the storage account.

Required Permissions

To use AWS S3 with Workbench, the following are required:

  • s3:ListBucket: To list objects within the bucket.

  • s3:GetObject: To read object contents.

Example IAM Policy

Below is an IAM policy that grants the minimum required permissions:

{
  "Version": "2012-10-17",
   "Statement": [
        {
            "Sid": "WorkbenchInstrumentsStorageConnector",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKET_NAME",
                "arn:aws:s3:::BUCKET_NAME/*"
            ]
        }
    ]
}

Replace BUCKET_NAME with your actual S3 bucket name.

If you need to restrict access to a specific folder or prefix within your bucket, you can modify the resource path:

"Resource": [
  "arn:aws:s3:::BUCKET_NAME/prefix/*"
]

Generating an Access Key

  1. Navigate to IAM (Identity and Access Management).

  2. Select Users and choose the user for whom you want to create an access key.

  3. Go to the Security Credentials tab and click Create Access Key.

  4. Copy the Access Key ID and Secret Access Key to use in Workbench.

The service account is now ready to list and read objects from the specified bucket.


Azure Storage Account

The following guide outlines the key concepts and minimal configuration needed to establish a secure connection between Instruments and your Azure resources.

Using OAuth2

  1. Select Microsoft Azure as the provider.

  2. Choose OAuth 2.0 as the authentication method.

  3. Enter your Tenant ID, Client ID, and Client Secret.

  4. Provide the Storage Account Name and Container Name.

  5. Click Save.

Required Permissions

To use Azure Storage with Workbench, the following permissions are required:

  • Storage Blob Data Reader: To list and read blob data within the storage account.

Creating a Service Principal

  1. Navigate to Azure Active Directory > App Registrations > New Registration.

  2. Provide a name for the application and click Register.

  3. Go to the Manage > Certificates & Secrets tab and create a Client Secret.

  4. Navigate to your Storage Account and open the Access Control (IAM) tab.

  5. Click Add Role Assignment, select Storage Blob Data Reader, and assign it to the newly created service principal.

Using SAS Token

  1. Select Microsoft Azure as the provider.

  2. Choose Shared Access Signature as the authentication method.

  3. Enter the SAS URL.

  4. Specify the Storage Account Name and Storage Container Name.

  5. Click Save.

Generating a SAS Token for a Container

  1. Navigate to your Storage Account > Storage Browser and go to Blob Containers section.

  2. Locate the desired blob container in the table.

  3. In the last column of the table, click on the ellipsis "..." to open the context menu.

  4. Click on the Shared Access Signature option.

  5. Specify the permissions required (e.g., Read and List).

  6. Set the Start and Expiry time for the token.

  7. Click Generate SAS Token and URL.

  8. Copy the generated SAS Token URL.

Note: SAS tokens can expire. Ensure the token's validity matches the intended usage period

Using Access Key

  1. Select Microsoft Azure as the provider.

  2. Choose Access Key as the authentication method.

  3. Enter the Access Key.

  4. Specify the Storage Account Name and Storage Container Name.

  5. Click Save.

Retrieving the Storage Account Access Key

Follow these steps to retrieve the access key for your Azure Storage Account:

  1. Navigate to your Storage Account.

  2. Under Security + Networking, select Access keys.

  3. Copy the Key1 or Key2 under the Key section.

  4. Use the copied key as the Access Key in Workbench.

The service account is now ready to list and read objects from the specified bucket.


Google Cloud Storage

Steps to Connect GCS

  1. Select Google Cloud as the provider.

  2. Upload your Service Account JSON.

  3. Enter the Project ID and Bucket URI.

  4. Click Save to connect the storage account.

Required Permissions

To properly connect Google Cloud Storage with Workbench, the service account needs the following permissions:

  • storage.buckets.list - To list buckets

  • storage.objects.get - To read object contents

  • storage.objects.list - To list objects within buckets

  • serviceusage.services.use - To use GCP services

Creating a Service Account with Required Permissions

Option 1: Using Built-in Roles

The easiest approach is to assign two built-in roles to your service account:

  • Storage Admin (roles/storage.admin) - Provides full control of storage resources

  • Service Usage Consumer (roles/serviceusage.serviceUsageConsumer) - Allows service usage

  1. Navigate to IAM & Admin > Service Accounts.

  2. Click Create Service Account.

  3. Enter a name and description for the service account, then click Create and Continue.

  4. Add the Storage Admin role to grant storage permissions.

  5. Add the Service Usage Consumer role.

  6. Click Done to finish creating the service account.

  7. Select the newly created service account from the list and navigate to the Keys tab.

  8. Click Add Key > Create New Key.

  9. Choose the JSON format and click Create.

  10. Save the downloaded JSON key securely for use in Workbench.

Option 2: Using a Custom Role

If you prefer more granular control, you can create a custom role with only the required permissions:

  1. Navigate to IAM & Admin > Roles.

  2. Click Create Role.

  3. Enter a name and description for the role.

  4. Click Add Permissions and add these exact permissions:

    • storage.buckets.list

    • storage.objects.get

    • storage.objects.list

    • serviceusage.services.use

  5. Click Create to create the custom role.

  6. Go back to IAM & Admin > Service Accounts.

  7. Create a new service account or select an existing one.

  8. Assign your newly created custom role to this service account.

  9. Generate and download a JSON key as described above.

Granting Bucket-Specific Access

If you want to limit access to a specific bucket only:

  1. Navigate to the Cloud Storage section in the Google Cloud Console.

  2. Select the bucket you want the service account to access.

  3. Go to the Permissions tab and click Grant Access.

  4. Enter the service account email in the New Principals field.

  5. Assign only the Storage Admin role (or your custom role) to the service account at the bucket level.

    • Note: You do not need to add the Service Usage Consumer role at the bucket level.

  6. Click Save to apply the permissions.

The service account is now ready to list and read objects from the specified bucket.

Log in to the .

For more details, refer to the .

Log in to the .

For detailed steps, refer to the .

Log in to the .

Log in to the .

For additional details, visit the .

Log in to the .

AWS Management Console
AWS Documentation
Azure Portal
Azure Documentation
Azure Portal
Azure Portal
Azure Storage Account Key Documentation
Google Cloud Console
Workbench account
AWS
Azure Storage Account
Google Cloud Storage