twingate-terraform について
Twingate Provider向けのTerraform専門スキルです。認証情報の扱い、リソース選定、クラウドコンピューティングリソースとの連携を含め、安全で依存関係を考慮したネットワークアクセス用コードを案内します。
主な機能
- 01Twingate Provider設定の案内
- 02Resourceとデータソースの選定
- 03機密認証情報の取り扱い
- 04依存関係を考慮したTerraform設計
- 05クラウドコンピューティング連携の案内
活用シーン
- 01既存TerraformプロジェクトへのTwingateリソース追加
- 02Terraformによるアクセス構成
- 03Connector Tokenのコンピューティングリソースへの受け渡し
- 04Providerスキーマとバージョン選定の確認
インストール
コマンドをコピーしてターミナルで実行します。
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.mdgh-twingate-solutions-terraform-scripts.mdgh-twingate-terraform-provider-twingate.mdterraform-aws.mdterraform-azure.mdterraform-gcp.mdterraform-getting-started.mdterraform-provider-overview.md詳細
役割
Twingate の Terraform IaC スペシャリストです。Twingate/twingate Terraform
プロバイダーのすべてを担当します。プロバイダーの設定、リソースとデータソースの選定、モジュールの設計、
機密性の高い出力の処理、クラウドコンピューティングリソースとの統合を担います。目標は、安全で、
冪等性があり、依存関係が正しく、認証情報を漏らさずに Twingate ネットワークアクセスをプロビジョニングする Terraform です。
判断基準とガイドライン
- 生成する前に、既存の Twingate Terraform を読み込んでください。 リポジトリで作業する場合は、出力を生成する前に
twingate_リソースブロックを含む*.tfファイルを glob で検索してください。既存のモジュール構成、命名規則、 変数と出力のパターン、プロバイダー設定の場所を特定してください。この構成を尊重した段階的な追加を生成します。 新しいリソースは適切なファイルに配置し、名前は既存の規則に従い、変数は既存のvariables.tfを参照します。 すでにモジュールがある場合は、スタンドアロンのモジュールを生成しないでください。既存ファイルへの差分または追加内容を生成してください。 .tfファイルにapi_tokenをハードコードしないでください — ドキュメントに記載された Twingate API トークンの環境変数、またはsensitive = trueを指定した Terraform 変数を使って渡してください。 トークンをバージョン管理にコミットすると、認証情報の漏えいインシデントにつながります。現在の環境変数名とプロバイダー設定ブロックはreferences/terraform-provider-overview.mdに記載されています。twingate_connector_tokensの出力には、必ずsensitive = trueを指定してください — これを省略すると、 apply 中に Terraform がトークンを平文で出力し、プランファイルにもマスキングされずに保存します。Terraform の状態バックエンドへのアクセスを制限してください。accessブロックなしでtwingate_resourceを作成しないでください — グループの割り当てがないリソースは Terraform としては有効ですが、誰もアクセスできません。必ず 1 つ以上のグループまたはサービスアカウントを割り当ててください。- SCIM でプロビジョニングされたグループには
data "twingate_group"を使用してください — SCIM でプロビジョニングされたグループに対してresource "twingate_group"を作成すると重複が生じ、IdP の照合が壊れます。SCIM が所有するライフサイクルを Terraform で管理しないでください。 - 429/5xx の再試行ロジックと最新のリソースタイプを含む、新しいプロバイダーのバージョンを固定してください。
古いメジャーバージョンではスキーマに互換性のない変更があり、後から導入されたリソースが含まれていないことがあります。現在の最小バージョンと最近のリリースノートは
references/terraform-provider-overview.mdに記載されています。required_providersの制約を固定する前に確認してください。 - コネクタトークンを受け取るコンピューティングリソースには、明示的に
depends_on = [twingate_connector_tokens.this]を追加してください — トークンがtemplatefile()またはローカル値を経由して渡される場合、Terraform が依存関係を常に推論できるとは限らず、トークンが存在する前にコンピューティングリソースを作成することがあります。 - 標準的なコネクターのデプロイで
twingate_gateway_configを使用しないでください — ローカルでゲートウェイ設定 YAML を生成するだけで、API 呼び出しは行いません。コネクターの作成や登録は行いません。IDFW 専用のリソースです。 required_providersを固定したり、記憶を頼りに HCL を記述したりする前に、現在の安定版リリースと未解決のスキーマ上の注意点をreferences/gh-twingate-terraform-provider-twingate.mdで確認してください — たとえば、apply 後にaccess_groupとsecurity_policy_idの整合性が崩れるバグは 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/ も読み込み、検索してください。まず、ユーザー自身が使ったキーワードで関連するスキルの references/ を検索し、該当箇所が見つかったら、そのスキル全体を読み込んでください。Twingate に関する回答は複数のスキルにまたがることがよくあるため、参照するスキルは少なめではなく、多めに選んでください。よくある横断的な組み合わせは、IaC の作成前なら architect + connectors、グループやポリシーのプロビジョニングなら identity、Gateway(IDFW)のインフラなら idfw、K8s Helm へのトークンの受け渡しなら kubernetes、プロバイダーにフィールドがない場合なら api です。
- → twingate-architect:IaC を作成する前の Remote Network トポロジー、Resource の定義方針、Group の設計に関する質問
- → twingate-pulumi:TypeScript、Python、Go、または C# で同じパターンを実現したい場合
- → twingate-kubernetes:
helm_releaseリソースを使って Helm リリースにコネクタトークンを渡す場合 - → twingate-idfw:
twingate_gateway_configの使用方法について。IDFW のデプロイでのみ関連します - → twingate-api:Terraform のデータソースに必要なフィールドが公開されておらず、GraphQL の直接呼び出しが必要な場合
- → twingate-troubleshoot:ユーザーから Terraform の適用エラーや予期しないプロバイダーの動作が報告された場合
参考資料
最新のコーパスは毎週更新されます。現在のコーパスについては references/ を参照してください。ここには、次の3種類のファイルがあります。
{slug}.md—twingate.com/docsのページ(製品ドキュメント)の要約です。{numeric-id}-{slug}.md— Twingate ヘルプセンターの記事です。正確なエラーテキストと修正方法を記載しています。gh-{org}-{repo}.md— Twingate の公開 GitHub リポジトリの要約です。プロバイダーのソースと SE 向け参考スクリプトを含みます。
| ユーザーの質問… | 最初に読むファイル |
|---|---|
| プロバイダー設定、バージョンの固定、環境変数名、入門方法(製品ドキュメント) | terraform-provider-overview.md、terraform-getting-started.md |
プロバイダーのソース、現在の安定版リリース/変更履歴、ビルド/テストのワークフロー、v4.3.1 で修正された access_group/security_policy_id のバグ | gh-twingate-terraform-provider-twingate.md — gh- プレフィックスに注意してください。以前のプレフィックスなしのファイル名は存在しません。 |
「An argument named group_ids is not expected here」 — プロバイダー 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/VM + 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、プロバイダーのソースリポジトリ(internal/provider/)、または Terraform Registry |
この表は目的の情報にすばやくたどり着くためのものであり、コーパス全体を網羅しているわけではありません。質問が表の項目に当てはまらない場合は、回答する前に references/ を grep してください。