【发布时间】:2022-11-11 05:03:14
【问题描述】:
我目前正在使用 pulumi 引导 AWS 组织设置。 (prod/dev/... 帐户、安全帐户、ci 访问等 - 我认为在 azure 中这个概念被称为“登陆区”,但由于这个名称是指 AWS 上的特定产品,所以我没有在这里使用它.)
我想做的是
- 新建一堆子账号
aws.organizations.Account - 部署资源进入这些子帐户(例如:ci 访问、用户、角色等)
这是我尝试过的——据我所知,“相同”的代码在 terraform 中有效:
const account = new organizations.Account("account", { roleName: "some-role-name-for-the-parent-account-to-assume", ... }) const provider = new Provider("subaccount-provider", { assumeRole: { roleArn: `arn:aws:iam::${account.id}:role/${account.roleName}` } }) const otherResource = new WhateverAWSResource( "other-resource", { ... }, // the role assumed by the provider will result in the resource being created in the subaccount { provider } )现在的问题是:
-
Account实例不公开roleArn - 在 pulumi 中不允许字符串插值,因为
account.id和account.roleName是Output<string>类型
问题:有没有办法让这样的工作?最好
- 没有在
-.yaml级别显式拆分项目/堆栈。这将需要额外的管道并且感觉非常不雅,因为它会在回购结构中引入大量噪音。 - 不使用自动化 API。
我认为自动化 API 可以很好地使其工作,但对于这个用例来说似乎有点不合时宜。
-
【问题讨论】:
标签: amazon-web-services pulumi infrastructure-as-code aws-organizations