nextflow-io / nextflow-io/nextflow
Input data from misconfigured public S3 buckets when using AWS credentials
@jorgee is already working on this.
Since Nov 11, 2025.
- Dominant language
- Groovy
- Stars
- 3.5k
- Forks
- 811
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 61
Description
New feature
Usage scenario
Many commonly used public datasets are stored on public S3 buckets which are configured in a way that only allows access using anonymous AWS credentials (e.g. AWS iGenomes). AWS supports anonymous access to S3 when AWS credentials are configured using the --no-sign-request AWS CLI flag.
On the other hand, when running on AWS Batch, AWS credentials are required to access all AWS resources & services needed to run on a private AWS Batch cluster.
Nextflow allows configuring a single set of AWS credentials (or role) to be used during runtime, and accesses all S3 URLs provided to channels the same way, meaning you cannot use public datasets as mentioned above when running on your own private AWS Batch cluster, and also not in conjunction with datasets stored in private S3 buckets.
Suggest implementation
My suggestion is to add support for a new option flag to the fromPath channel factory (and maybe others as well), which when set to true, given an S3 URL as the path, uses the --no-sign-request flag when generating the AWS CLI command that pulls the data from the given S3 bucket.
This way the user will have the granularity required in order to access both public & private S3 buckets during the same run, while running on a private AWS Batch cluster as well, regardless of how the public S3 buckets are configured.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.