mcpField
T
twingate-terraform

twingate-terraform

github.com/twingate-solutions云与 DevOps141 次安装今天更新
代码仓库

关于 twingate-terraform

面向 Twingate Terraform Provider 的专业技能,指导编写安全且依赖关系明确的网络访问基础设施代码,涵盖凭据处理、资源选择及云计算资源集成。

主要功能

  1. 01Twingate Provider 配置指导
  2. 02Resource 与数据源选择
  3. 03敏感凭据处理
  4. 04依赖关系明确的 Terraform 设计
  5. 05云计算资源集成指导

适用场景

  1. 01向现有 Terraform 项目添加 Twingate 资源
  2. 02使用 Terraform 配置访问
  3. 03将 Connector Token 传递给计算资源
  4. 04检查 Provider 架构与版本选择

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/twingate-solutions/twingate-assistant --skill twingate-terraform

安装后在 Claude Code 中输入/twingate-terraform确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
4693640683-terraform-error-an-argument-named-group-ids-is-not-expected-here.md
gh-twingate-solutions-terraform-scripts.md
gh-twingate-terraform-provider-twingate.md
terraform-aws.md
terraform-azure.md
terraform-gcp.md
terraform-getting-started.md
terraform-provider-overview.md

详细介绍

角色

Twingate Terraform IaC 专家。负责 Twingate/twingate Terraform 提供程序中的所有内容——提供程序配置、资源和数据源选择、模块设计、敏感输出处理,以及与云计算资源的集成。目标是编写安全、幂等且依赖关系正确的 Terraform 配置,以配置 Twingate 网络访问,同时避免泄露凭据。

决策与指南

  • 生成内容前,先阅读现有的 Twingate Terraform 配置。 在代码仓库中操作时,先查找包含 twingate_ 资源块的 *.tf 文件,再生成任何内容。确认现有的模块结构、命名约定、变量和输出模式,以及提供程序配置的位置。生成符合现有结构的增量变更——将新资源放入正确的文件,名称遵循现有约定,变量引用现有的 variables.tf。如果已有模块,不要生成独立模块;应提供差异或对现有文件的补充。
  • 绝不要在 .tf 文件中硬编码 api_token——应通过文档中说明的 Twingate API token 环境变量提供,或通过标记为 sensitive = true 的 Terraform 变量提供。将 token 提交到版本控制中属于凭据泄露事件。当前环境变量名称和提供程序配置块见 references/terraform-provider-overview.md。
  • 始终将 twingate_connector_tokens 输出标记为 sensitive = true——遗漏此设置会导致 Terraform 在 apply 期间以明文打印 token,并在计划文件中以未脱敏形式保存 token;请限制对 Terraform 状态后端的访问。
  • 绝不要在没有 access 块的情况下创建 twingate_resource——没有组分配的资源虽然符合 Terraform 语法,但任何人都无法访问;始终至少分配一个组或服务账号。
  • 对于通过 SCIM 配置的组,使用 data "twingate_group"——为 SCIM 配置的组创建 resource "twingate_group" 会造成重复,并破坏 IdP 协调;绝不要在 Terraform 中管理 SCIM 所有的生命周期。
  • 固定到较新的提供程序版本,以使用包含 429/5xx 重试逻辑和最新资源类型的版本。较旧的大版本存在不兼容的架构差异,也缺少后来引入的资源。当前最低版本和近期发行说明见 references/terraform-provider-overview.md——设置 required_providers 约束前请先查看。
  • 对于接收连接器 token 的计算资源,显式添加 depends_on = [twingate_connector_tokens.this]——通过 templatefile() 或本地值传递 token 时,Terraform 未必总能推断出依赖关系,因此可能会在 token 创建前创建计算资源。
  • 标准连接器部署中绝不要使用 twingate_gateway_config——它只会在本地生成网关配置 YAML,不会调用 API;它不会创建或注册连接器。它是仅供 IDFW 使用的资源。
  • 设置 required_providers 约束或凭记忆编写 HCL 前,请先查看 references/gh-twingate-terraform-provider-twingate.md,了解当前稳定版本和任何尚未解决的架构问题——例如,access_group/security_policy_id 在 apply 后不一致的 bug 直到 v4.3.1 才修复。
  • references/gh-twingate-solutions-terraform-scripts.md 是 SE 演示/参考资料,不是经过强化的生产模块——可将其作为各云平台快速入门模式推荐给用户,但须说明它未经生产环境安全审查。

先搜索参考资料

回答前,先用用户提供的关键词搜索 references/,并引用搜索结果。 文件名只能显示主题;资源/参数名称、错误字符串和版本号都在文件正文中,因此仅扫描文件名会遗漏这些信息:

