如何从 aws 参数存储中导出参数并导入另一个帐户
Posted
技术标签:
【中文标题】如何从 aws 参数存储中导出参数并导入另一个帐户【英文标题】:How to export parameters from aws parameter store and import into another account 【发布时间】:2019-07-14 04:34:38 【问题描述】:在我的第一个 aws 帐户上,我以以下方式指定了参数:
/config/a => value1
/config/b => value2
/config/c/a => value31
/config/c/b => value32
我想将这些移动到我的 second aws 帐户。
我在参数存储中手动创建了这些参数。
如何轻松地将这些值从一个帐户复制到另一个帐户?
使用aws ssm get-parameters --names "<param-name>"
会有点困难,因为我的参数太多了。
【问题讨论】:
【参考方案1】:可能是 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
【讨论】:
【参考方案2】:-
通过
aws ssm get-parameters-by-path --path "/relative/path/" --recursive
检索所有参数
将生成的 JSON 写入某处 - 例如放入文件中
准备放置命令,例如用JS
for (const value of params.Parameters)
const Name, Value = value;
console.log(`aws ssm put-parameter --name "$Name" --value "$Value" --type "String"`);
【讨论】:
【参考方案3】:好吧,我知道已经过去了一年,但是对于仍在试图找出详细解决方案的人来说,
因此您需要运行以下命令来获取当前区域中的所有参数:
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')
;
然后通过运行命令npm install
安装npm
包并通过命令npm start
运行脚本
【讨论】:
【参考方案4】:我创建了一个实用程序,它完全符合您的要求:
pip install aws-ssm-copy
aws-ssm-copy --dry-run --source-profile <source> --recursive /
查看aws-ssm-copy 实用程序和blog 了解更多详情。
【讨论】:
这似乎是一个很棒的工具,但遇到错误“botocore.exceptions.NoRegionError: You must specify a region”,即使在使用“aws-ssm-copy --dry-run --source -profile dprdnka --source-region us-west-2 --recursive /"【参考方案5】:这是我的版本,它以 TSV(制表符分隔值)格式输出所有参数的 Name
、Type
和 Value
:
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
【讨论】:
以上是关于如何从 aws 参数存储中导出参数并导入另一个帐户的主要内容,如果未能解决你的问题,请参考以下文章