はじめに
OCIのユーザ管理およびポリシー設定について、以下のようなアーキテクチャを例にして確認したいと思います。
設計方針
以下の図のように、ネットワーク管理者とDB管理者はテナンシーで共通、アプリケーション開発者はコンパートメントごとにアクセスを制限します。
| ポリシー | 概要 | グループ | コンパートメント |
|---|---|---|---|
| network-admin | クラウドネットワーク管理者 | net_admin | ルート |
| app_A | アプリケーションA開発者 | app_A | system_A |
| app_B | アプリケーションB開発者 | app_B | system_B |
| DBA | Autonoumous DB管理者 | DBA | ルート |
この設計方針はベストプラクティスではなく、一例 です。
コンパートメント作成
OCIコンソールで、アイデンティティ → コンパートメント → コンパートメントの作成をクリックします。
以下の図のように設定してコンパートメントを作成します。
同様にもう一つのコンパートメントsystem_Bを作成します。
グループの作成
OCIではグループに対してポリシーを設定するので、ユーザが1人の場合でも必ずグループに属する必要があります。
以下の図のようにコンソールでグループを作成します。このとき、ユーザは割り当てずにグループのみ作成します。
同様に、4つのグループを作成します。
ユーザの作成
以下の図のようにコンソールでユーザを作成します。ユーザ作成時に、先ほど作成したグループ名を選択します。
なお、通常はメールアドレスをユーザ名にすることが多いですが、今回は私1人で複数のユーザを作成するので、ユーザ名とメールアドレスを別々にしています。
アクティベーション
ユーザを作成すると、設定したメールアドレスに以下のようなメールが届くので、リンクをクリックします。
以下の画面になるので、パスワードを設定してログインします。
スクリーンショット取り忘れましたが、初回ログイン時にMFAの設定を促されますので、画面に従ってMFAを設定します。
同様にその他のユーザを設定します。
ポリシーの設定
OCIコンソールのアイデンティティ → ポリシーでポリシーの作成をクリックします。
以下のようにしてNetwork管理者用のポリシーを設定します。
同様にして以下の設定で4つのポリシーを設定します。
| ポリシー | コンパートメント | ステートメント |
|---|---|---|
| network-admin | ルート | Allow group net_admin to manage virtual-network-family in tenancy |
| app_A | system_A | Allow group app_A to manage instance-family in compartment system_A Allow group app_A to use volume-family in compartment system_A Allow group app_A to use virtual-network-family in compartment system_A |
| app_B | system_B | Allow group app_B to manage instance-family in compartment system_B Allow group app_B to use volume-family in compartment system_B Allow group app_B to use virtual-network-family in compartment system_B |
| DBA | ルート | Allow group DBA to manage autonomous-database in tenancy |
確認
各ユーザでログインして、想定通りにポリシーが設定できていることを確認します。
(想定通りでした)








