ビジュアルエディタリファレンス
最終検証日:
翻訳: 竹洞 陽一郎
ビジュアルポリシーエディタは、tailnetのアクセス制御ポリシーを画面上の操作で管理するための機能です。
このページでは、各画面の項目、フォーム、操作方法をまとめます。
ポリシーの仕組みそのものについてはtailnetポリシーファイルの構文リファレンスを、送信元や宛先に指定できる対象についてはターゲットとセレクターを参照してください。
機能の概要とエディタのモードについては、ビジュアルポリシーエディタを参照してください。
一般アクセスルール
ネットワーク層とアプリケーション層のアクセス制御を、グラントの構文で管理します。
どの送信元が、どの宛先の、どのポートやプロトコルへ接続できるかを定義します。
エディタは、ACLの構文を自動的にグラントの構文へ変換します。
一般アクセスルールを追加する
- Source(必須)
- 接続を開始するユーザー、グループ、デバイス、タグを指定します。
- Destination(必須)
- 接続を受けるデバイス、サービス、リソースを指定します。
- Port and protocol(必須)
- 特定のポートやプロトコルを指定するか、「All ports and protocols」を選択します。
- Note(任意)
- そのルールを設けた理由を記録します。
詳細オプションでは、次の項目を設定できます。
- Device posture: 接続に必要なデバイスポスチャのルール。
- Via: 経路として使用するExit Node、サブネットルーター、アプリコネクタ。
- App capabilities: tailnet経由でアクセスした際のアプリケーションの権限。
「Save grant」を選択すると適用されます。JSONのプレビューで、生成されるグラントの構文を確認できます。
一般アクセスルールを編集・削除する
- 管理コンソールのAccess controlsページを開きます。
- 対象のルールの三点メニューを選択します。
- 「Edit」で内容を更新し、「Save grant」を選択します。削除する場合は「Delete」を選択します。
削除には確認のダイアログがありません。削除直後の短い時間だけ、取り消しができます。
Tailscale SSH
tailnet内のデバイスへのSSHアクセスを、SSH専用のルールで制御します。
一般アクセスルールと組み合わせて機能し、IDプロバイダの認証を利用するため、SSH鍵の管理が不要になります。
SSHルールを追加する
- Source(必須)
- SSH接続を開始するユーザーまたはグループを指定します。
- Destination(必須)
- 接続先のデバイスまたはタグを指定します。
- As destination user(必須)
- 接続先のユーザーとして、
autogroup:nonroot、root、またはメールアドレスのローカルパートに一致するユーザーを指定します。 - Check mode(任意)
- 接続前に再認証を要求します。
- Check period(Check mode有効時に任意)
- 再認証を求める間隔を指定します(例:
12h)。 - Note(任意)
- そのSSHルールの目的を記録します。
詳細オプションでは、次の項目を設定できます。
- Recorder: SSHセッションの録画先となるレコーダーノードのタグ。空欄にすると録画しません。
- Enforce recorder: 接続時にセッションの録画を必須にします。
- Device posture: SSHアクセスに必要なデバイスの要件。
「Save SSH rule」を選択すると適用されます。JSONのプレビューも利用できます。
チェックモードの使い分け
人が操作するSSH接続では、チェックモードを有効にして認証の確認を挟むことを推奨します。
チェック期間の値は、セキュリティと利用者の手間のバランスで決めてください。
自動化された処理やサービスアカウントでは、処理が中断されないようチェックモードを無効にし、その代わりにタグに基づくアイデンティティを使い、権限を必要最小限に絞ってください。
SSHルールを編集・削除する
- 管理コンソールのAccess controlsページを開きます。
- Tailscale SSHのタブを選択します。
- 対象のSSHルールの三点メニューを選択します。
- 「Edit」で内容を更新し、「Save SSH rule」を選択します。削除する場合は「Delete」を選択します。
グループ
グループは、ユーザーをまとめて扱うことで、アクセス制御の管理を簡潔にします。
タブには、ユーザー定義グループ、IDプロバイダから同期されたグループ、組み込みのオートグループが表示されます。
ユーザー定義グループ
アクセス制御ポリシーで使う、独自のグループです。
メンバーを変更すると、そのグループを参照しているすべてのポリシーに直ちに反映されます。
- Group name(必須)
- グループ名を指定します(例:
dev、design)。 - Members(必須)
- 名前またはメールアドレスで検索してユーザーを選択します。
- Note(任意)
- そのグループの目的を記録します。
「Save group」を選択すると作成されます。選択したメンバーは一覧で確認できます。
編集と削除は、Access controlsページのGroupsタブで、User-defined groupsの該当行にある三点メニューから「Edit」または「Delete」を選択します。
同期グループ
SCIM連携により、IDプロバイダから自動的に取り込まれるグループです。
ビジュアルエディタでは読み取り専用で、メンバーの変更はIDプロバイダ側で行います。変更は通常、数分以内に同期されます。
ポリシーからは、group: に続けてIDプロバイダ側のグループ名を指定して参照します。
オートグループ
特定のロールや属性を持つユーザーを対象とする、動的に生成される組み込みのグループです。
ロールに基づくアクセス制御を、手作業のメンテナンスなしに実現できます。
タグ
タグは、サーバーのようにユーザーに紐付かないデバイスを、用途ごとのまとまりとして整理するために使います。
機能、環境、論理的な分類などでデバイスをまとめられます。
ユーザーに基づくグループと異なり、タグは認証のセッションをまたいで維持されます。
タグの一覧には、定義済みのタグとそのオーナーが表示されます。オーナーを指定しない場合、Owner、Admin、Network adminのロールが暗黙のオーナーになります。
タグを追加する
- Tag name(必須)
tag:の接頭辞を除いた名前を指定します(例:prod、server)。- Tag owner(任意)
- そのタグを適用できるユーザーまたはグループを指定します。
- Note(任意)
- そのタグの目的を記録します。
「Save tag」を選択すると作成されます。
編集と削除は、Tagsタブの該当行にある三点メニューから行います。
タグを削除すると、そのタグはすべてのデバイスから外れます。
そのタグを参照しているアクセス制御ルールに影響するため、削除前に確認してください。
IPセット
IPセットは、IPアドレス、ホスト、サブネットをまとめたものです。
ネットワークアドレスの集合を1つの名前で参照できるため、ポリシーの管理が容易になります。
AddとRemoveの組み合わせで構成でき、広い範囲をAddで含めてから、Removeで特定の範囲を除外する使い方ができます。
たとえば、10.0.0.0/8 をAddしてプライベートネットワーク全体を含め、10.0.1.0/24 をRemoveして特定のサブネットだけを除外できます。
IPセットを追加する
- Name(必須)
- IPセットの名前を指定します。
- Note(任意)
- そのIPセットの目的を記録します。
- TARGETS(任意)
- ドロップダウンで「Add」または「Remove」を選び、CIDR、IPアドレス、ホスト、他のIPセットを入力します。行末の「X」で行を削除、プラスのアイコンで行を追加します。
「Save IP set」を選択すると作成されます。
編集と削除は、IP setsタブの該当行にある三点メニューから行います。
ホスト
ホストは、IPアドレスやCIDRの範囲に分かりやすい名前を付ける仕組みです。
数値のアドレスを意味のある名前に置き換えることで、ポリシーが読みやすくなり、入力誤りも減らせます。
一覧には、定義済みのホスト名と対応するIPアドレスが表示されます。
ホストを追加する
- Host name(必須)
- ホストの名前を指定します。
- IP address(必須)
- IPアドレスまたはCIDRの範囲を指定します。
- Note(任意)
- そのホストの用途を記録します。
「Save host」を選択すると作成されます。
編集と削除は、Hostsタブの該当行にある三点メニューから行います。
ノード属性
ノード属性は、機能の利用可否やデバイスの挙動を、tailnet全体で制御する設定です。
個々のデバイスの設定を変更することなく、Tailscale Funnelのような機能を有効にしたり、特定の動作を構成したりできます。
属性は、条件に一致するデバイスへ直ちに適用され、再設定や再起動は不要です。
よく使われる属性には、次のものがあります。
funnel: Tailscale Funnelによる外部公開を許可します。mullvad: Mullvad Exit Nodeの利用を許可します。drive:share、drive:access: Taildriveによるファイル共有を有効にします。disable-ipv4: IPv6のみの構成のために、IPv4アドレスを無効にします。
ノード属性を追加する
- Targets(必須)
- 対象とするデバイス、タグ、ユーザー、グループを指定します。
- Note(任意)
- その属性を設定した理由を記録します。
- Attributes(必須)
- 適用する属性を選択します(例:
funnel)。 - IP Pools(任意)
- 属性がIPの割り当てを必要とする場合に、CIDRを入力します。
アプリケーションケイパビリティの欄では、ケイパビリティを追加する場合に次の項目を指定します。
- App: ドメイン形式の識別子。
- Capability: JSON形式のケイパビリティの設定。
1つのアプリに複数のケイパビリティを設定する場合は「Add additional capability」を、複数のアプリを設定する場合は「Add another app」を選択します。
「Save node attribute」を選択すると適用されます。JSONのプレビューも利用できます。
編集と削除は、Node attributesタブの該当行にある三点メニューから行います。
デバイスポスチャ
デバイスポスチャのルールは、アクセス制御ポリシーでデバイスが満たすべき要件を定義します。
要件を満たさないデバイスから、重要なリソースへのアクセスを防げます。
チェックの対象には、OSのバージョン、ディスク暗号化の状態、特定のセキュリティソフトウェアの有無などを指定できます。
ポスチャのチェックは継続的に行われ、要件を満たさなくなったデバイスはアクセスを失います。
評価は接続時と、接続中の定期的なタイミングで行われます。要件を満たさなくなったデバイスは接続を切断され、要件を満たすまで新しい接続も失敗します。
ポスチャルールを追加する
- Name(必須)
- デバイスポスチャのルール名を指定します。
- Note(任意)
- 要件の内容を記録します。
ポスチャアサーションの欄では、属性と比較条件、値を指定します。HOST INFOの属性には次のものがあります。
node:osnode:osVersionnode:tsAutoUpdatenode:tsReleaseTracknode:tsStateEncryptednode:tsVersion
「Save device posture」を選択すると作成されます。
編集と削除は、Device postureタブの該当行にある三点メニューから行います。
MDMやEDRとの連携では、Intune、Jamf Pro、Iru(旧Kandji)、1Password XAM(旧Kolide)、SentinelOneに対応しています。
自動承認
自動承認は、サブネットルートやExit Nodeのアドバタイズといった操作を、人手を介さずに承認する設定です。
RoutesとExit nodesの2つの区分があります。
ルート
指定したユーザー、グループ、タグからのサブネットルートのアドバタイズを、自動的に承認します。
サブネットルーターごとの手動承認が不要になるため、台数が増えても運用が滞りません。
- Route(必須)
- 自動承認するルートを指定します(例:
192.0.2.0/24)。 - Route is auto approved for(必須)
- 対象とするユーザー、グループ、タグを選択します。
- Note(任意)
- 自動承認する理由を記録します。
「Save route auto approver」を選択すると作成されます。
編集と削除は、Auto approversタブのRoutesの該当行にある三点メニューから行います。
Exit Node
指定したユーザー、グループ、タグによるExit Nodeのアドバタイズを、自動的に承認します。
リージョンごとのExit Nodeや、プライバシー用途の専用基盤を運用する場合に使います。
- Approvers(必須)
- Exit Nodeとして自動承認するユーザー、グループ、タグを指定します。
「Save exit node」を選択すると作成されます。
編集と削除は、Auto approversタブのExit nodesの該当行にある三点メニューから行います。
テスト
テストは、アクセス制御の変更によって既存のアクセスが意図せず壊れていないかを検証します。
一般テストとSSHテストの2種類があります。
テストはポリシーの保存時に自動的に実行され、失敗した場合は保存できず、どのアサーションが失敗したかがエラーとして表示されます。
一般テスト
- Source(必須)
- テストの送信元となるアイデンティティを指定します。
- Source device posture attributes(任意)
- ポスチャルールを適用している場合に、デバイスの条件を指定します。
- Accept(必須)
- アクセスできるべき宛先を指定します。
- Deny(必須)
- 遮断されるべき宛先を指定します。
- Protocol(必須)
- テストするプロトコルを指定します。
- Note(任意)
- そのテストの目的を記録します。
「Save test」を選択すると作成されます。JSONのプレビューも利用できます。
編集と削除は、TestsタブのGeneral testsの該当行にある三点メニューから行います。
SSHテスト
Tailscale SSHのポリシー変更が、保存前に満たすべき条件を検証します。
アクセスの可否と、認証の要件の両方を確認できます。
- Source(必須)
- SSH接続の送信元を指定します。
- Destination(必須)
- SSHの接続先を指定します。
- Accept(必須)
- 許可されるべきユーザーを指定します(
autogroup:nonroot、root、メールアドレスのローカルパートに一致するユーザー)。 - Check(必須)
- チェックモードが要求されるべきユーザーを指定します。
- Deny(必須)
- 拒否されるべきユーザーを指定します。
- Note(任意)
- そのテストの想定を記録します。
「Save SSH test」を選択すると作成されます。
編集と削除は、TestsタブのSSH testsの該当行にある三点メニューから行います。