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

Igo*_* L. 8 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
Run Code Online (Sandbox Code Playgroud)

我想将这些移动到我的第二个aws 帐户。

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

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

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

Mar*_*ijn 8

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

pip install aws-ssm-copy
aws-ssm-copy --dry-run --source-profile <source> --recursive /
Run Code Online (Sandbox Code Playgroud)

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


Igo*_* L. 6

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


Vla*_*iev 6

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

aws ssm get-parameters-by-path --path "/" --recursive --query="Parameters[*].[Name, Type, Value]" --output text
Run Code Online (Sandbox Code Playgroud)

响应示例:

/prod/aaa    String  xxx
/prod/bbb    String  yyy
/prod/ccc    String  zzz
Run Code Online (Sandbox Code Playgroud)


Pub*_*ana 5

可能是 get-parameters-by-path 适合这里: aws ssm get-parameters-by-path --path "/" --recursive

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