# サブユーザーの管理 (RBAC)

## ユーザーについて <a href="#users" id="users"></a>

Alphaus が提供するサービスのユーザーには`ルートユーザー`と`サブユーザー`の2種類があります。

**ルートユーザー:** 管理者アカウントであり、全ての権限を持つアカウント。プロダクトの利用を始める際にメールアドレス形式で登録しているアカウントがルートユーザーにあたります。

**サブユーザー:** ルートユーザーによって作成されます。サブユーザーには最小限のアクセスから特定の権限の指定、もしくはルートユーザーと同じく管理者権限を付与することも可能です。

## Role Based Access Control (RBAC)  <a href="#rbac" id="rbac"></a>

RBAC はAlphaus のプロダクト内で利用できるロールを基準としたアクセス管理システムです。RBACを活用することによりユーザーの把握が可能になるだけでなく、各ユーザーに対して、必要なアクセス権限を特定の機能やリソースに絞ることができます。

RBACはユーザー、サービス、ロール、権限によって定義されます。

ロールは例として`Admin` `Developers`など、1ユーザーに対してサービスごとに5つまでのロールを付与することが可能です。

ロールと権限はサービスごとに分離されています。従ってロールを作成する際はサービスごとに該当のサービスに紐づく権限をアタッチする必要があります。

ルートユーザーは常に管理者権限を持ちサービスに関係なく制限を受けることはありません。ルートユーザーにて各サブユーザーを作成し、特定のロールを付与し使用するオペレーションを推奨しています。

## Serviceとは <a href="#namespaces" id="namespaces"></a>

RBACが適用されるまとまりを指します。以下のリストが現在 RBACでサポートされているサービスです。

| Wave  | `wave`  |
| ----- | ------- |
| Users | `users` |
| RBAC  | `rbac`  |
