旧バージョンのドキュメントを参照しています。 最新のドキュメントはこちらをご参照ください。
Kong Manager の RBAC
管理者の認証とワークスペースのセグメント化に加えて、 Kong Gateway は、管理者に割り当てられたロールを使用して、すべてのリソースに対してロールベースのアクセス制御(RBAC)を適用する機能を備えています。
スーパー管理者(または/admins
および/rbac
エンドポイントへの読み取りおよび書き込みアクセス権を持つ任意のロール)として、新しいロールを作成し、権限をカスタマイズすることができます。
Kong Manager では、RBAC は管理者がアプリケーション内を移動する方法に影響します。
デフォルトのロール
Kong にはロールベースのアクセス制御(RBAC)が含まれています。Kong Manager を使用するすべての管理者は、アクセス権限を持つリソースに基づいて割り当てられたロールが必要です。
スーパー管理者が初めてKongを起動すると、default
ワークスペースには read-only
、admin
、super-admin
の3つのデフォルトのロールが含まれます。3つのロールには、クラスタ内のすべてのワークスペースに関連する権限があります。
同様に、ロールが特定のワークスペースに限定されている場合、そのロールに割り当てられた管理者は、概要や他のワークスペースへのリンクは表示できません。
あるロールにエンドポイント全体にアクセスする権限がない場合は、 その役割に割り当てられた管理者は、関連するナビゲーションリンクを見ることができません。
重要:デフォルトの管理者はKongのすべてのエンドポイントに対するフル権限を持っていますが、RBAC権限を割り当てたり変更したりできるのはスーパー管理者のみです。管理者は自身の権限を変更したり、スーパー管理者の権限を制限したりすることはできません。
ワークスペースでのRBAC
RBAC ロールと権限がワークスペース内から割り当てられる場合、それらはそのワークスペースに固有になります。 例えば、Payments と Deliveries という 2 つのワークスペースがあるとします。 Payments で作成された管理者には、Deliveries のどの エンドポイントに対してもアクセス権がありません。
スーパー管理者が新しいワークスペースを作成すると、クラスタレベルのロールを反映する3つのデフォルトロールと、各ワークスペースに固有の4番目のロールが存在します:workspace-read-only
、workspace-admin
、workspace-super-admin
、workspace-portal-admin
。
これらのロールは、Kong Managerの チーム > ロール タブで表示できます。
重要:
default
ワークスペースで割り当てられるどのロールも、割り当て後に作成されるすべてのワークスペースに対して権限を持ちます。ただし、特定のワークスペースのロールが明示的に割り当てられる場合を除きます。複数のワークスペースにわたってロールが割り当てられる場合、default
以外のワークスペースのロールが優先されます。たとえば、default
ワークスペースでsuper-admin
ロールに割り当てられ、かつws
ワークスペースでworkspace-read-only
ロールに割り当てられているスーパーアドミンは、すべてのワークスペースでRBAC権限を持ち、ws
を除くワークスペース内のエンドポイントに対して完全な権限を持ちます。 このアドミンは、ws
ワークスペース内のエンドポイントに対して読み取り専用権限のみを持ちます。
Kong GatewayでのRBACルールの仕組み
Kong Gatewayにはグループやロールなどの概念がありますが、ユーザーがエンドポイントにアクセスするための十分な権限を持っているかどうかを判断する際には、ユーザーに割り当てられたロールとグループからワークスペースとエンドポイントの組み合わせが収集され、それがKong Gatewayが権限をチェックするための最小単位となります。これらの組み合わせを、次の段落では「ルール」と呼びます。
Kong Gatewayは、ユーザーがエンドポイントにアクセスできるかどうかを判断するために、最も特異性の高いものから最も限定的でないものまでの優先順位モデルを使用します。各リクエストに対して、Kong Gatewayは、リクエストしたユーザーに割り当てられたRBACルールを次の順序でチェックします。
-
現在のワークスペースの現在のエンドポイントに対する許可または拒否ルール
-
任意のワークスペース(
*
)の現在のエンドポイントに対する許可または拒否ルール -
現在のワークスペース内の任意のエンドポイント(
*
)に対する許可または拒否ルール -
任意のワークスペース(
*
)内の任意のエンドポイント(*
)に対する許可または拒否ルール
Kong Gatewayが現在のユーザー、エンドポイント、ワークスペースに一致するルールを見つけた場合、そのルールに従ってリクエストを許可 または拒否します。Kong Gatewayは適用可能なルールを見つけると停止し、より具体的でないルールのチェックを続行しません。ルールが見つからない場合、リクエストは拒否されます。
管理者ロールがワークスペースに付与するデフォルトの権限は(*
)です。
Kong Gatewayは最初のロールで停止します。つまり、ロールが特定のワークスペースで明示的に割り当てられていない限り、デフォルトのワークスペースに割り当てられたロールは、その後に作成されたすべてのワークスペースに対する権限を持ちます。複数のワークスペースにわたってロールが割り当てられた場合、デフォルト以外のワークスペースのロールが優先されます。たとえば、デフォルトのワークスペースでsuper-admin
ロールに割り当てられ、ws
ワークスペースでworkspace-read-only
ロールに割り当てられたユーザーは、ws
ワークスペース以外のすべてのワークスペースで、エンドポイントに対する完全な権限を持つことになります。このユーザーは、ws
ワークスペースではエンドポイントに対して読み取り専用の権限のみを持ちます。
Kong Gatewayではロールに否定的なルールを追加することができます。否定ルールは、エンドポイントに関連付けられたアクションを拒否します。 ちなみに、否定ルールは上記ルールに従いつつ、否定ルール以外の他のルールより先に適用されます。