【问题标题】:Pass stack resource value to another account将堆栈资源值传递给另一个帐户
【发布时间】:2021-06-28 23:43:48
【问题描述】:

我在帐户 A 中有一个日志组,我想将它发送到另一个帐户 B 中的 kinesis 流。我正在关注 https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CrossAccountSubscriptions.html 来实现它(在打字稿中)。

Account B 中,我创建了一个跨账户目的地:

const logDestination = new CrossAccountDestination(this, 'LogDestination', {
    destinationName: 'LogDestination',
    role: IAMRole,
    targetArn: kinesisStream.streamArn
});

Account A 中,我正在尝试创建订阅过滤器:

const filter = lambdaFunction.logGroup.addSubscriptionFilter('Filter', {
            filterPattern: pattern,
            destination: ... 
})

如何在账户 A 的模板中引用账户 B 的跨账户目的地,以便将来自 A 的日志发送到 B 中的目的地?

【问题讨论】:

    标签: typescript amazon-web-services yaml amazon-cloudformation amazon-kinesis


    【解决方案1】:

    如果您正在考虑Export/ImportValue 类型的引用,则没有这样的选项。 CloudFormation (CFN) 不支持该类型的跨区域或跨账户引用。

    这意味着您基本上必须执行以下操作之一:

    • 使用Parameters 将值从 Acc1 传递到 Acc2。因此,您可以通过编程方式执行此操作(创建堆栈 1,获取其输出,然后创建堆栈 2,将所需的输出作为参数传递)。

    • 在 Acc 2 中开发一个 custom resource lambda 函数。该函数将有权查询 Acc 1 中的堆栈 1 的输出,并将它们返回到堆栈 2。这可以是完全自动化的解决方案,全部包含在 CFN 中。

    其他解决方案也是可能的,例如使用 SSM Parameter Store,但以上两个是我见过的最常用的两个。

    【讨论】:

    • 我正在尝试将日志从一个帐户发送到另一个帐户的日志目标。在账户 A 中,我创建了const logDestination = new CrossAccountDestination。在帐户 B 中,我正在创建订阅过滤器const subscriptionFilter = lambdaFunction.logGroup.addSubscriptionFilter( 'filterName', destination: ....) 通过使用 CfnParameter,我能否将日志从 B 发送到在 A 中创建的目的地? @marcin
    • @Tisha 根据 cmets 很难看出你在做什么。我认为最好用相关的代码示例和错误来更新问题,或者针对日志问题提出新的问题。
    • 当然,我已经更新了问题,包括更多细节。请看一下。谢谢你。 @Marcin
    【解决方案2】:

    回答你的问题:

    在账户 B 中创建 CrossAccountDestination 后, 在单个 app.ts 中实例化 Account A 和 Account B,并将 Account B 中实例化的 CrossAccountDestination 作为 Account A 的输入属性,即

    const AccountBStack = new AccountBStack(app, `Account B`, deploymentProps={....});
    
    const AccountAStack = new AccountAStack(app, `Account A`, 
    deploymentProps= {CrossAccountDestination: AccountBStack.CrossAccountDestination, ...}
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-15
      • 2021-11-10
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多