Skip to main content

Amazon Web Services S3 Locations

The AWS S3 integration supports loading catalog entities from an S3 Bucket. Entities can be added to static catalog configuration, or registered with the catalog-import plugin.

Configuration

To use this integration, add configuration to your app-config.yaml:

integrations:
awsS3:
- accessKeyId: ${AWS_ACCESS_KEY_ID}
secretAccessKey: ${AWS_SECRET_ACCESS_KEY}

Then make sure the environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are set when you run Backstage.

Users with multiple AWS accounts may want to use a role for S3 storage that is in a different AWS account. Using the roleArn parameter as seen below, you can instruct the AWS S3 reader to assume a role before accessing S3:

integrations:
awsS3:
- accessKeyId: ${AWS_ACCESS_KEY_ID}
secretAccessKey: ${AWS_SECRET_ACCESS_KEY}
roleArn: 'arn:aws:iam::xxxxxxxxxxxx:role/example-role'
externalId: 'some-id' # optional

Configuration allows specifying custom S3 endpoint, along with path-style access to support integration with providers like LocalStack:

integrations:
awsS3:
- endpoint: 'http://localhost:4566'
s3ForcePathStyle: true
accessKeyId: ${AWS_ACCESS_KEY_ID}
secretAccessKey: ${AWS_SECRET_ACCESS_KEY}