gpt4 book ai didi

amazon-web-services - 从客户端环境获取 CloudFormation 堆栈输出

转载 作者:行者123 更新时间:2023-12-03 07:38:48 25 4
gpt4 key购买 nike

我们正在努力创建一个 CloudFormation 堆栈,该堆栈将发布给客户,以便在客户的 AWS 环境中安装我们产品的“本地”代理。我们希望从我们的一端启动连接,并根据 CloudFormation 的输出添加一些配置。

有没有办法自动将 CloudFormation 的输出传输回模板的发布者?我一直在网上寻找解决方案,但没有成功。不确定这是否可能 - 但我希望这里有人可能做过类似的事情。

找不到任何解决方案。据我所知,“唯一”的方法是要求客户端手动发回输出,但我很高兴被证明是错误的:)

最佳答案

所以我碰巧正在做类似的事情,这就是我发现的有效方法。我将列举一些注意事项。

TLDR;

要让 CloudFormation 堆栈“回拨”,您可以指定一个 SNS 主题,堆栈将在创建、更新和/或删除时向该主题发布更改。 CloudFormation docs (请参阅“通知选项”)和 CLI reference (参见“--notification-arns”)提及这一点。然后,您可以让 Lambda 响应 SNS 消息以实现您所需的行为。不幸的是,您无法在堆栈模板中指定此主题,只能在调用创建堆栈时提供 is。这可以通过使用 nested CloudFormation stack 来解决。 .

我的(当前)方法:

  1. 使用具有 resource policy 的 SNS 主题它允许安装用户的 AWS 账户向您的主题发布消息。 AWS documents how to do this ,但请注意,使用 AWS Account Principal SNS 主题策略(到目前为止,这是唯一对我有用的策略)允许客户帐户中的任何内容发布到 SNS 主题。这个安全问题是我尚未解决的一部分,最好是 Service Principal 的组合。并且可以使用限制性 IAM 政策条件。

  2. 创建一个提供给用户的模板,该模板充当顶级堆栈,并包含一个嵌套堆栈,您将使用该堆栈在用户的 AWS 账户中创建资源。这也让您有机会做类似 use a mapping 的事情为您的 CloudFormation 通知指定每个区域的 SNS 主题。

  3. specifying your nested stack在您的顶级堆栈模板中,您可以使用 NotificationARNs 属性来提供 SNS 主题 ARN,以便嵌套堆栈向您报告。

  4. 订阅 SNS 主题的 Lambda(或其他机制)需要解析和过滤 CloudFormation 发布的消息才能做出适当的 react 。当需要获取用户 AWS 账户中 IAM 角色等内容的 ARN 时,我的建议是为该角色指定一个静态名称,以便您可以通过使用用户的 AWS 账户 ID 和角色名称来了解该角色的 ARN。理想情况下,该角色将有权检索有关 CloudFormation 堆栈的信息,以便您可以获得 ARN 以及有关您的堆栈创建的任何其他资源的其他数据。

关于amazon-web-services - 从客户端环境获取 CloudFormation 堆栈输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75286228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com