Tailscaleロゴ

ACLの例

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

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

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

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

このトピックでは、よくあるシナリオ向けのアクセス制御(ACL)の例を紹介します。構文について詳しくは、tailnetポリシー構文を参照してください。

ACLの例一覧
説明 使用する機能
すべて許可する(デフォルトACL)tailnet内のすべてのデバイスが、tailnet内の他のデバイスにアクセスできる、デフォルトのtailnetポリシーです。ACL、SSH
すべて拒否するすべての接続を拒否します。ACL
ユーザーが自分自身のデバイスにアクセスできるようにする他のポリシーで妨げられない限り、すべてのtailnetユーザーが自分の所有するデバイスにアクセスできます。ACL、SSH
リソースレベルのアクセスポリシーtailnet内の特定のリソースへのアクセスを、特定のデバイスに許可します。ACL、hosts
用途に基づいて制限する(タグ)タグを使って、tailnet内の特定のリソースへのアクセスを、特定のデバイスに許可します。ACL
グループに基づいて制限するオートグループ、カスタムグループ、プロビジョニングされたグループを使って、リソースへのアクセスを管理します。ACL、groups
個々のユーザーに基づいて制限する特定のユーザーに対して、リソースへのアクセスを管理します。ACL
Standardプランの ACL従業員が自分自身のデバイスと、corpタグの付いたデバイスにアクセスできるようにし、Adminがcorpまたはprodタグの付いたデバイスにアクセスできるようにする、基本的なStandardプランを使用します。ACL、タグオーナー
内部アプリケーション(VPN)へのアクセス職務上の役割に基づいて、ユーザーのアプリケーションへのアクセスを管理します。ACL、groups、タグオーナー
同期グループを使った内部アプリケーション(VPN)へのアクセスアイデンティティプロバイダーと同期されたグループを使って、内部リソースへのアクセスを管理します。ACL、groups、タグオーナー
本番環境へのリモートアクセス職務上の役割に基づいて、本番環境へのユーザーアクセスを管理します。ACL、groups、タグオーナー、tests
VPCへのアクセス(VPCピアリング)アクセス制御リストを使って、仮想プライベートクラウドへのアクセスを管理します。ACL、groups、タグオーナー、自動承認
契約者とアクセスを共有する開発環境の共有リソースへのアクセスを、サードパーティの契約者に許可します。ACL、groups、タグオーナー
リモート開発リモート開発環境へのアクセスを管理します。ACL、groups、タグオーナー
ペアプログラミング複数のエンジニアがSSHで接続できる、ペアプログラミング環境を作成します。ACL、タグオーナー
CI/CDデプロイパイプライン職務上の役割に基づいて、リソースへのアクセスを管理します。ACL、groups、タグオーナー
アプリケーションへのアクセスを監視する監視サーバーが、一般的なポートですべてのアプリケーションにアクセスできるようにします。ACL、groups、タグオーナー
アプリケーションのピアリング複数のクラウドプロバイダーやアプリケーションが互いにアクセスできるようにします。ACL、groups、タグオーナー
ネットワークのマイクロセグメンテーションネットワークのマイクロセグメントへのアクセスを許可しつつ、セグメント間のアクセスを拒否します。ACL、groups、タグオーナー、tests

すべて許可する(デフォルトACL)

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、SSHオートグループ

Tailscaleネットワーク(tailnetと呼ばれます)を最初に作成すると、Tailscaleはデフォルトの全許可アクセスポリシーで初期化します。
これにより、ネットワーク内のトラフィックを制限することなく、Tailscaleに接続して使用できます。

既存のポリシーファイルの内容を削除し、Reset to defaultを選択することで、ACLポリシーファイルを元のデフォルトにリセットできます。
ポリシーファイルの変更は、管理コンソールのConfiguration logsページから元に戻すこともできます。

デフォルトポリシーが行う内容の詳細です。

{
  "acls": [
    {
      "action": "accept",
      "src": [
        "*"
      ],
      "dst": [
        "*:*"
      ]
    }
  ],
  "ssh": [
    {
      "action": "check",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "autogroup:self"
      ],
      "users": [
        "autogroup:nonroot",
        "root"
      ]
    }
  ],
}

tailnetポリシーファイルからaclsフィールドを省略することは、デフォルトの全許可ポリシーと同等です。
すべての接続を拒否するには、ポリシーファイルのaclsフィールドに空のオブジェクトを使用します。

