Setting up S3-compatible object storage

Terrashine requires an S3 compatible storage to cache terraform providers. It is currently tested against AWS S3 and Minio. To set up AWS S3, please follow the AWS instruction to create a bucket and obtain a set of credentials.

Terrashine requires a bucket to be created and a set of credentials to be available. The AWS Rust SDK is used to authenticate to S3 so the credentials can be provided to the binary using any supported credential provider. Most commonly, this can be provided using the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables.

Terrashine requires the following actions in the IAM policy:

  • GetObject
  • PutObject

For a non-AWS S3 compatible object storage, see the docker-compose.yml in the repository where an example minio integration is used. In this case, a CLI flag --s3-endpoint can be used to point terrashine at an alternative URL.