How to Substrate

Substrate makes magic with your identity provider, AWS and Terraform

Installing in 1, 2, 3

Setup, Create Accounts, substrate

Setup, Create Accounts, substrate

Setup, Create Accounts, substrate

  1. Bootstrap

  • Open a fresh AWS account. Don't worry we can adopt any existing accounts later.

  • Run: substrate setup and it will start configuring AWS accounts and environments for you and install the Substrate intranet in a Substrate-managed AWS account.

  • Integrate with your identity provider for credentials and roles. We support Azure Active Directory, Google Workspace and Okta.

  1. Create Accounts and roles for your environments and domains

  • Create new accounts and environments with substrate account create

  • You can easily create separate environments for development, staging and production.

  • You can use substrate domains to separate services within an environment.

  • Create AWS IAM roles with substrate role create and use your identity provider to assign the role to people and teams.

  1. substrate

  1. substrate

  1. substrate

  • Start your day with 12 hour temporary credentials by running:

    eval $(substrate credentials) to authenticate with AWS and the Substrate intranet via your identity provider.

  • Access any authorized AWS accounts or roles in your terminal with substrate assume-role and get to work.

  • Use the Substrate intranet to access the AWS console for any authorized account in your organization.

  • Run Terraform, the AWS CLI, etc as whatever role you need.

How do I do with Substrate?

Authenticate your terminal at the start of the day

eval $(substrate credentials)

This grants temporary credentials (12 hours) and stores them in your environment and/or macOS keychain.

Assume roles to move between AWS accounts

substrate assume-role —domain app —environment staging aws ec2 describe-instances

This runs an aws cli command in a specific AWS account specified with the -domain and -environment flags.

Create an AWS account

substrate account create —domain app —environment staging

This will create a new AWS account with the domain 'app' in the 'staging' environment.

Create an AWS IAM role

substrate role create —role Eng

This will create a new IAM Role called Eng.

For a detailed understanding, please refer to the Substrate documentation.