{} // aclsセクションが空の場合、Tailscaleはデフォルトの全許可ポリシーを適用します。

デフォルトのACLでは、sshルールはdstフィールドにautogroup:selfを、usersフィールドにautogroup:nonrootを使用します。
dstフィールドをautogroup:selfから、ACLタグのような別の宛先に変更する場合は、usersフィールドのautogroup:nonrootも置き換えることを検討してください。
usersフィールドからautogroup:nonrootを削除しないと、src設定で許可された誰もが、dstデバイス上の任意のroot以外のユーザーとしてSSH接続できてしまいます。

すべて拒否する

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL

ポリシーファイルのaclsフィールドに空の選択肢を使うことで、tailnet内のすべての接続を拒否できます。
この構成では、すべてのデバイスが互いに通信できなくなります。
tailnet内で何も機能しなくなるため、一般的な用途にはこの構成を推奨しません。

{
  "acls": []
}

tailnetポリシーファイルからaclsフィールドを省略することは、「すべて拒否」ポリシーと同等ではありません。
代わりに、Tailscaleはデフォルトの全許可ポリシーを適用し、tailnet内のすべてのデバイスが他のデバイスにアクセスできるようにします。

ユーザーが自分自身のデバイスにアクセスできるようにする

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、タグタグオーナー

この例は、すべてのユーザーが自分自身のデバイスにアクセスできるようにします。
ユーザーに自分自身のデバイスへのアクセスを許可しつつ、tailnet内の他のデバイスへのアクセスは許可したくない、多くのユースケースに適しています。

{
  "acls": [
    {
      "action": "accept",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "autogroup:self:*"
      ]
    }
  ],
}

リソースレベルのアクセスポリシー

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、hosts

IPアドレスを使って、あるデバイスやネットワークから別のデバイスやネットワークへの接続性を有効にできます。
さらに、hostsセクションを使うと、IPアドレスやCIDR範囲に人間が読みやすい名前を定義でき、アクセスルールがより読みやすくなります。

この例が行うことです。

{
  "acls": [
    {
      "action": "accept",
      "src": [
        "100.100.123.124"
      ],
      "dst": [
        "100.100.123.123:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "100.100.123.124"
      ],
      "dst": [
        "192.0.2.0/24:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "frontend-server-01"
      ],
      "dst": [
        "192.0.2.0/24:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "frontend-server-01"
      ],
      "dst": [
        "dev-network-01:*"
      ]
    }
  ],
  "hosts": {
    "frontend-server-01": "100.100.123.123",
    "dev-network-01": "203.0.113.0/24"
  }
}

4via6サブネットルーターの背後にあるリソースをターゲットにするアクセス制御ルールを記述する際は、宛先としてIPv4アドレスではなく、IPv6のCIDRまたはアドレスを使用してください。

IPv6のCIDRを取得するには、tailscale debug viaを使用します。

用途に基づいて制限する(タグ)

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、タグ

タグを使うと、人間のユーザーとは別に、デバイスにアイデンティティを割り当て、そのアイデンティティをACLの一部として使ってアクセスを制限できます。
Tailscaleネットワークにサーバーを追加する際は、タグを使うべきです。これにより、運用チームの誰が登録したかではなく、用途に基づいてアクセスを決定できます。

この例が行うことです。

{
  "acls": [
    {
      "action": "accept",
      "src": [
        "tag:frontend"
      ],
      "dst": [
        "tag:backend:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "tag:backend"
      ],
      "dst": [
        "tag:logging:*"
      ]
    }
  ]
}

グループに基づいて制限する

オートグループカスタムグループ、またはサポートされているアイデンティティプロバイダーからプロビジョニングされたグループを使って、tailnet内のリソースへのアクセスを有効にできます。

オートグループを使う

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、オートグループタグ

オートグループは、同じプロパティを持つユーザー、宛先、ユーザー名を自動的に含める、組み込みのグループです。

この例が行うことです。

{
  "acls": [
    {
      "action": "accept",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "tag:frontend:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "autogroup:admin"
      ],
      "dst": [
        "tag:backend:*",
        "tag:logging:*"
      ]
    }
  ]
}

カスタムグループを使う

利用可否と使用する機能
プランごとの利用可否機能
Personal、Premium、EnterpriseACL、groupsオートグループタグ

カスタムグループを使うと、ユーザーのグループの省略表現を定義でき、ユーザーを個別に列挙する代わりに、アクセスルール内で使用できます。

