概要
Tailscale は新しいアクセス制御方式「 grants」の一般提供を発表。 grants は従来のACLよりも簡単に書けて読みやすい上位互換。 ネットワーク制御とアプリケーション権限を 一元管理 可能。 従来のACLも引き続き利用可能で、両者の 共存 が可能。 新機能や移行方法についても柔軟に対応可能。
Tailscaleの新しいアクセス制御「grants」概要
- grants は従来の ACL(Access Control List) を拡張したアクセス制御方式
- すべてのACL設定は grant で表現可能、両者の 共存 もサポート
- 人間にも機械にも読み書きしやすい シンプルな構文設計
- ポートやプロトコルを ipフィールド に統合
- actionフィールド の削除による簡素化
- ACLからの移行が不要、 既存ポリシーはそのまま運用可能
grantsによる新機能と拡張性
- アプリケーション権限 の拡張
- Layer 3のネットワーク制御だけでなく、 アプリケーション認可 も一元管理
- Goライブラリ tsnet でTailscaleをアプリに直接組込むことで、ユーザー認証と権限付与を実現
- 権限情報は JSON形式 で柔軟に定義可能、独自スキーマの利用も自由
- Golink などの社内ツールでの利用例
- Tailscale IDで認証し、grantでユーザーごとに ロール付与 を実現
- ネットワーク制御とアプリケーション認可をTailscaleで一元管理
- アプリ側でユーザーDBを持つ必要がなく、 運用負荷軽減
- 他のOSSツールでの実装例
- TailSQL: tailnet内のプライベートSQLプレイグラウンド
- Setec: 機密管理サービス
- Kubernetes API server proxy: Kubernetesコントロールプレーンへのアクセス管理
viaフィールドによるルーティング制御
- viaフィールド 追加により、出口ノードやサブネットルーター、アプリコネクタ経由のアクセスを柔軟に指定可能
- 例:オフィスごとに異なる出口ノードを指定
- タグ付けされたノードやリージョナルルーティング、高可用性構成でのフェイルオーバーもサポート
既存ポリシーとの互換性と移行
- 既存のACLポリシーはそのまま利用可能
- 強制的な移行や期限、非推奨化はなし
- grants と ACL は同一ポリシー内で併用可能
- 新機能を利用したい場合のみ、 段階的な移行 が可能
- 詳細な移行ガイドも提供
Tailscaleのgrants は、ネットワークとアプリケーションのアクセス制御を統合し、柔軟かつ将来性のある管理体制を実現。 既存の環境を壊すことなく、 スムーズな拡張 と 運用の簡素化 を両立。