【问题标题】:Use aws_access_key_id and aws_access_secret_key in cloudformation to update a route 53 hosted zone在 cloudformation 中使用 aws_access_key_id 和 aws_access_secret_key 更新路由 53 托管区域
【发布时间】:2016-06-01 01:28:03
【问题描述】:

鉴于: 管理路由 53 托管区域域(例如 example.com)的 AWS 账户的 aws_access_key_id 和 aws_access_secret_key。

目标:以其他 AWS 用户的身份使用提供的凭证并使用记录集更新托管区域(dummy.example.com 为 56.22.55.11)。

怎么样?可能吗?

【问题讨论】:

    标签: amazon-web-services amazon-route53 amazon-cloudformation


    【解决方案1】:
    1. 编写了一个使用凭证并更新托管区域的 Lambda 函数。
    2. 在云编队中,添加了自定义资源

    【讨论】:

    • 使用自定义 Lambda 资源的好举措。只是一个建议,假设您是 lambda,您可以执行 STS Assume 角色,然后与不同 AWS 账户的 Route 53 记录集进行交互。这样,您无需对 IAM 访问密钥进行硬编码,而是可以使用 IAM 角色。如果您还没有使用它,只是一个想法。
    • 谢谢。我去试试。
    【解决方案2】:

    您需要使用 STS 的 AssumeRole 功能:

    http://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html http://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html

    我工作的公司提供了一个开源工具,一旦你设置好了,就可以更轻松地使用它:

    https://github.com/remind101/assume-role

    祝你好运!

    【讨论】:

    • 你能扮演一个角色并通过执行 API 调用吗? CloudFormation ?
    • 我不完全确定您的意思 - 您将承担一个角色,然后如果您想以该角色的身份执行这些 cloudformation 调用,则调用 Cloudformation 的 API。这就是你要问的吗?或者您是在问是否可以让 Cloudformation 堆栈担任角色?我不认为这是可能的,尽管这似乎是一种不同的做事顺序,并不是非常必要的。
    • 问题是利用 CloudFormation 来操作不同的 AWS 账户的 Route53 记录集。您已经提到 STS 作为答案 - 所以想知道您是否可以在 CloudFormation 模板/堆栈本身中执行 STS 角色假设。
    • 啊,好的,是的 - 这在 Cloudformation 中是不可能的。 Cloudformation 特定于您在其中创建资源的帐户。在这种情况下,您使用的解决方案是在您对 Cloudformation 进行 CreateStack 或 UpdateStack 调用时,使用 AssumeRole 代入新帐户中的角色,但这会导致CF 堆栈位于目标帐户中,而不是您的主帐户中。希望这是有道理的。
    • 请提供一个使用 aws_access_key_id 和 aws_access_secret_key 的云形成示例。
    猜你喜欢
    • 2018-01-20
    • 2017-11-18
    • 2020-08-28
    • 1970-01-01
    • 2021-08-27
    • 2022-12-15
    • 2023-03-26
    • 2016-06-28
    相关资源
    最近更新 更多