この例が行うことです。

{
  "groups": {
    "group:engineering": [
      "alice@example.com",
      "bob@example.com"
    ],
    "group:devops": [
      "amelie@example.com",
      "carl@example.com"
    ]
  },
  "acls": [
    {
      "action": "accept",
      "src": [
        "group:engineering"
      ],
      "dst": [
        "tag:frontend:*",
        "tag:backend:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:devops"
      ],
      "dst": [
        "tag:frontend:*",
        "tag:backend:*",
        "tag:logging:*"
      ]
    }
  ]
}

プロビジョニングされたグループを使う

サポートされているアイデンティティプロバイダーからのグループプロビジョニングを使うことで、ACL内でカスタムグループを維持する必要がなくなります。

{
  "acls": [
    {
      "action": "accept",
      "src": [
        "group:engineering@example.com"
      ],
      "dst": [
        "tag:frontend:*",
        "tag:backend:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:devops@example.com"
      ],
      "dst": [
        "tag:frontend:*",
        "tag:backend:*",
        "tag:logging:*"
      ]
    }
  ]
}

個々のユーザーに基づいて制限する

利用可否と使用する機能
プランごとの利用可否機能
Personal、Premium、EnterpriseACL、タグ

個々のユーザーに基づいて、リソースへのアクセスを有効にできます。

この例が行うことです。

{
  "acls": [
    {
      "action": "accept",
      "src": [
        "amelie@example.com"
      ],
      "dst": [
        "tag:frontend:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "bob@example.com"
      ],
      "dst": [
        "tag:backend:*"
      ]
    }
  ]
}

Standardプランの ACL

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、オートグループタグタグオーナー

この例は、corpおよびprodデバイスへのリモートアクセスを提供します。多くのStandardプランのユースケースに適しています。

チームは、Tailscaleを使ってリモートデバイスにアクセスできます。
このシナリオでは、すべてのユーザーが自分自身のリモートデバイスに加え、タグ付けされたサーバーなどの共通の企業デバイスにアクセスできます。
本番デバイスにアクセスできるのは、Tailscale Adminのみです。
Adminは、どのデバイスにタグを付けるかを構成できます。
企業デバイスや本番デバイス同士は互いにアクセスできず、共有ユーザーもデバイスにアクセスできません。

この例が行うことです。

{
  "acls": [
    {
      "action": "accept",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "autogroup:self:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "tag:corp:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "autogroup:admin"
      ],
      "dst": [
        "tag:prod:*"
      ]
    }
  ],
  "tagOwners": {
    "tag:corp": [
      "autogroup:admin"
    ],
    "tag:prod": [
      "autogroup:admin"
    ]
  }
}

内部アプリケーション(VPN)へのアクセス

利用可否と使用する機能
プランごとの利用可否機能
Personal、Premium、EnterpriseACL、groups、タグ、タグオーナー

Tailscaleを使うと、ユーザーに、カスタムの社内アプリケーションと、社内でホストされているサードパーティアプリケーションの両方を含む、内部アプリケーションへのアクセスを許可できます。
このシナリオでは、tailnet内のユーザーは、職務上の役割に基づいてアプリケーションにアクセスできます。IT部門は、内部アプリケーションをセットアップできます。

この例が行うことです。

{
  "groups": {
    "group:engineering": [
      "alice@example.com"
    ],
    "group:finance": [
      "bob@example.com"
    ],
    "group:legal": [
      "carl@example.com"
    ]
  },
  "acls": [
    {
      "action": "accept",
      "src": [
        "group:engineering"
      ],
      "dst": [
        "tag:engineering:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:finance"
      ],
      "dst": [
        "tag:finance:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:legal"
      ],
      "dst": [
        "tag:legal:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "tag:internal:*"
      ]
    }
  ],
  "tagOwners": {
    "tag:engineering": [
      "autogroup:admin"
    ],
    "tag:finance": [
      "autogroup:admin"
    ],
    "tag:legal": [
      "autogroup:admin"
    ],
    "tag:internal": [
      "autogroup:admin"
    ]
  }
}

同期グループを使った内部アプリケーション(VPN)へのアクセス

利用可否と使用する機能
プランごとの利用可否機能
EnterpriseACL、groups、オートグループタグ、タグオーナー

