如何从AWS参数存储中导出参数并导入到另一个帐户

时间:2019-02-20 13:10:30

标签: amazon-web-services ssm amazon-systems-manager aws-parameter-store

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

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

我想将它们转移到我的 second aws帐户。

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

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

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

5 个答案:

答案 0 :(得分:8)

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

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

查看 aws-ssm-copy 实用程序和 blog 以了解更多详细信息。

答案 1 :(得分:3)

这是我的版本,它以 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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

  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"`);
}

答案 4 :(得分:0)

好吧,我知道已经过去了一年,但是对于仍在努力找出详细解决方案的人们来说,

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

aws ssm get-parameters-by-path --path "/" –recursive

您将收到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');

然后通过运行命令npm安装npm install软件包并通过命令npm start运行脚本