0

我目前正在使用 AutoScalingGroups 来管理堆栈中节点的生命周期。在堆栈创建期间,脚本会创建一个 ssh 密钥,然后与集群中的所有节点共享,以允许管理员用户能够在堆栈内的节点之间进行 ssh。这是正在部署的软件的要求,以具有无密码 ssh 访问权限。还要求每个堆栈都有自己的 ssh 密钥,而不是使用共享的。

不幸的是,当 ASG 替换坏节点时,新节点中的 ssh 密钥不可用。/home/adminuser/.ssh/authorized_keys 文件不包含我在创建堆栈时创建的 ssh 密钥。我正在寻找一种存储 ssh 密钥的方法,以便可以将其添加到 ASG 创建的新节点中。

我发现 SSM 能够放置和获取参数: http: //docs.aws.amazon.com/cli/latest/reference/ssm/put-parameter.html http://docs.aws.amazon.com/ cli/latest/reference/ssm/get-parameter.html

这可以工作。我可以在这里存储所有 Stack 的 ssh 密钥,然后每个 Stack 可以只在存储库中查询私钥。不幸的是,这不起作用,因为我帐户中所有堆栈中的所有节点都可以看到这些值。我希望参数仅可用于堆栈中的节点。

一个堆栈可能用于测试,而另一个堆栈用于同一帐户下的生产。我不希望测试用户能够查询与生产堆栈关联的参数。

有没有办法为只有堆栈可用的堆栈放置变量/参数?还有另一种方法可以做到这一点吗?

4

0 回答 0