ユーザー・グループプロビジョニングを使うと、アイデンティティプロバイダーから同期されたグループを、アクセスルールに含めることができます。
Tailscaleは、同期されたグループ名を小文字として扱います。スペースを含めることはできますが、@記号は含められません。

この例が行うことです。

{
  "groups": {},
  "acls": [
    {
      "action": "accept",
      "src": [
        "group:engineering@example.com"
      ],
      "dst": [
        "tag:engineering:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:finance team@example.com"
      ],
      "dst": [
        "tag:finance:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:legal@example.com"
      ],
      "dst": [
        "tag:legal:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "tag:internal:*"
      ]
    }
  ],
  "tagOwners": {
    "tag:engineering": [
      "autogroup:admin"
    ],
    "tag:finance": [
      "autogroup:admin"
    ],
    "tag:legal": [
      "autogroup:admin"
    ],
    "tag:internal": [
      "autogroup:admin"
    ]
  }
}

本番環境へのリモートアクセス

利用可否と使用する機能
プランごとの利用可否機能
Personal、Premium、EnterpriseACL、groups、オートグループタグ、タグオーナー、tests

カスタムグループ(group:dev)の代わりにautogroup:memberを使うことで、この例をStandardプランでも動作するように変更できます。

DevOps、インフラ、またはSREチームは、Tailscaleを使って、機密性が高く厳重に保護された本番環境にアクセスできます。
このシナリオでは、DevOpsチームは本番環境にアクセスできる一方、他の開発者は開発環境内のリソースにのみアクセスできる場合があります。
すべての開発者は、Grafanaのような監視ツールにアクセスできます。

この例が行うことです。

{
  "groups": {
    "group:dev": [
      "alice@example.com",
      "bob@example.com"
    ]
  },
  "acls": [
    {
      "action": "accept",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "autogroup:self:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:dev"
      ],
      "dst": [
        "tag:dev:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "autogroup:admin"
      ],
      "dst": [
        "tag:prod:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "tag:monitoring:80,443"
      ]
    }
  ],
  "tagOwners": {
    "tag:monitoring": [
      "autogroup:admin"
    ],
    "tag:dev": [
      "autogroup:admin"
    ],
    "tag:prod": [
      "autogroup:admin"
    ]
  },
  "tests": [
    {
      "src": "carl@example.com",
      "accept": [
        "tag:prod:80"
      ]
    },
    {
      "src": "alice@example.com",
      "accept": [
        "tag:dev:80"
      ],
      "deny": [
        "tag:prod:80"
      ]
    }
  ]
}

VPCへのアクセス(VPCピアリング)

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、groups、オートグループタグ、タグオーナー、自動承認

カスタムグループ(group:dev)の代わりにautogroup:memberを使うことで、この例をStandardプランでも動作するように変更できます。

DevOpsチームは、Tailscaleを使って、開発者がプライベートまたはホスト型クラウドプロバイダー上のVirtual Private Cloud(VPC)で稼働している既存の社内アプリケーションにアクセスできるようにできます。
このシナリオでは、開発者はVPC内のリソースにアクセスでき、DevOpsチームはVPCへのアクセスを管理できます。
VPCは、(重複しないIP範囲であれば)互いにピアリングできます。
すべてのデバイスにTailscaleをインストールせずに、既存のサブネットをTailscaleネットワークに接続するには、サブネットルーターを使用できます。
サブネット内でサブネットルーターを実行し、ルートをアドバタイズすることで、Tailscaleがそのサブネット向けのトラフィックを、転送用のデバイスにルーティングできるようにします。
サブネット上のデバイスがtailnet内のデバイスに接続できるようにするには、サブネットルートのマスカレードを無効化してください。
自動承認を使って、ルートを自動的に承認することもできます。

この例が行うことです。

{
  "groups": {
    "group:dev": [
      "alice@example.com",
      "bob@example.com"
    ]
  },
  "acls": [
    {
      "action": "accept",
      "src": [
        "autogroup:admin"
      ],
      "dst": [
        "tag:vpc-peering:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:dev",
        "192.0.2.0/24",
        "198.51.100.0/24"
      ],
      "dst": [
        "192.0.2.0/24:*",
        "198.51.100.0/24:*"
      ]
    }
  ],
  "tagOwners": {
    "tag:vpc-peering": [
      "autogroup:admin"
    ]
  },
  "autoApprovers": {
    "routes": {
      "192.0.2.0/24": [
        "tag:vpc-peering",
        "autogroup:admin"
      ],
      "198.51.100.0/24": [
        "tag:vpc-peering",
        "autogroup:admin"
      ]
    }
  }
}

