ターゲットとセレクター
最終検証日:
翻訳: 竹洞 陽一郎
ターゲット(またはセレクター)とは、tailnetポリシーファイル内でユーザー、デバイス、サブネットを識別するために使う識別子です。
多くの場合、ターゲットはアクセス制御ポリシーの送信元(source)または宛先(destination)を指定するために使います。
ターゲットは、1つまたは複数のデバイス、ユーザー、ネットワークセグメントを選択できます。
例えば、tag:sql-serverは、sql-serverというタグが付いたすべてのデバイスを選択するターゲットであり、192.0.2.23は、IPアドレス192.0.2.23を使用するデバイスのみを選択するターゲットです。
このページでは、さまざまなターゲットの種類、それらを使用できる場面、そしてその制約についてリファレンスとして参照できます。
種類
ターゲットには、主にオートグループ(autogroups)、明示的セレクター(explicit selectors)、カスタムセレクター(custom selectors)の3種類があります。
オートグループ
オートグループ(autogroup)は、特定の条件に基づいてデバイス、ユーザー、IPアドレスを自動的にグループ化する、組み込みのターゲットの一種です。
オートグループを使うと、他の方法では選択が難しい、あるいは不可能な、動的なユーザー・デバイス・ルートの集合を選択できます。
例えば、autogroup:memberは、tailnetのすべてのメンバーを含むオートグループです。
| オートグループ | 説明 |
|---|---|
autogroup:danger-all |
tailnet外のデバイスを含む、すべてのデバイスが対象です。このターゲットの使用には注意してください。tailnetがセキュリティリスクや予期しない動作にさらされる可能性があります。 |
autogroup:internet |
すべてのパブリックIPアドレスが対象です。 |
autogroup:self |
同じユーザーが所有するすべてのデバイスが対象です。これは特別なオートグループで、同じユーザーが所有するデバイス同士のアクセスを許可するために使えます。 |
autogroup:shared |
tailnetへの共有招待を承諾したユーザーが所有する、すべてのデバイスが対象です。 |
autogroup:tagged |
少なくとも1つのタグを持つすべてのデバイスが対象です。 |
autogroup:member |
tailnetのすべてのメンバーが対象です。 |
autogroup:owner |
tailnet内でOwnerロールを持つすべてのメンバーが対象です。 |
autogroup:admin |
tailnet内でAdminロールを持つすべてのメンバーが対象です。 |
autogroup:it-admin |
tailnet内でIT adminロールを持つすべてのメンバーが対象です。 |
autogroup:billing-admin |
tailnet内でBilling adminロールを持つすべてのメンバーが対象です。 |
autogroup:network-admin |
tailnet内でNetwork adminロールを持つすべてのメンバーが対象です。 |
autogroup:auditor |
tailnet内でAuditorロールを持つすべてのメンバーが対象です。 |
各オートグループをどこで、どのように使えるかについては、以下の表を参照してください。
autogroup:danger-all
autogroup:danger-allは、tailnet外のデバイスを含む、すべてのデバイスを対象とする特別な(そして危険な)オートグループです。
このオートグループは、tailnetを不要なセキュリティリスクにさらすため、Tailscaleは使用を推奨していません。後方互換性のためにのみ提供されています。
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 不可 |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src)(グラントとACLを含む) | 可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 不可 |
ノード属性ターゲット(nodeAttr) | 不可 |
タグオーナー(tagOwner) | 不可 |
グループ(group) | 不可 |
IPセット(ipset) | 不可 |
自動承認(autoApprover) | 不可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
autogroup:internet
autogroup:internetは、すべてのパブリックIPアドレスを含むオートグループです。
技術的な定義: autogroup:internetは、0.0.0.0/0と2000::/3として定義されますが、以下のアドレス範囲は除外されます。
プライベート:
10.0.0.0/8172.16.0.0/12192.168.0.0/16
Tailscale(CGNAT):
100.64.0.0/10
リンクローカル:
169.254.0.0/16
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 不可 |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src)(グラントとACLを含む) | 不可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 可 |
ノード属性ターゲット(nodeAttr) | 不可 |
タグオーナー(tagOwner) | 不可 |
グループ(group) | 不可 |
IPセット(ipset) | 可 |
自動承認(autoApprover) | 不可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
autogroup:self
autogroup:selfは、同じユーザーが所有するすべてのデバイスを含むオートグループです。このオートグループを使うと、同じユーザーが所有するデバイス同士のアクセスを許可できます。
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 不可 |
SSHの宛先(dst) | 制限あり |
アクセス制御の送信元(src)(グラントとACLを含む) | 不可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 制限あり |
ノード属性ターゲット(nodeAttr) | 不可 |
タグオーナー(tagOwner) | 不可 |
グループ(group) | 不可 |
IPセット(ipset) | 不可 |
自動承認(autoApprover) | 不可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
autogroup:shared
autogroup:sharedは、tailnetへの共有招待を承諾したユーザーが所有する、すべてのデバイスを含むオートグループです。
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 不可 |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src)(グラントとACLを含む) | 可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 不可 |
ノード属性ターゲット(nodeAttr) | 不可 |
タグオーナー(tagOwner) | 不可 |
グループ(group) | 不可 |
IPセット(ipset) | 不可 |
自動承認(autoApprover) | 不可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
autogroup:tagged
autogroup:taggedは、少なくとも1つのタグを持つすべてのデバイスを含むオートグループです。
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 制限あり |
SSHの宛先(dst) | 可 |
アクセス制御の送信元(src)(グラントとACLを含む) | 可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 可 |
ノード属性ターゲット(nodeAttr) | 可 |
タグオーナー(tagOwner) | 可 |
グループ(group) | 不可 |
IPセット(ipset) | 不可 |
自動承認(autoApprover) | 可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
autogroup:<role>
autogroup:<role>は、特定のロール(role)を持つ、tailnet内のすべてのメンバーを含むオートグループです。
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 制限あり(autogroup:memberの場合) |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src)(グラントとACLを含む) | 可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 可 |
ノード属性ターゲット(nodeAttr) | 可 |
タグオーナー(tagOwner) | 可 |
グループ(group) | 不可 |
IPセット(ipset) | 不可 |
自動承認(autoApprover) | 可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
同期グループ
同期グループ(Synced groups)は、Google Workspace、Okta、Microsoft Active Directoryなどのアイデンティティプロバイダーからプロビジョニングされた、ユーザーとデバイスの集合です。
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
アクセス制御の送信元(src)(グラントとACLを含む) | 可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 可 |
タグオーナー(tagOwners) | 可 |
ノード属性ターゲット(nodeAttr) | 可 |
自動承認(autoApprover) | 可 |
IPセット(ipsets) | 不可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
その他の組み込みターゲット
次の表は、特殊なオートグループやその他の組み込みターゲットをまとめたものです。
| ターゲット | 説明 |
|---|---|
localpart:*@<domain> |
指定した<domain>のメールアドレスを持つすべてのメンバーが対象です。SSHの送信元(source)としてのみ有効です。 |
autogroup:nonroot |
これは、SSHユーザーに適用される特殊なオートグループです。root以外の任意のユーザーとしてログインできることを指定する場合にのみ使用できます。送信元(src)や宛先(dst)の定義では使用できません。 |
明示的セレクター
明示的セレクター(explicit selector)とは、グループ、タグ、IPセットのいずれによっても作成されないターゲットです。
| ターゲット | 説明 | 例 |
|---|---|---|
| IPアドレス | IPアドレスでデバイスを選択します。 | 192.0.2.2 |
| ホストエイリアス | ユーザー定義のホストエイリアス(host alias)でデバイスを選択します。 | host:sql-server-1 |
| IPアドレス範囲 | IPアドレスの明示的な範囲を選択します。 | 198.51.100.5-198.51.100.10 |
| CIDR | CIDRアドレスでIPアドレスの範囲を選択します。 | 203.0.113.0/24 |
| ユーザー | メールアドレス、Passkey、GitHubユーザー名でユーザーを選択します。 | user@company.com、user@passkey、username@github |
| Tailscale Service | 名前でTailscale Serviceを選択します。 | svc:web-server |
明示的セレクターをどこで、どのように使えるかについては、以下のセクションを参照してください。
IPアドレス
IPアドレスを使って、tailnet内の特定のデバイスを選択できます。例: 192.0.2.2
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 不可 |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src)(グラントとACLを含む) | 可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 可 |
ノード属性ターゲット(nodeAttr) | 可 |
タグオーナー(tagOwner) | 不可 |
グループ(group) | 不可 |
IPセット(ipset) | 可 |
自動承認(autoApprover) | 不可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
ホストエイリアス
ホストエイリアスを使って、ユーザー定義のエイリアスでデバイスを選択できます。例: host:sql-server-1
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 不可 |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src)(グラントとACLを含む) | 可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 可 |
ノード属性ターゲット(nodeAttr) | 可 |
タグオーナー(tagOwner) | 不可 |
グループ(group) | 不可 |
IPセット(ipset) | 可 |
自動承認(autoApprover) | 不可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
IPアドレス範囲
IPアドレス範囲を使って、複数のIPアドレスの範囲を選択できます。例: 192.0.2.4-192.0.2.12
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 不可 |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src)(グラントとACLを含む) | 不可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 不可 |
ノード属性ターゲット(nodeAttr) | 不可 |
タグオーナー(tagOwner) | 不可 |
グループ(group) | 不可 |
IPセット(ipset) | 可 |
自動承認(autoApprover) | 不可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
ユーザー
メールアドレス、Passkey、GitHubユーザー名(Tailscaleアカウントの認証方法による)で、特定のユーザーを参照できます。例: alice@example.com、alice@github、alice@passkey
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 可 |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src)(グラントとACLを含む) | 可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 可 |
ノード属性ターゲット(nodeAttr) | 不可 |
タグオーナー(tagOwner) | 可 |
グループ(group) | 不可 |
IPセット(ipset) | 可 |
自動承認(autoApprover) | 不可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
Tailscale Service
名前で特定のTailscale Serviceを参照できます。例: svc:web-server、svc:printer
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 不可 |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src)(グラントとACLを含む) | 不可 |
アクセス制御の宛先(dst)(グラントとACLを含む) | 可 |
ノード属性ターゲット(nodeAttr) | 不可 |
タグオーナー(tagOwner) | 不可 |
グループ(group) | 不可 |
IPセット(ipset) | 不可 |
自動承認(autoApprover) | 可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
カスタムターゲット
カスタムターゲットとは、明示的セレクター、グループ、タグ、IPセットを使って作成する、1つ以上のユーザー、デバイス、IPアドレスの選択です。
グループ
グループは、ユーザーまたはデバイスの選択です。グループを使うと、ポリシーでターゲットにする、ユーザーまたはデバイスのカスタムコレクションを作成できます。
例えば、本番環境のすべてのデバイスを含むprodグループを作成できます。グループをどこで、どのように使えるかについては、以下の表を参照してください。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 制限あり |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src) | 可 |
アクセス制御の宛先(dst) | 可 |
ノード属性ターゲット(nodeAttr) | 可 |
タグオーナー(tagOwner) | 可 |
グループ(group) | 不可 |
IPセット(ipset) | 不可 |
自動承認(autoApprover) | 可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
タグ
タグは、非ユーザーデバイスに付ける名前付きの注釈です。タグを使うと、サービスやアプリケーションをホストするデバイスなど、非ユーザーデバイスのアイデンティティを作成できます。
例えば、SQLサーバーを実行するすべてのデバイスに適用するsqlタグを作成できます。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 制限あり |
SSHの宛先(dst) | 可 |
アクセス制御の送信元(src) | 可 |
アクセス制御の宛先(dst) | 可 |
ノード属性ターゲット(nodeAttr) | 可 |
タグオーナー(tagOwner) | 可 |
グループ(group) | 不可 |
IPセット(ipset) | 不可 |
自動承認(autoApprover) | 可 |
Via(via)(グラントでのルートフィルタリング) | 可 |
IPセット
IPセットは、IPアドレスの集合です。IPセットを使うと、IPアドレスのカスタムな選択を作成できます。
次の表は、このセレクターをどこで、どのように使用できるかを示しています。「場所」列はtailnetポリシーファイル内の場所を、「許可」列はそのセレクターをその場所で使用できるかどうかを示します。
| 場所 | 許可 |
|---|---|
SSHの送信元(src) | 不可 |
SSHの宛先(dst) | 不可 |
アクセス制御の送信元(src) | 可 |
アクセス制御の宛先(dst) | 可 |
ノード属性ターゲット(nodeAttr) | 不可 |
タグオーナー(tagOwner) | 不可 |
グループ(group) | 不可 |
IPセット(ipset) | 可 |
自動承認(autoApprover) | 不可 |
Via(via)(グラントでのルートフィルタリング) | 不可 |
ワイルドカードセレクター
ワイルドカードセレクター(*)を使うと、1つのパターンで複数のターゲットに一致させることができます。
tailnetポリシーファイルでは、ワイルドカードセレクターの正確な動作は、使用するコンテキストによって異なります。
例えば、srcまたはdstフィールドでワイルドカードセレクターを使うと、tailnet内のすべてのTailscale IPアドレスと、承認済みのすべてのサブネットルートに一致します。
一方、グラントのipフィールドでワイルドカードセレクターを使うと、dstフィールドのターゲットに対するすべてのポートとプロトコルに一致します。
さまざまなシナリオでワイルドカードセレクターがどのように機能するかについては、以下の表を参照してください。
| 機能 | コンテキスト | ワイルドカードの動作 |
|---|---|---|
| アクセス制御ポリシー(グラントとACLを含む) | srcまたはdstフィールド |
*ワイルドカードセレクターは、すべてのTailscale IPアドレスと、承認済みのサブネットルートからのすべてのIPアドレスに展開されます。承認済みのサブネットルートには、サブネットルーターがアドバタイズ・承認するすべてのIPアドレスが含まれます。これらのIPアドレスを使うデバイスは、tailnetに直接接続しない(サブネットルーター経由で接続する)ため、通常Tailscale IPアドレスを持ちません。 |
| アクセス制御ポリシー(グラントを含む) | ipフィールド |
宛先のすべてのプロトコル(TCP、UDP、ICMP)とポートに一致します。 |
| 同期オートグループ | 同期オートグループ内のユーザーを選択する場合 | ワイルドカードセレクターには特別な考慮事項があります。式ではワイルドカード*セレクターを使いますが(例: user:*@example.com)、任意のワイルドカードはサポートされません。例えば、user:b*b@example.comはbob@example.comに一致しません。 |
| Tailscale SSH | acceptEnvフィールド |
*と?のワイルドカードセレクターを含められます。*はゼロ文字以上に一致し、?は1文字に一致します。 |
| 一般的なテスト | src、accept、denyフィールド |
ワイルドカードセレクターは使用できません。特定のエンティティを指定する必要があります。例えば、acceptルールの宛先としてtags:*を使うことはできません。 |
アプリコネクタとワイルドカード
アプリコネクタのドメイン設定(*.example.comなど)ではワイルドカードセレクターを使用できますが、その動作には親ドメイン自体は含まれません。
制約
一部のターゲットには、セキュリティ上の理由から特定の制約があります。各ターゲットをどこで、どのように使えるかについては、以下の制約を参照してください。
- ユーザー認証されたデバイスは、自分が所有するデバイス、またはタグで認証されたデバイスへのみSSH接続できます。
- タグベースのアイデンティティを持つデバイスは、他のタグ付きデバイスへのみSSH接続でき、ユーザーベースのアイデンティティを持つデバイスへは接続できません。
- 宛先としての
autogroup:selfセレクターは、個々のユーザー、グループ、またはロールベースのオートグループ(autogroup:member、autogroup:admin、autogroup:ownerなど)といった、特定の送信元タイプを必要とします。