@adaptiveworx/iac-aws

中文文档
0.6.1发布于 2026/10/30Apache-2.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 5848

为AWS——VPC,IAM跨账户角色,GitHub Actions OIDC和IAM政策助手重新使用的Pulumi基础设施组件.

中文使用文档
文档目录10 节
  1. 安装
  2. 构成部分
  3. 使用量
  4. 共享 Vpc 和 IPv6
  5. 等级角色、共享和重命名
  6. 升级至0.6.0
  7. 升级至0.5.0
  8. 升级到0.4.0
  9. 版本发布( L)
  10. 许可证

@ 适应worx/iac- aws

用于 AWS 的可再使用的 Pulumi 基础设施组件,用 TypeScript 写成.

部分 适应WorX iac-core a 包括: 一组开源的 IaC 库,用于多云的 Pulumi 部署.

安装

pnpm add @adaptiveworx/iac-aws @pulumi/aws @pulumi/pulumi

@pulumi/aws 财务报告和审定财务报表 @pulumi/pulumi 是同伴的依赖关系——带来自己的 各个版本.

构成部分

构成部分目的
SharedVpc多级 VPC 有 NAT, 流程日志, RAM 共享, 可配置的每级 CIDR, 在每个子网上可选的 IPv6 二重装
CrossAccountIAMRoles跨账户 Pulumi 角色+ 产品线架构的基础接入角色
GitHubActionsOIDCOIDC 供应商+GitHub Actions CI/CD的部署角色
IAM 政策助手可编译的政策文件构建者

使用量

import { SharedVpc, CrossAccountIAMRoles, GitHubActionsOIDC } from "@adaptiveworx/iac-aws";

const vpc = new SharedVpc("dev-use1", {
  environment: "dev",
  region: "us-east-1",
  accountId: "123456789012",
  orgPrefix: "worx",
  vpcCidr: "10.10.0.0/16",
  availabilityZones: ["us-east-1a", "us-east-1b", "us-east-1c"],
  natGatewayCount: 3,
  enableIpv6: true, // dual-stack: a /64 on every subnet
  subnetTiers: [
    // With enableIpv6 every tier declares a unique, permanent ipv6Slot (0–15). role names the
    // workloads a tier holds; shareWith names the accounts it is shared with.
    { name: "public", role: "load-balancers", routeToInternet: true, shareWith: [], ipv6Slot: 0 },
    { name: "private", role: "apps", routeToInternet: false, shareWith: ["worx-app-dev"], ipv6Slot: 1 },
    { name: "data", role: "databases", routeToInternet: false, shareWith: ["worx-app-dev"], ipv6Slot: 2 },
  ],
  flowLogs: { enabled: true, trafficType: "ALL", retentionDays: 90 },
  sharedAccounts: { "210987654321": "worx-app-dev" },
  tags: {},
});

共享 Vpc 和 IPv6

enableIpv6: true * 将《维也纳公约》的两层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层层 每个子网 a/64 (netnum = ipv6Slot * 16 + AZ-letter index,所以添加一个 AZ 或一个级 重新编号一个已存在的子网),其中 IPv6 被分配到新的网络接口; IPv6 规则每条 级 NACL(编号IPv4对应方+1000,加上UDP返回和ICMPv6包太大); ::/0 进入公共层级的互联网网关,进入私人层级的独家网关,有或有 没有NAT;服务支持IPv6的双层存储 VPC端点.

  • allowIpv4PublicIngress (默认) false,自0.5.0起):没有互联网启动的IPv4进入 公共级别。 准备吧 true 它增加了IPv4,443/80 入境 (第100/110条规则).
  • allowIpv6PublicIngress (默认) false:没有互联网启动的IPv6输入;等级保持 他们需要的入侵 和它的回程交通。 准备吧 true 只为生产优势 它增加了IPv6 4443/80, 并向公众开放。 这个 公开 ::/0 路径总是存在的(它是 IPv6 egress),所以安全小组仍然是控制 进入IPv6.
  • IPv6 egress 无法到达 IPv4 唯一的目的地(例如. github.com, (中文(简体) ), ghcr.io),没有 DNS64/NAT64 (英语). natGatewayCount: 0 仅当其工作量使用 VPC 时才有效 端点或IPv6功能专用目的地.

细节 : 文件/安保-实施。 。 。 .