契約者とアクセスを共有する

利用可否と使用する機能
プランごとの利用可否機能
Personal、Premium、EnterpriseACL、groups、オートグループタグ、タグオーナー

カスタムグループ(group:dev)の代わりにautogroup:memberを使うことで、この例をStandardプランでも動作するように変更できます。

開発チームは、Tailscaleを使って、データベースやホスト型コードリポジトリなどの特定のリソースへのアクセスを、契約者と共有できます。
このシナリオでは、開発者は社内の開発リソースにアクセスできます。
特定のデバイスは、契約者の業務の一環として共有できます。

この例が行うことです。

{
  "groups": {
    "group:dev": [
      "alice@example.com",
      "bob@example.com"
    ]
  },
  "acls": [
    {
      "action": "accept",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "autogroup:self:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:dev",
        "autogroup:shared"
      ],
      "dst": [
        "tag:dev:*"
      ]
    }
  ],
  "tagOwners": {
    "tag:dev": [
      "group:dev"
    ]
  }
}

リモート開発

利用可否と使用する機能
プランごとの利用可否機能
Personal、Premium、EnterpriseACL、groups、オートグループタグ、タグオーナー

カスタムグループ(group:dev)の代わりにautogroup:memberを使うことで、この例をStandardプランでも動作するように変更できます。

開発チームは、リモート開発環境の一部としてTailscaleを使用できます。
このシナリオでは、開発者はノートPCなどのローカルデバイスを持ち、それを使って、クラウド上または自社ネットワーク内の別のデバイス上でホストされているリモートワークステーションにアクセスすることがあります。
これは、機械学習やビルド作業など、より高い処理能力を持つワークステーションにアクセスする場合に役立ちます。
また、GitHub CodespacesGitpodCoderのような、リモートコード環境を使用することもあります。
開発環境からは、ライセンスサーバー、パッケージレジストリ、本番データベース、その他の開発・ビルドリソースにアクセスすることがあります。
また、セルフホストまたはプライベートなコードリポジトリにアクセスすることもあります。

この例が行うことです。

{
  "groups": {
    "group:dev": [
      "alice@example.com",
      "bob@example.com"
    ]
  },
  "acls": [
    {
      "action": "accept",
      "src": [
        "autogroup:member"
      ],
      "dst": [
        "autogroup:self:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:dev"
      ],
      "dst": [
        "tag:dev:*"
      ]
    }
  ],
  "tagOwners": {
    "tag:dev": [
      "group:dev"
    ]
  }
}

ペアプログラミング

利用可否と使用する機能
プランごとの利用可否機能
Personal、Premium、EnterpriseACL、タグ、タグオーナー

名前付きのユーザーの代わりにautogroup:memberautogroup:adminを使うことで、この例をStandardプランでも動作するように変更できます。

開発チームは、Tailscaleを使って、同じデバイスでリモートからペアプログラミングを行えます。
このシナリオでは、2人以上の開発者がSSHを使って、仮想マシン(VM)などの企業デバイスに接続し、(tmuxセッションなどの)ターミナルを共有できます。

この例が行うことです。

{
  "acls": [
    {
      "action": "accept",
      "src": [
        "alice@example.com",
        "bob@example.com"
      ],
      "dst": [
        "tag:pair-programming:22"
      ]
    }
  ],
  "tagOwners": {
    "tag:pair-programming": [
      "bob@example.com"
    ]
  }
}

CI/CDデプロイパイプライン

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、groups、タグ、タグオーナー

DevOpsまたはインフラチームは、Tailscaleを使って、デプロイパイプラインへのアクセスを制限できます。
このシナリオでは、開発者はコードリポジトリなどの開発ツールにアクセスできます。
その後、自動化されたCI/CDパイプラインが、コードのビルドとデプロイを行います。
DevOpsチームは、デプロイパイプラインと本番環境にアクセスできます。

この例が行うことです。

{
  "groups": {
    "group:dev": [
      "alice@example.com",
      "bob@example.com"
    ],
    "group:devops": [
      "carl@example.com"
    ]
  },
  "acls": [
    {
      "action": "accept",
      "src": [
        "group:dev"
      ],
      "dst": [
        "tag:dev:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:devops"
      ],
      "dst": [
        "tag:ci:*",
        "tag:prod:*"
      ]
    }
  ],
  "tagOwners": {
    "tag:ci": [
      "group:devops"
    ],
    "tag:dev": [
      "group:devops",
      "tag:ci"
    ],
    "tag:prod": [
      "group:devops",
      "tag:ci"
    ]
  }
}

