ロールベースアクセス制御(RBAC)

CMPは、RBACメカニズムによるアクセス制御を実装しています。下図のとおり、すべてのアクションはCMPによるポリシーマネジメント機能により制御されます。

RBAC
主なエンティティは下記の通りです。
エンティティ 詳細
Policy 特定のUserが特定のアクションを実施しようとした場合に適用されるruleやstatementの一式です。PolicyはUser, Group, Roleに適用されます。
User CMPにおける個別のユーザーです。
Group 管理をシンプルにするために、UserをGroupに加えることができます。
Role PolicyをRoleに適用することができます。Userは、一時的にこれらのパーミッションを使用するためにRoleを担います。Roleの定義の一部には、誰がそのRoleを担うことができるかを記載します。

かつ、Policy Statementは下記の5つのエレメントで構成されます。
エレメント 詳細
Effect
ルールが適合した場合の挙動
Allow / Deny
Action
対象リソースに対するCRUDオペレーション
Create / Read / Update / Delete
Resource
ルールが適用される対象のリソース
/servers/id
Constraint
ルールが適合しているかどうかチェックするためのオプションセット
“Condition”: {
“StringEquals”: {
“cmp:resource_id”: “de305d54-75b4-431b-adb2-eb6b9e546014”,
},
},

基本的な構造の例:
As a user A with policy B (optionally via role C or group D) I can perform operation E on resource F. Assuming constraint G is met.
(Policy B (Role C もしくはGroup D のいずれか)が適用されるUser A として、私はResource F に対して E というオペレーションを実行可能である。前提としてConstraint G が適用されている。)

特長: 既定のポリシー

CMPにより、お客様はポリシーを設定可能ですが、より簡単にご利用いただくために、既定のポリシーが利用可能です。
既定のポリシーは編集・削除することができません。
ユーザーがCMPに初めてログインする際には、(AWS IAMと同様に)ユーザーには何のポリシーも適用されていませんが、Policy Adminにアタッチされたユーザーは新規ユーザーに対し、操作を制限するために下記の既定ポリシーを適用することが可能です。
ポリシー名 詳細 許可された操作
General Users CMP内のリソースに対するAdmin権限を付与された、一般的なadminユーザー GET/PUT/POST/DELETE all API resources except policies, groups and roles
User Admin どのユーザーがどのグループに所属させるか管理することを、ユーザーに許可 GET/PUT/POST/DELETE on groups, roles, user-group association and user-role association
Policy Admin グループやユーザーに対しどのポリシー実施させるかを、ユーザーに許可 GET/PUT/POST/DELETE on policies, user-policy association and group-policy association
Read Only リソースに対し読み取り専用アクセスを付与するグループ。このポリシーが適用されたユーザーは、admin権限を付与されない GET from all API resources except policies, groups and roles

特長: Role Assumption

User U がRole R を有している場合、HTTPリクエストヘッダ(下記参照)にrole headerを付与することにより UR の役割を担うことができます。また、UR がアタッチされたポリシーに基づいたオペレーションが可能です。

X-CMP-Role: <Role UUID>
上記の場合は、U が既にアタッチされているオリジナルのポリシーは適用されません。
これは、adminユーザーが、いくつかの特権をあるユーザーに権限移譲するために、一時的なポリシーをそのユーザーに適用したい場合に有効です。Roleは同一お客様内のUserにて担うことが可能です。