認証キー
最終検証日:
翻訳: 竹洞 陽一郎
認証キー(事前認証キー、pre-authentication key)を使うと、ブラウザでのサインインなしにデバイスをtailnetへ登録できます。
コンテナ、IoT機器、Infrastructure as Codeによる構成など、対話的なログインが行えない環境で役立ちます。
認証キーは、そのキーを生成したユーザーのアイデンティティでデバイスを認証します。
認証キーにタグを設定している場合、デバイスは初回ログイン後にタグのアイデンティティを持ちます。
キーを直接生成する代わりに、OAuthクライアントとTailscale APIを組み合わせて、プログラムから認証キーを作成する方法もあります。
認証キーの種類
- 使い捨てキー(one-off key)
- 1回だけ使用できるキーです。ブラウザを使わずに認証する必要がある場面で使います。たとえば、クラウド上のサーバーを自動的に接続させる用途です。
- 再利用可能キー(reusable key)
- 複数のデバイスで使用できるキーです。オンプレミスの複数のデータベースインスタンスをまとめて接続する場合などに使います。
再利用可能キーは、盗まれた場合の危険性が非常に高いため、専用のキー保管製品(キーボールト)に保管してください。
キーの有効期限
- 有効期限は1日から90日までの範囲で指定できます。
- 指定しない場合の既定値は90日です。
- 期限切れになった認証キーを使い続けることはできず、新しいキーを生成する必要があります。
有効期限は、管理コンソールのMachinesページ、またはTailscale APIの「Update device key」エンドポイントから変更できます。
認証キーが期限切れになっても、そのキーで認証したデバイスの認可は取り消されません。
デバイスは、自身のノードキーが期限切れになるまで認可された状態を維持します。
ノードキーの既定の有効期限は180日で、管理コンソールのDevice managementページで変更できます。
タグ付きデバイスのキーの有効期限
タグを付けたデバイスでは、キーの有効期限は既定で無効になります。
管理コンソール、CLI、APIのいずれでタグを変更した場合も、キーの有効期限の有効・無効の状態は維持されます。
ただし、そのデバイスが再認証を行うと、既定の「無効」の状態に戻ります。
最近失効または期限切れになったキーは、管理コンソールのKeysページに表示されます。
デバイスのキーの有効期限については、キーの有効期限も参照してください。
認証キーを生成する
この操作には、Owner、Admin、IT admin、またはNetwork adminのロールが必要です。
- 管理コンソールのKeysページを開きます。
- 「Generate auth key」を選択します。
- 説明、再利用可能かどうか、有効期限、デバイスの設定を入力します。
- 「Generate key」を選択します。
デバイスの設定では、次の項目を指定できます。
- Ephemeral(一時的): デバイスがオフラインになると自動的に削除されます。
- Pre-approved(事前承認済み): デバイスを自動的に認可します。デバイス承認が有効なtailnetで使用します。
- Tags(タグ): デバイスに自動的にタグを付与します。
認証キーでノードを登録する
sudo tailscale up --auth-key=tskey-abcdef1432341818
--auth-keyフラグでキーを渡すことで、対話的なログインを省略できます。
Tailscaleが生成する認証キーは、大文字と小文字を区別します。
認証キーを失効させる
この操作には、Owner、Admin、IT admin、またはNetwork adminのロールが必要です。
失効させられるのは、自分が生成したキーのみです。
使い捨てキーは、使用後に自動的に失効します。
- 管理コンソールのKeysページを開きます。
- 一覧から対象のキーを探します。
- 「Revoke」を選択します。
キーを失効させても、そのキーで接続済みのノードの認可は取り消されません。
ノードを排除するには、Machinesページから削除する必要があります。
ベストプラクティス
- 短命なワークロードには一時キーを使う
- ノードキーはワークロードの再起動をまたいで保持されないため、デバイスは新しいアイデンティティで再接続します。Tailscaleは非アクティブなノードを自動的に削除します。コンテナやLambda関数では、一時キーを使ってください。
- デバイス承認を使う環境のサーバーには事前承認済みキーを使う
- デバイス承認が有効なtailnetでは、事前承認済みキーを使うことで、サーバーの構築時に別途承認する手間を省けます。
- Tailnet Lockを使う環境では事前署名したキーを使う
- Tailnet Lockを有効にしているtailnetでは、署名ノード上で
tailscale lock signコマンドを実行し、キーに署名しておく必要があります。 - タグ付きサーバーにはタグ付きキーを使う
- タグを設定したキーを使うと、構築時にタグが自動的に適用されます。タグに基づくアクセス制御ポリシーは、デバイスの構築直後から有効になります。