アプリケーションへのアクセスを監視する

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、groups、タグ、タグオーナー

カスタムグループ(group:devops)の代わりにautogroup:memberを使うことで、この例をStandardプランでも動作するように変更できます。

DevOpsチームは、Tailscaleを使って、ネットワーク内のサービスからログを問い合わせ、監視ツールの一部としてレポートできます。
このシナリオでは、監視サーバー(Prometheusなど)は、ネットワーク内のすべてのアプリケーションに、一般的なポートでアクセスできます。

この例が行うことです。

{
  "groups": {
    "group:devops": [
      "carl@example.com"
    ]
  },
  "acls": [
    {
      "action": "accept",
      "src": [
        "tag:monitoring"
      ],
      "dst": [
        "*:80,443,9100",
        "tag:logging:*"
      ]
    },
    {
      "action": "accept",
      "src": [
        "group:devops"
      ],
      "dst": [
        "tag:monitoring:*",
        "tag:logging:*"
      ]
    }
  ],
  "tagOwners": {
    "tag:monitoring": [
      "group:devops"
    ],
    "tag:logging": [
      "group:devops"
    ]
  }
}

アプリケーションのピアリング

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、groups、タグ、タグオーナー

カスタムグループ(group:infra)の代わりにautogroup:memberを使うことで、この例をStandardプランでも動作するように変更できます。

インフラチームは、Tailscaleを使って、複数のクラウドプロバイダーやSaaSアプリケーションで稼働しているアプリケーションやサービスを、互いに接続できます。
このシナリオでは、ある1つのアプリケーションが、ネットワーク内の別のアプリケーションと接続できます。例えば、Materializeのように、あるデータベースから別のデータベースへストリーミングする場合などです。

この例が行うことです。

{
  "groups": {
    "group:infra": [
      "carl@example.com"
    ]
  },
  "acls": [
    {
      "action": "accept",
      "src": [
        "tag:database",
        "tag:gcp",
        "tag:aws"
      ],
      "dst": [
        "tag:database:*"
      ]
    }
  ],
  "tagOwners": {
    "tag:database": [
      "group:infra"
    ],
    "tag:gcp": [
      "group:infra"
    ],
    "tag:aws": [
      "group:infra"
    ]
  }
}

ネットワークのマイクロセグメンテーション

利用可否と使用する機能
プランごとの利用可否機能
すべてのプランACL、groups、タグ、タグオーナー、tests

ネットワークのマイクロセグメンテーションは、ネットワークデバイス、アクセス、通信を、独立した論理単位に分割するセキュリティ技術です。
データセンター、仮想ネットワーク、顧客ごとの導入環境などをセグメント化するなど、多くの用途があります。
各マイクロセグメントは、他のマイクロセグメントにアクセスできない論理単位です。
場合によっては、すべてのセグメントにアクセスできるサポートチームやタグ付きデバイスが必要になることもあります。

この例が行うことです。

{
  "acls": [
    {
      "action": "accept",
      "src": [
        "group:support"
      ],
      "dst": [
        "tag:segment-abc:443",
        "tag:segment-xyz:443"
      ]
    },
    {
      "action": "accept",
      "src": [
        "tag:support"
      ],
      "dst": [
        "tag:segment-abc:443",
        "tag:segment-xyz:443"
      ]
    }
  ],
  "tests": [
    {
      "src": "group:support",
      "accept": [
        "tag:segment-abc:443",
        "tag:segment-xyz:443"
      ]
    },
    {
      "src": "tag:support",
      "accept": [
        "tag:segment-abc:443",
        "tag:segment-xyz:443"
      ]
    },
    {
      "src": "tag:segment-abc",
      "deny": [
        "tag:segment-xyz:443"
      ]
    },
    {
      "src": "tag:segment-xyz",
      "deny": [
        "tag:segment-abc:443"
      ]
    }
  ],
  "groups": {
    "group:support": [
      "alice@example.com",
      "bob@example.com"
    ]
  },
  "tagOwners": {
    "tag:support": [
      "autogroup:admin"
    ]
  }
}