Docs
Reference

AWS Amplify branch environment variables

A branch's build and runtime read these. A write replaces the whole set, so a console edit made between our read and our write is lost.

A branch's build and runtime read these. A write replaces the whole set, so a console edit made between our read and our write is lost.

The connection

WhatThis provider
VendorAmazon Web Services
Keyaws-amplify-branch-env
Availabilityavailable. You can connect it today.
Credential penv holdsaws-role
Values read backyes
Activationon-next-deploy

What it moves

DirectionWhat it does
importReads names and values out of the store into penv.
exportWrites names and values from penv into the store.

When a written value goes live

on-next-deploy. A new value waits there and arrives with your next deploy.

What happens to a name that exists

DirectionPolicies you can pick
importskip_existing, new_version, fail
exportcreate_only, overwrite, overwrite_and_prune

How syncs work says what each one does.

How you connect

You grant penv access in your own AWS account. Pick one of these in the wizard.

penv generates the shared value the grant is conditioned on, so there is nothing for you to invent.

Terraform: recommended, the grant is reviewable before it exists

Review the grant in code, then paste the role ARN back. Apply a rendered policy or template. You paste the result back into the wizard.

Set aside about 10 minutes.

  1. Add the snippet to your AWS account's Terraform and apply it.
  2. Paste the penv_role_arn output back here.

It gives you:

NameLabelKindWhat it is
snippetTerraformread only, a block to copy
externalIdExternal IDread only, filled in for youAlready baked into the snippet. Only Penv-cloud can assume the role with it.

You paste back:

FieldLabelKindRequiredWhat it is
roleArnRole ARNtextyesThe ARN the grant printed. We assume it once to check it before saving.

Manual

Create the role manually from the two policies below. Paste a credential you already hold. You paste the result back into the wizard.

Set aside about 10 minutes.

  1. In IAM, create a role for another AWS account and paste the trust policy below.
  2. Attach the permissions policy below as an inline policy.
  3. Paste the role's ARN back here.

It gives you:

NameLabelKindWhat it is
penvAccountIdPenv-cloud AWS account IDread only, filled in for youThe account the role trusts.
roleNameSuggested role nameread only, filled in for youUnique to this attempt, so it cannot collide with a role another connection made.
externalIdExternal IDread only, filled in for youRequired in the trust policy. Only Penv-cloud can assume the role with it.
trustPolicyTrust policyread only, a block to copy
permissionsPolicyPermissions policyread only, a block to copy

You paste back:

FieldLabelKindRequiredWhat it is
roleArnRole ARNtextyesThe ARN the grant printed. We assume it once to check it before saving.

What the connection asks for

Fixed when you connect, and shared by every mapping on it.

FieldLabelKindRequiredAdvancedWhat it is
regionRegiontextyesnoThe region this connection reaches. One connection covers one region.
accountIdAccount IDtextnoyesIf supplied, the generated policy names the account instead of a wildcard.
appIdApp IDtextyesnoThe Amplify app this connection may touch. The grant is scoped to it.
roleArnRole ARNread only, filled in for youyesnoThe role we assume. Filled in by the grant you just completed.

What a mapping asks for

Answered once per environment you map.

FieldLabelKindRequiredAdvancedWhat it is
branchNameBranchtextyesnoThe branch whose environment variables this maps onto.

Permissions it needs

penv probes for these when it verifies the connection.

PermissionDirectionsBlockingWithout it
sts:GetCallerIdentityevery directionyesWe cannot confirm which IAM identity this credential is.
amplify:GetBranchevery directionyesPreview cannot list the branch's variables.
amplify:UpdateBranchexportyesExport cannot write anything.