Overview

MultiStringParameter — Sops to multiple SSM ParameterStore Parameters

const multi = new MultiStringParameter(stack, 'MyMultiParameter', {
  encryptionKey: Key.fromLookup(stack, 'DefaultKey', {
    aliasName: 'alias/aws/ssm',
  }),
  sopsFilePath: 'secrets/sopsfile-encrypted-secret.json',
});

This creates several SSM Parameter Store parameters:

ParameterName       Value
 
/apiKey             "sk-1234567890abcdef"
/database/user      "admin"
/database/password  "P@ssw0rd!"
/database/host      "db.example.com"
/tokens/0/service   "github"
/tokens/0/token     "ghp_abcd1234"
/tokens/1/service   "aws"
/tokens/1/token     "AKIAIOSFODNN7EXAMPLE"
/someOtherKey       "base64:VGhpcyBpcyBhIHNlY3JldCBrZXk="

Naming schema#

Configure how parameter names are built with keyPrefix and keySeparator:

const multi = new MultiStringParameter(stack, 'MyMultiParameter', {
  keyPrefix: 'mykeyprefix.',  // all keys start with this string, default '/'
  keySeparator: '-',          // used when flattening nested keys, default '/'
});

This produces parameters like:

ParameterName                 Value
 
mykeyprefix.apiKey            "sk-1234567890abcdef"
mykeyprefix.database-user     "admin"
mykeyprefix.tokens-0-service  "github"
...