キーとシークレットの管理
最終検証日:
翻訳: 竹洞 陽一郎
tailnetのリソースへ安全にアクセスするために、複数の種類のキーとシークレットを設定できます。
tailnetのセキュリティ全般については、tailnetを保護するためのベストプラクティス(英語)を参照してください。
キーとシークレットのベストプラクティス
- キーやシークレットを生成したら、直ちにパスワードマネージャーへ保存してください。シークレットの全体が表示されるのは生成時の一度だけであり、紛失した場合は再生成が必要になります。
- キーの種類ごとに有効期限を把握し、期限に合わせて管理してください。SCIM APIキーとWebhookエンドポイントのシークレットは期限切れになりません。
- シークレットマネージャー、またはお使いのクラウドプロバイダーが提供するガイダンスに従って、安全に保管してください。
- OAuthクライアントやAPIアクセストークンを、ソースコード管理に保存しないでください。
キーの接頭辞
Tailscaleのキーには、その種類を識別するための接頭辞が含まれます。
たとえばtskey-apiはAPIアクセストークンを、tskey-authは認証キーを表します。
接頭辞の一覧については、Key prefixes(英語)を参照してください。
キーとシークレットの種類
APIアクセストークン
APIアクセストークンは、アプリケーションがTailscale APIを通じてtailnetにアクセスするための権限を付与します。
生成と失効は、管理コンソールのKeysページにあるAPI access tokensセクションで行います。
生成は「Generate access token」、失効は該当トークンの「Revoke」で実行します。
Tailscaleのキーは、すべて大文字と小文字を区別します。
認証キー
認証キー(Auth Key)は、対話的なSSOセッションの代わりに、タグ付けされたデバイスを認証するために使います。
生成と失効は、管理コンソールのKeysページで管理します。
詳細は、認証キーを参照してください。
OAuthクライアント
OAuthクライアントは、Tailscale APIへのアクセス権限を委譲し、そのスコープを限定するために使います。
OAuthクライアントは、管理コンソールのTrust credentialsページで管理します。
設定方法についてはSetting up an OAuth client(英語)を、失効方法についてはRevoke a trust credential(英語)を参照してください。
SCIM APIキー
SCIM APIキーは、ユーザーとグループのプロビジョニングのために、IDプロバイダとtailnetの間の認証に使います。
現在、Microsoft Entra IDとOktaに対応しています。
SCIM APIキーは期限切れにならず、tailnet全体で1つのキーのみを保持します。
SCIM APIキーは、管理コンソールのUser managementページで管理します。
このセクションは、ユーザーとグループのプロビジョニングが有効な場合にのみ表示されます。
- 生成: User managementページで「Enable Provisioning」を実行し、表示されたキーをコピーして、IDプロバイダ側の設定に登録します。
- 失効: キーを紛失した場合、環境が侵害された場合、またはプロビジョニングの利用をやめる場合は、User managementページの「Manage keys」からProvisioning keysダイアログを開き、「Revoke」を実行します。
- 再生成: 同じProvisioning keysダイアログで「Generate new key」を実行します。
IDプロバイダ側の設定手順については、Microsoft Entra IDのプロビジョニング設定(英語)、またはOktaのプロビジョニング設定(英語)を参照してください。
機能の概要については、User & group provisioning(英語)を参照してください。
Webhookシークレット
Webhookシークレットは、Webhookのリクエストが、権限を持つtailnetのユーザーから送信されたものであることを保証するために使います。
tailnetのイベントを購読し、SlackやDiscord、Mattermostなどへ送信する用途で利用します。
Webhookエンドポイントのシークレットは期限切れになりません。
Webhookは、管理コンソールのWebhooksページで管理します。
エンドポイントを削除すると、そのシークレットも削除されます。
作成・削除・ローテーションの手順については、Webhooks(英語)を参照してください。
ログとイベントの活用
キーやシークレットの状態変化は、管理コンソールのLogsページで監視できます。
たとえば、新しいAPIアクセストークンや認証キーを作成すると、「Create API key」のイベントが記録されます。
Webhookを設定すれば、キーの状態変化を自動的に通知させることもできます。
記録されるイベントの詳細については、構成監査ログを参照してください。
キーの有効期限
APIアクセストークン、認証キー、OAuthのキーには有効期限があり、生成時に設定できます。
一方、SCIM APIキーとWebhookエンドポイントのシークレットは期限切れになりません。
キーの種類ごとに有効期限を把握し、期限切れによる停止が起きないよう、事前に払い出し計画を立ててください。
詳細については、Key expiry(英語)を参照してください。
シークレット漏洩スキャン
キーの意図しない漏洩による影響を軽減し、不正利用を防ぐため、Tailscaleは複数の企業と提携し、ソースコードリポジトリやデータソースに漏洩したキーをスキャンしています。
詳細は、公開されたTailscaleシークレットのスキャンを参照してください。
ユーザーのオフボーディング
キーとシークレットの管理は、退職・異動などに伴う対応の一部にすぎません。
ユーザーやデバイスの削除に関する考慮事項については、Offboarding users(英語)を参照してください。