等级角色、共享和重命名

  • role 列出一个级别的工作量。 有标记 Role 在层层的子网和NACL. 所需(0.6.0美元).
  • shareWith 列出账户(按账户名称分列) sharedAccounts)一个层次的子网共享 通过内存。 与每个账户分级的主要份额; 狭义的组合 自己的份额; [] 无账户的股份。 要求 (0. 6.0); 必须在 sharedAccounts (未关闭). shareViaRam 改为: shareViaRam: true 每一个账户 sharedAccounts, (中文(简体) ), false 与 []默认分级 (单位:千美元)defaultSubnetTiers(sharedAccounts)与每个账户共享私人和数据.
  • formerNames 重命名一个级别而不替换任何内容: 每个资源以级别命名 将它的旧逻辑名作为 Pulumi 化名携带,所以预览仅显示标签更新. 这个 标准产出publicSubnetIds, (中文(简体) ), privateSubnetIds, (中文(简体) ), dataSubnetIds)和NAT的安置 依旧名重新命名的等级. tierSubnetIds 以当前 名称.
  • 每个子网都有标记 AzId 及其区号(区名图到每个账户的物理区). 过 availabilityZoneIds 或让组件查取它们(aws.getAvailabilityZones页:1 普鲁米嘲笑,回来 names 财务报告和审定财务报表 zoneIds 为了那个电话.
  • 导出助手 : tierAliases, (中文(简体) ), tierNamed, (中文(简体) ), validateTierSharing, (中文(简体) ), tierShareTargets, (中文(简体) ), legacyRamAssociationNames。 。 。 .

请查看每个组件的源代码来获取其完整的选项接口.

升级至0.6.0

每个消费者: 下一个预览从运行中的索引重命名每个子网的RAM关联 (单位:千美元)<env>-ram-<tier>-<n>改为分级和AZ字母(<env>-ram-<tier>-<a…p>通过别名,和 添加 AzId 标签( 加) Role 以至子网, 没有东西被替换。 测试套件 在嘲笑下必须回答 aws:index/getAvailabilityZones:getAvailabilityZones 与 names 财务报告和审定财务报表 zoneIds,或通过 availabilityZoneIds。 。 。 .

重命名等级的堆栈,移动到 shareWith 或停止共享同一应用程序中的分级数字 : 通过 legacyRamSharedTiers 与以前主要份额的等级,按名称分列 适用(例如:. ["public", "private", "data"]) (中文(简体) ). 没有它,它所维持的协会将被删除 并重新创建,它会短暂地解析他们的子网. 检查预览: 保留级 关联必须显示为重命名, 绝不显示为创建加删除 .

升级至0.5.0

谁必须行动:具有公共层级的消费者,其公共子网使用互联网 HTTPS/HTTP 在IPv4(例如公共负载平衡器)之上. 设定 allowIpv4PublicIngress: true 为了他们.

公共级别 NACL的TCP 443和80规则来自 0.0.0.0/0 (第100和110条)现在被选入, 与 allowIpv6PublicIngress。没有旗帜,下一次预览会删除这两个规则 每个公共等级的条目,没有什么变化。 VPC CIDR规则(95)和回程交通 规则(120)留下,所以公共层面的目标仍然可以从VPC内部到达,并保持它们的进取.

升级到0.4.0

0:4.0是将"共享Vpc IPv6"更改标记为断裂的放出. 变化本身首先 运入 0.3.4 (中文(简体) ),它已经贬值:它作为补丁发行,尽管它打破了一些 消费者。 平到0.3.3或移动到0.4.0;不要使用0.3.4.

谁必须行动: 设定的消费者 enableIpv6: true。 。 。 .

  • 自定义 subnetTiers: 每一级必须声明 ipv6Slot (整数 0 - 15, 跨 (第1款) 没有它,部件投向建筑, 所以没有部署。 选择 插槽一次而永不更改:分级槽会修正子网的64.
  • 默认等级:它们搭载了0/1/2槽,所以构造成功,但下个预览会转动 在IPv6上到处都是。 每个子网都获得一个64和指定创建(在位更新,从不) ,每一级 NACL 获得IPv6规则, 私人级获得一个只进入的网关路径, 终点会变成双层点 将它视为一种有意的网络变化,每个环境.
  • allowIpv6PublicIngress 现在默认为 false,与公众 ::/0 路径总是存在的 与 IPv6 (参见 共享 Vpc 和 IPv6) (中文(简体) ).

没有消费者 enableIpv6 见无变化.

版本发布( L)

这个包裹是独立铸造的 1.0以下,一个突破的更改会撞出小版本 (0.3.x-0.4.0) 和地物和固定物会撞出补丁. 已标记断开的更改 (!因此,一个 ^0.y.z 范围从来不承认一个。 见 根变换组公约 这个包裹 变动情况。 。 。 .

许可证

阿帕奇-2.0 — 见 自由主义 财务报告和审定财务报表 通知。 。 。 .

版本与发布记录

@adaptiveworx/iac-aws 共发布 16 个版本,首次发布于 2026/04/29;过去 12 个月发布了 16 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.6.1latest2026/10/309 天前
0.6.02026/10/2612 天前
0.5.12026/10/2613 天前
0.5.02026/10/1127 天前
0.4.02026/10/1028 天前
0.3.42026/10/1028 天前

关于 @adaptiveworx/iac-aws 的常见问题

@adaptiveworx/iac-aws 是什么?

为AWS——VPC,IAM跨账户角色,GitHub Actions OIDC和IAM政策助手重新使用的Pulumi基础设施组件.

如何安装 @adaptiveworx/iac-aws?

在项目目录运行 npm install @adaptiveworx/iac-aws,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@pulumi/aws(^7.0.0)、@pulumi/pulumi(^3.0.0)、@adaptiveworx/iac-core(^0.2.0 || ^0.3.0 || ^0.4.0 || ^0.5.0 || ^0.6.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@adaptiveworx/iac-aws 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adaptiveworx/iac-aws 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@adaptiveworx/iac-aws 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=26.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@adaptiveworx/iac-aws 可以商用吗?

@adaptiveworx/iac-aws 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@adaptiveworx/iac-aws 的下载量有多少?

根据 npm 官方下载统计,@adaptiveworx/iac-aws 在 2026/10/05 – 2026/11/03 这 30 天内被下载 5,848 次,日均约 195 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adaptiveworx/iac-aws 还在维护吗?

最新版本 0.6.1 发布于 2026/10/30(9 天前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/04/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。