@adaptiveworx/iac-policies

中文文档
0.2.3发布于 2026/10/04Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 2348

由Pulumi CrossGuard政策原始人组成,用于跨云基础设施治理:标记执行、区域合规、部署大门和AWS安全基线。 消费者将原始人编成自己的"政策包".

中文使用文档
文档目录9 节
  1. 安装
  2. 消费者如何组成一个包
  3. 示例: AWS 消费者
  4. 示例: Azure 消费者
  5. 为什么没有内置包?
  6. 遵约说明
  7. 稳定
  8. 许可证
  9. 仓库

@adaptiveworx/iac-policies

可作曲的普鲁米克罗斯盖德政策原始人. 图书馆,不是完整的包 消费者将原始人编成自己的 PolicyPack 与符合其兽形的配置相匹配.

三项跨云政策+一项AWS:

工厂云头它会做什么
requireTagsPolicy横云拒绝缺少所需标记的资源( 或有不匹配的预期值)
regionalCompliancePolicy跨云(AWS- 默认; Azure/GCP 可配置)在允许的区域列表之外拒绝资源
deploymentProtectionPolicy横云CI/CD中未运行的块生产部署
awsSecurityBaselinePolicy自动取款机S3 公共- ACL 拒绝 + S3 加密配置存在

附加用于遵约说明的类别出口: FrameworkControls, (中文(简体) ), ComplianceEvidence,未来用途 emitEvidence ub.

安装

pnpm add @adaptiveworx/iac-policies @pulumi/policy @pulumi/pulumi

@pulumi/policy 财务报告和审定财务报表 @pulumi/pulumi 是同伴的依赖关系.

消费者如何组成一个包

每个消费者在回购中都保留自己的成套政策目录:

my-repo/
└── policies/
    ├── PulumiPolicy.yaml     # pack manifest
    ├── package.json          # depends on @adaptiveworx/iac-policies + @pulumi/policy + @pulumi/pulumi
    └── index.ts              # imports primitives + constructs PolicyPack

PulumiPolicy.yaml数字 :

name: my-org-policies
runtime: nodejs
description: My org's policy pack composed from @adaptiveworx/iac-policies primitives

index.ts 实例如下.

示例: AWS 消费者

使用所有四个原始人。 从上下文拉出堆栈 @adaptiveworx/iac-core 标记值与 Pulumi 同步 堆放包对面.

import { PolicyPack } from "@pulumi/policy";
import { detectStackContext } from "@adaptiveworx/iac-core";
import {
  requireTagsPolicy, // requiredTags defaults to DEFAULT_REQUIRED_TAGS: Environment, Workload, ManagedBy
  regionalCompliancePolicy,
  awsSecurityBaselinePolicy,
  deploymentProtectionPolicy,
  AWS_NON_TAGGABLE_RESOURCES,
} from "@adaptiveworx/iac-policies";

const ctx = detectStackContext();

new PolicyPack("my-aws-policies", {
  policies: [
    requireTagsPolicy({
      requiredTags: ["Environment", "AccountPurpose", "StackPurpose"],
      expectedTagValues: () => ({
        Environment: ctx.targetEnvironment ?? ctx.environment,
        AccountPurpose: ctx.accountPurpose,
        StackPurpose: ctx.stackPurpose,
      }),
      skipResourceTypes: AWS_NON_TAGGABLE_RESOURCES,
      skipResourceTypePrefixes: ["pulumi:"],
    }),

    regionalCompliancePolicy({
      allowedRegions:
        ctx.environment === "prd" ? ["us-east-1", "us-west-2"] : ["us-east-1"],
    }),

    awsSecurityBaselinePolicy(),

    deploymentProtectionPolicy({
      productionEnvironments: ["prd", "sec"],
      environmentResolver: () => ctx.targetEnvironment ?? ctx.environment,
    }),
  ],
});

然后部署与包:

pulumi preview --policy-pack ./policies
pulumi up      --policy-pack ./policies

示例: Azure 消费者

独取相克相克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克 消费者加了他们自己的Azure特有产品 基线(储存、密钥金库等)作为同一处的额外政策 需要的时候打包.

import { PolicyPack } from "@pulumi/policy";
import {
  requireTagsPolicy, // requiredTags defaults to DEFAULT_REQUIRED_TAGS: Environment, Workload, ManagedBy
  regionalCompliancePolicy,
  deploymentProtectionPolicy,
} from "@adaptiveworx/iac-policies";

new PolicyPack("my-azure-policies", {
  policies: [
    requireTagsPolicy({
      requiredTags: ["Environment", "Owner"],
    }),

    regionalCompliancePolicy({
      allowedRegions: ["westus3", "eastus2"],
      resourceTypeMatcher: t => t.startsWith("azure-native:"),
      regionExtractor: args => args.props.location as string | undefined,
    }),

    deploymentProtectionPolicy({
      productionEnvironments: ["prod"],
      environmentResolver: () => process.env.PULUMI_STACK ?? "dev",
    }),

    // (No AWS baseline — write Azure-specific baseline policies as
    //  needed and add them to this pack.)
  ],
});

为什么没有内置包?

大多数政策关注是针对消费者的:

  • 需要的标记不同 —— 说 Environment, (中文(简体) ), Owner, (中文(简体) ), CostCenter, (中文(简体) ), Compliance,, , , , , , , ,
  • 允许的区域各不相同 ——按租户,数据居住情况,环境分类
  • 合规框架各不相同 - 保健问题高级管理局;支付费用问题高级管理局;ISO27001基线
  • 生产门不同 —— 说 prd, (中文(简体) ), prod, (中文(简体) ), production,有时也 sec编号 :mgmt
  • 云面变化 只有AWS的消费者不希望Azure进行特定检查,反之亦然

装运一个预先制造的包要么过于笼统,无法使用,要么过于适应性WorX,无法共享。 一个原始人库是可相容的,可相容的,让每个消费者都符合自己的惯例.

遵约说明

使用 FrameworkControls (c) 记录某一项政策所要求的遵守情况:

import type { FrameworkControls } from "@adaptiveworx/iac-policies";

const tagControls: FrameworkControls = {
  "NIST-800-53": ["CM-2", "CM-8"],
  ISO27001: ["A.8.1.1"],
};

这些是注释类型——它们不驱动运行时的行为,但它们是合规报告和审计证据管道所连接的.

稳定

0.x 原始地表稳定下来 后向相容的 API 变化将是大起落;小版本会添加新的原始或非破解选项字段.

许可证

Apache 2.0 (英语)。见 通知。 。 。 .

仓库

github.com/AdaptiveWorX/iac-core/树干/主/包/iac-policys (英语)问题: iac-core/问题。 。 。 .

版本与发布记录

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

版本发布日期距今
0.2.3latest2026/10/041 个月前
0.2.22026/10/041 个月前
0.2.12026/05/026 个月前
0.2.02026/05/026 个月前
0.1.22026/05/026 个月前
0.1.12026/04/306 个月前

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

@adaptiveworx/iac-policies 是什么?

由Pulumi CrossGuard政策原始人组成,用于跨云基础设施治理:标记执行、区域合规、部署大门和AWS安全基线。 消费者将原始人编成自己的"政策包".

如何安装 @adaptiveworx/iac-policies?

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

@adaptiveworx/iac-policies 支持 TypeScript 吗?

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

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

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

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

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

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

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

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

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

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

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