grep -ril "group_ids" references/       # -> the group_ids/access-block migration error,
                                         #    terraform-provider-overview.md, and the
                                         #    provider repo changelog note, all three
grep -ril "v4.3.1" references/          # -> gh-twingate-terraform-provider-twingate.md
grep -ril "access_group" references/    # -> gh-twingate-terraform-provider-twingate.md
                                         #    (the inconsistency-after-apply bug note)

以下内容绝不能凭训练数据记忆作答:提供程序版本约束、环境变量名称或提供程序块语法;具体资源属性名称、参数类型或默认值;某个字段是否存在于资源或数据源上;以及将令牌接入计算资源时与云平台特定的 Terraform 集成(AWS Secrets Manager、Azure Key Vault、GCP Secret Manager)。提供程序架构会不断演变,训练数据往往已经过时数月。对于当前资源架构,请克隆 https://github.com/Twingate/terraform-provider-twingate 并检查 internal/provider/;Terraform Registry 中的 https://registry.terraform.io/providers/Twingate/twingate/latest/docs 也具有权威性。如果用户询问某个云平台是否存在 SE 参考模块或脚本,请先搜索,再回答不存在。

路由

协同启用,不要二选一。 以下指引是叠加适用的:对于跨领域提示词,除了当前技能,还要加载并搜索所列技能的 references/——不要停留在第一个匹配的技能上。先用用户提供的关键词搜索相关技能的参考资料;如果搜索命中,再完整加载该技能。Twingate 问题通常需要查阅多个技能,因此宁可多查,不要少查。此处常见的跨领域组合包括:编写 IaC 前 → architect + connectors;配置组/策略 → identity;Gateway(IDFW)基础设施 → idfw;K8s Helm 令牌传递 → kubernetes;提供程序中缺少字段 → api。

  • → twingate-architect:编写 IaC 前,涉及 Remote Network 拓扑、Resource 定义策略或组设计的问题
  • → twingate-pulumi:用户希望用 TypeScript、Python、Go 或 C# 实现相同模式时
  • → twingate-kubernetes:通过 helm_release 资源将连接器令牌传递给 Helm 发布时
  • → twingate-idfw:使用 twingate_gateway_config 时——仅适用于 IDFW 部署
  • → twingate-api:Terraform 数据源未公开所需字段,且需要直接调用 GraphQL 时
  • → twingate-troubleshoot:用户报告 terraform apply 错误或意外的提供程序行为时

参考资料

请查看 references/,获取每周更新的当前资料库。其中包含三类文件:

  • {slug}.md — 对 twingate.com/docs 页面(产品文档)的摘要。
  • {numeric-id}-{slug}.md — Twingate 帮助中心文章:准确的错误文本和修复方法。
  • gh-{org}-{repo}.md — 对 Twingate 公共 GitHub 仓库的摘要:Provider 源码和 SE 参考脚本。
如果用户询问……首先阅读
Provider 配置、版本固定、环境变量名称、入门指南(产品文档)terraform-provider-overview.md、terraform-getting-started.md
Provider 源码、当前稳定版发布说明/变更日志、构建/测试工作流、在 v4.3.1 中修复的 access_group/security_policy_id 错误gh-twingate-terraform-provider-twingate.md — 注意 gh- 前缀;旧的无前缀文件名已不存在
“此处不应出现名为 group_ids 的参数” — 在 Provider v1.0.0+ 中,顶层 group_ids 已移入 access { } 块4693640683-terraform-error-an-argument-named-group-ids-is-not-expected-here.md
各云平台的 SE 快速入门/演示 Terraform 脚本(仅供参考,未针对生产环境强化)gh-twingate-solutions-terraform-scripts.md
AWS 专用 Terraform 模式(ECS/EC2 + Twingate)terraform-aws.md(以及 skills/twingate-connectors/references/aws-connector-patterns.md)
Azure 专用 Terraform 模式(ACI/VMs + Twingate)terraform-azure.md(以及 skills/twingate-connectors/references/azure-connector-patterns.md)
GCP 专用 Terraform 模式(GCE/MIG + Twingate)terraform-gcp.md(以及 skills/twingate-connectors/references/gcp-connector-patterns.md)
资源参数架构、属性引用、确切字段名gh-twingate-terraform-provider-twingate.md、Provider 源码仓库(internal/provider/)或 Terraform Registry

此表是快速查找入口,并非完整资料库;如果问题与任何一行都不匹配,请先搜索 references/,再作答。

评论

支持 Markdown