如何从 aws parameter store 导出参数并导入到另一个账户

How to export parameters from aws parameter store and import into another account

在我的第一个 aws 帐户上,我按以下方式指定了参数:

/config/a => value1
/config/b => value2
/config/c/a => value31
/config/c/b => value32

我想将这些移动到我的 second aws 帐户。

我在参数存储中手动创建了这些参数。

如何轻松地将这些值从一个帐户复制到另一个帐户?

使用 aws ssm get-parameters --names "<param-name>" 有点太难了,因为我的参数太多了。

这里可能是按路径获取参数: aws ssm get-parameters-by-path --path "/" --recursive

https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters-by-path.html#synopsis

  1. 通过aws ssm get-parameters-by-path --path "/relative/path/" --recursive
  2. 检索所有参数
  3. 将结果 JSON 写在某处 - 例如放入文件
  4. 准备放置命令,例如与 JS
for (const value of params.Parameters) {
    const { Name, Value } = value;
    console.log(`aws ssm put-parameter --name "${Name}" --value "${Value}" --type "String"`);
}

好吧,我知道已经过去一年了,但是,对于仍在努力弄清楚的人来说,这里是详细的解决方案,

因此您需要运行以下命令来获取您当前区域的所有参数:

aws ssm get-parameters-by-path --path "/" --recursive --with-decryption --region eu-west-2

您将收到 JSON 格式的回复。只需复制响应并将其粘贴到文件中(*.txt 文件,然后将其重命名为 *.json)。您拥有包含所有当前参数的 JSON 文件

我将该代码发布到 git 存储库 here。克隆后只需克隆该存储库,在此处添加您想要的区域:

const ssm = new AWS.SSM({

apiVersion: '2014-11-06';,

region: 'eu-west-2'; // add your destination region here.

});

和您的 json 文件:const { Parameters } = await require('<YOUR JSON FILE>.json');

然后通过 运行ning 命令 npm install 安装 npm 包,通过命令 npm start

安装 运行 脚本

我创建了一个完全符合您要求的实用程序:

pip install aws-ssm-copy
aws-ssm-copy --dry-run --source-profile <source> --recursive /

查看 aws-ssm-copy utility and blog 了解更多详情。

这是我的版本,它以 TSV(制表符分隔值)格式输出所有参数的 NameTypeValue

aws ssm get-parameters-by-path --path "/" --recursive --query="Parameters[*].[Name, Type, Value]" --output text

示例响应:

/prod/aaa    String  xxx
/prod/bbb    String  yyy
/prod/ccc    String  zzz