インスタンス管理者権限を付与する
インスタンス管理者とは、サーバー自体の面倒を見る人のことで、インスタンス上のすべてのアカウントを横断的に見られるパネルを持ちます。このページでは、このフラグが何であるか、どう付与するか、そしてそれを取り巻く安全策について説明します。
このフラグは何であり、何でないか
インスタンス管理者フラグはサーバー全体に及ぶもので、アカウントの権限とは完全に別物です。これが与えるのはただ一つ、インスタンス管理パネルへのアクセスだけです。
- 管理者自身のアカウント内では、追加の権限は一切与えられません。自分のアカウントでは閲覧者であるインスタンス管理者は、そこではアイテムを編集できません。
- これはアカウント単位ではなく、ユーザー単位のものです。サーバーを実際に運用している特定の人物、通常は自分自身に付与します。
クラブのインスタンスを運用しているAlexは、自分のユーザーにこのフラグを持っていますが、自分のアカウント内では普通のオーナーです。この2つの事実は無関係です。
付与と剥奪
このフラグはコマンドラインから管理します。これは意図的な設計で、サーバー全体のパネルへの最初のアクセスには、サーバーそのものへのアクセスが必要であるべきだからです。
docker compose exec app php artisan kollek:make-instance-administrator you@example.com
剥奪も同じ方法で行います。
docker compose exec app php artisan kollek:make-instance-administrator you@example.com --revoke
既存の管理者は、パネル内から他のユーザーのフラグを切り替えることもできます。
パネルが存在しないふりをする理由
このフラグを持たない人にとって、/instance-adminは「アクセス拒否」ではなく404 Not Foundを返します。パネルは、使えない人にはその存在すら知らせません。そのため、インスタンスを外から探っても何も見つかりません。自分にフラグを付与したのに404が表示される場合は、フラグを付与した本人としてサインインしているかを確認してください。
ロックアウトを防ぐ安全策
インスタンスが管理者を失わないよう、2つのルールで保護されています。
- 管理者は、パネルから自分自身のフラグを剥奪できません。
- 管理者は、パネルから自分自身のユーザーを削除できません。
これにより、パネルを使って全員をパネルから締め出してしまうことは起こり得ません。そして、たとえすべての管理者がいなくなったとしても、上記のコマンドラインの方法はサーバーへのアクセスさえあれば常に機能します。
次に読むべきもの
- パネルでできることをインスタンス管理パネルで確認しましょう。
- 他の運用者向けコマンドをコマンドラインで管理するで確認しましょう。
KolleK のドキュメント
このページを GitHub で編集
このページは役に立ちましたか?