Penv Cloud
Start free
Docs
Reference

AWS SSM Parameter Store (IAM role)

Move parameters to and from an SSM path through an IAM role you let us assume.

Move parameters to and from an SSM path through an IAM role you let us assume.

Connection

WhatThis provider
VendorAmazon Web Services
Keyaws-ssm-role
Availabilityavailable. You can connect it today.
Credential we holdaws-role
Values read backyes
Activationimmediate

Directions

DirectionWhat it does
importWe read names and values out of the store into your environment.
exportWe write names and values from your environment into the store.

Activation

immediate. The running app sees a new value at once.

Conflict policies

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

How syncs work says what each one does.

Connect

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

We generate the shared value the grant is conditioned on, so you invent nothing.

CloudFormation: recommended, fastest and most secure

One pre-filled stack; your connection is live when it finishes. Follow a prepared link into the vendor's console. The vendor calls us back when the grant lands.

Set aside about 2 minutes.

  1. Confirm you're signed into the AWS account you want to connect. Switch accounts first if you are not.
  2. Open the pre-filled Create Stack page and tick the IAM acknowledgement.
  3. Create the stack and leave this tab open; it flips to Connected on its own.

Terraform

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 we 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. Set up the grant by hand in the vendor's console. 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
penvAccountIdOur 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 we 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.

Connection fields

You set these when you connect. Every mapping on the connection shares them.

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.
basePathBase pathtextyesnoThe widest SSM path this connection may touch. Every sync scope will sit under it.
roleArnRole ARNread only, filled in for youyesnoThe role we assume. We fill it in from the grant you completed.
engineRoleArnsAssumable engine rolestextnoyesOnly for dynamic secrets, and fixed once the connection exists. Comma-separated role ARNs this connection may assume; leave empty to grant none.

Mapping fields

You answer these once per environment you map.

FieldLabelKindRequiredAdvancedWhat it is
pathSSM pathtextyesnoMaps onto this environment. Will sit under the connection's base path.
recursiveInclude nested pathsyes or noyesyesNested SSM paths become the parameter's path prefix with us. Starts at true.

Required permissions

We probe for these when we verify the connection.

PermissionDirectionsBlockingWithout it
sts:GetCallerIdentityevery directionyesWe cannot confirm which IAM identity this credential is.
ssm:GetParametersByPathevery directionyesPreview cannot list what is under this path.
kms:DecryptimportnoSecureString parameters will import empty
ssm:PutParameterexportyesExport cannot write anything.
kms:EncryptexportyesExport cannot write SecureString parameters.
ssm:DeleteParameterexportnoThe overwrite_and_prune policy cannot remove remote keys.