Tailscaleロゴ

ACLを使用した権限管理

最終検証日:
翻訳: 竹洞 陽一郎

Tailscaleは現在、次世代のアクセスコントロールポリシー構文であるグランツ(grants)を使用してリソースへのアクセスを保護しています。
グランツは、従来のACLのすべての機能に加えて、追加機能を提供します。

ACLは無期限に機能し続けます。
Tailscaleがこの第一世代の構文のサポートを製品から削除することはありません。
しかし、ACLには新しい機能が追加されないため、Tailscaleはグランツに移行し、すべての新しいtailnetポリシーファイル設定にグランツを使用することを推奨しています。

ACLはすべてのプランで利用可能ですが、一部の機能は特定のプランで制限される場合があります。

Tailscaleのアクセスコントロール方法論は、最小権限とゼロトラストの原則に従っています。
tailnetのアクセスコントロールを定義するには、アクセスコントロールリスト(ACL)とグランツの2つの方法があります。
どちらの方法もデフォルトで拒否の原則に従い、宣言的なhuJSON構文を使用してtailnetポリシーファイルで定義されます。

ACLは、tailnet内でのアクセスを管理するための従来のネットワーク層アプローチを表しており、他のデバイスのポートにアクセスできるデバイスまたはユーザーのセットを定義します。
作成する各ACLは、送信元と宛先を定義する必要があります。
これにより、Tailscaleネットワーク(tailnetと呼ばれる)上のユーザーとデバイスのアクセスコントロールを正確に定義できます。


{
  "acls": [
    {
      "action": "accept",
      "src": [ <list-of-sources> ], // これらの送信元(デバイスまたはユーザー)
      "dst": [ <destination>:<port> ], // は、定義されたポートでこれらの宛先デバイスにアクセスできます
    }
  ]
}

ビジュアルポリシーエディタを使用して、tailnetポリシーファイルを管理できます。
ビジュアルエディタの使用方法については、ビジュアルエディタリファレンスを参照してください。

最初にtailnetを作成すると、デフォルトのtailnetポリシーファイルは、tailnet内のすべてのデバイス間の通信を有効にします。
ニーズに合わせてポリシーファイル(ACLの編集を含む)を変更できます。

ACLは、デフォルトで拒否方向性ローカルで強制され、ローカルネットワークトラフィックには影響しません

デフォルトで拒否
デフォルトの拒否ポリシーを使用すると、互いに明示的なアクセス権を持たないデバイス間の通信が防止されます。
ただし、tailnetポリシーファイルにaclsセクションがない場合、Tailscaleはデフォルトのすべて許可ポリシーを適用します。
方向性
送信元が宛先に接続できるからといって、宛先が送信元に接続できるとは限りません(ポリシーで明示的に有効にされている場合を除く)。
ローカルで強制
デバイスは、tailnet内のすべてのデバイスに配布されたアクセスルールに基づいて、着信接続を強制します。
ルールの強制は、Tailscaleの調整サーバーのさらなる関与なしに、各デバイスで直接行われます。
ローカルネットワークへの影響なし
ACLは、デバイスがローカルネットワーク上でアクセスできるものとできないものには影響しません。

Tailscaleのアクセスコントロールへのアプローチの詳細については、RBAC like it was meant to beを参照してください。

アクセスコントロールポリシーを定義しない場合、Tailscaleはデフォルトのすべて許可ACLポリシーを適用します。すべてのトラフィックを拒否するには、tailnetポリシーファイルのaclsセクションに空のオブジェクトを使用します。

ACLの編集

管理コンソールのAccess controlsページ、GitOps for Tailscale ACLs、またはTailscale APIを使用して、tailnetのアクセスルールを編集できます。
詳細については、ACLの編集を参照してください。

アクセスコントロールポリシーの作成についてはtailnetポリシーファイル構文を、一般的なポリシーの例についてはサンプルACLを参照してください。

プランごとの利用可否

ACLはすべてのプランで利用可能ですが、一部の機能は特定のプランで制限される場合があります。

利用可否
すべてのプラン Premium, Enterpriseプラン
アクセスルール(対象)
  • Any
  • Tailscale IP
  • Subnet CIDR Range
  • Autogroups
  • Tags
  • Hosts
  • IP sets
  • Any
  • Tailscale IP
  • Subnet CIDR Range
  • Autogroups
  • Groups
  • Users
  • Tags
  • Hosts
  • IP sets
アクセスルール(指定項目)
  • Ports
  • Protocols
ACLセクション
  • acl
  • hosts
  • tests
  • tagOwners
  • autoApprovers
  • nodeAttrs
  • postures with default device posture attributes only
  • ipsets
  • acl
  • groups
  • hosts
  • tests
  • tagOwners
  • autoApprovers
  • ssh for Tailscale SSH
  • nodeAttrs for Tailscale Funnel
  • postures with default, custom, and third-party attributes (Enterpriseプランのみ)
  • ipsets