複数のtailnetの管理
最終検証日:
翻訳: 竹洞 陽一郎
共通のアイデンティティプロバイダとドメインを使用して、1つの組織の下に複数のTailscaleネットワーク(tailnetと呼ばれます)を作成できます。
複数tailnetは、現在アルファ版です。
組織で複数のtailnetを作成するには、Spelldataのテクニカルサポートにお問い合わせください。
追加するtailnetは、すべて既存のtailnetと同じドメインとアイデンティティプロバイダを使用する必要があります。
アイデンティティプロバイダとドメインの任意の組み合わせを組織内で使用できるようにすることは、将来の対応が予定されています。
追加のtailnetの作成
現時点では、ユーザーがセルフサービスで追加のtailnetを作成することはできません。
担当のアカウントエグゼクティブまたはソリューションエンジニアに連絡し、代わりに追加のtailnetを作成してもらう必要があります。
その際、以下の情報を提供する必要があります。
- 追加するtailnetに設定したい表示名(display name)。表示名は後から変更できます。
- 表示名は最大65文字で、英字、数字、スペース、アポストロフィ、ハイフンを使用できます。ピリオドとアンダースコアは使用できません。
- 追加するtailnetのオーナー(Owner)に指定するユーザーのメールアドレス。これは現在のtailnetに存在するユーザーである必要があります。
- そのtailnetに参加していないユーザーに対して、そのtailnetを一覧に表示するかどうか。
追加のtailnetの管理コンソールへのアクセス
作成された追加のtailnetには、組織内のすべてのユーザーが参加できます。
追加のtailnetに参加できるユーザーを制限したい場合は、そのtailnetでユーザー承認(User approval)を有効にする必要があります。
どのユーザーが追加のtailnetに参加できるかを決める詳細なアクセスルールの導入は、将来の対応が予定されています。
サインイン時に追加のtailnetを選択する
組織が複数のtailnetを持っている場合、Tailscaleにサインインすると、サインインするtailnetを選択するためのtailnetセレクタに誘導されます。
まだ参加していない追加のtailnetは、非掲載(unlisted)に設定されていない限り、このセレクタの下部に表示されます。
管理コンソールから追加のtailnetに切り替える
組織のtailnetの管理コンソールを切り替えるには、管理コンソール右上のプロフィール画像を選択し、ドロップダウンから目的のtailnetを選択します。
表示されるのは、自分が参加済みのtailnetのみです。
追加のtailnetに参加するには、「Join additional tailnets」を選択します。
追加のtailnetへのデバイスの追加
アイデンティティプロバイダ経由でデバイスを認証する
組織に追加のtailnetを作成すると、デバイスの認証フローの選択肢として、そのtailnetが表示されるようになります。
デバイスを追加したいtailnetを選択してください。
認証キーでデバイスを認証する
認証キー(auth key)を使って追加のtailnetにデバイスを追加する手順は、これまでと変わりません。
そのtailnetの管理コンソールにサインインするか、管理コンソールをそのtailnetに切り替えた上で、通常の認証キー作成手順に従ってください。
ユーザーとグループのプロビジョニング
組織内のいずれかのtailnetでグループ同期(group syncing)を有効にすると、組織内の各tailnetのアクセス制御ポリシーで、それらのグループを参照できます。
プロビジョニングの設定を変更する必要がある場合、変更できるのはプロビジョニングを有効にした元のtailnetからのみです。
それ以外のtailnetでは、アクセス制御ポリシーで参照できるグループに対して読み取り専用のアクセスとなります。
プロビジョニングされたユーザーは、組織内のすべてのtailnetにはまだ同期されません。
元のtailnetに自動的にプロビジョニングされたユーザーであっても、他のtailnetには手動で参加する必要があります。
アクセス制御ポリシーの例
どのグループがどのリソースにアクセスできるかは、tailnetポリシーファイルでtailnetごとに制御します。
以下は、その例です。
tailnet 1では、group1@example.comにtag:staging:443のリソースへのアクセスを許可し、group2@example.comには許可しません。
そして、これを強制するためのテストを記述します。
{
"grants": [
{
// `group1`に`tag:staging:443`へのアクセスを許可する
"src": ["group1@example.com"],
"dst": ["tag:staging"],
"ip": ["443"]
}
],
"tests": [
{
// `group2`の`tag:staging:443`へのアクセスを拒否する
"src": "group2@example.com",
"deny": ["tag:staging:443"]
}
]
}
tailnet 2では、group2@example.comにtag:production:443のリソースへのアクセスを許可し、group1@example.comには許可しません。
同様に、これを強制するためのテストを記述します。
{
"grants": [
{
// `group2`に`tag:production:443`へのアクセスを許可する
"src": ["group2@example.com"],
"dst": ["tag:production"],
"ip": ["443"]
}
],
"tests": [
{
// `group1`の`tag:production:443`へのアクセスを拒否する
"src": "group1@example.com",
"deny": ["tag:production:443"]
}
]
}
tailnetポリシーファイルの管理には、ビジュアルポリシーエディタを使用できます。
使い方については、ビジュアルエディタのリファレンスを参照してください。
tailnetを非掲載にする
組織が複数のtailnetを持っている場合、ユーザーが参加していないtailnetを見えないようにしたいことがあります。
tailnetを非掲載(unlist)にすると、ログイン時のtailnetセレクタで、そのtailnetに参加していないユーザーからは表示されなくなります。
ただし、tailnetセレクタのURLのクエリパラメータでそのtailnetを指定すれば、ユーザーは引き続き参加できます。
tailnetを非掲載にするには、担当のアカウントエグゼクティブまたはソリューションエンジニアにお問い合わせください。
非掲載のtailnetへのアクセスをユーザーに与える
ユーザーは、tailnetセレクタへのリンクにtailnetクエリパラメータとtailnet IDを追加することで、非掲載のtailnetにも参加できます。
これにより、非掲載のtailnetがtailnetセレクタのUIに表示されます。
例えば、tailnet IDが「T123456789CNTRL」の非掲載のtailnetがある場合、ユーザーは以下のようにtailnetセレクタのURIにtailnetクエリパラメータを追加することで、そのtailnetに参加できます。
https://login.tailscale.com/switch-tailnet?tailnet=T123456789CNTRL
制限事項
- 作成された追加のtailnetには、組織内のすべてのユーザーが参加できます。追加のtailnetに参加できるユーザーを制限したい場合は、そのtailnetでユーザー承認(User approval)を有効にする必要があります。どのユーザーが追加のtailnetに参加できるかを決める詳細なアクセスルールの導入は、将来の対応が予定されています。
- 追加するtailnetは、すべて既存のtailnetと同じドメインとアイデンティティプロバイダを使用する必要があります。アイデンティティプロバイダとドメインの任意の組み合わせを組織内で使用できるようにすることは、将来の対応が予定されています。
- ユーザーが追加のtailnetに参加できるようにするには、外部tailnetへの参加を全員(Everyone)に許可する必要があります。各tailnet内のリソースにどのグループとユーザーがアクセスできるかは、ユーザーとグループのプロビジョニングで引き続き制御できます。
- アイデンティティとしてGitHubの組織アカウントを使用している場合、複数tailnetを有効にすることも、作成することもできません。