OracleCloudユーザ管理  個人的おすすめな管理方法

# はじめに

Oracle Cloud のユーザ管理が複雑で、勉強の一環で整理をしていきます。Oracle Cloud を使い始めていて混乱したので、初めて使い始める方に向けて、ユーザ管理方法を記載します。
もし異なる点などあれば、コメントなどで指定いただけると幸いです。



# Oracle Cloudのユーザ管理

2019年3月時点で、Oracle Cloud には2種類のユーザ管理が存在します。

1. Oracle Cloud 全体のユーザ管理 (Oracle Identity Cloud Service)
2. Oracle Cloud Infrastructure のユーザ管理



Oracle Cloud の中に、OCI(Oracle Cloud Infrastructure)と呼ばれる、IaaSを提供するサービスが存在しており、Oracle Cloudの全体で利用できるユーザ管理と、OCIで利用できるユーザ管理があります。



OCI にログインするには、2種類の方法があります。

- OCIで管理しているユーザでログイン
- Oracle Cloud 全体のユーザ (Oracle Identity Cloud Service) でログイン

これに対して、OCI以外のサービスでは、Oracle Identity Cloud Service でログインする必要があります (例外があるかも)



図に表すとこのようになります

![user-001.png](https://qiita-image-store.s3.amazonaws.com/0/104247/6cb49ebb-e5b2-d9a5-1459-fdd0d765eb48.png)




# OCI のログイン方法はどうすりゃいいの

個人的な意見ですが、Oracle Identity Cloud Serviceを使用するのが良いと思います。OCI管理のユーザを使用することもできますが、Oracle Identity Cloud Serviceと二重管理となってスマートではないため、Oracle Identity Cloud Serviceに統一するとよいです。



# OCI のフェデレーション

OCIのIAMにあるフェデレーション機能を使用して、Oracle Identity Cloud Service と連携を行うことが出来ます。
図で表すとこのようになります。

![user-004.png](https://qiita-image-store.s3.amazonaws.com/0/104247/b581c1b2-a4d2-ebe5-ae4e-6bfbfe929632.png)

OCIのフェデレーション機能の挙動を簡単に記載します。

- IDCS User : IDCSとOCIに自動的にユーザが作成される。ユーザは、IDCSのユーザに紐づくパスワードで、OCIにもログインすることが出来る
- IDCS Groups : IDCS側にグループが作成される
- Group Mapping : IDCS Group と、OCI側のグループを紐づける



# ユーザの追加方法

OCI上でフェデレーションのためのユーザを作成する手順を記載します。
まず、OCIへログインし、Identity → Federation を選択します。

![user-002.png](https://qiita-image-store.s3.amazonaws.com/0/104247/8548b72a-d6a9-d56b-1cdf-a48ea0293734.png)





Oracle Identity Cloud Service を選択します。これは、デフォルトで作成されています。

![user-003.png](https://qiita-image-store.s3.amazonaws.com/0/104247/0ff48a59-a8e8-6a02-3231-4e4528867c40.png)



Create IDCS User を選択し、USERNAME などを適宜入力していきます。

- USERNAME : LoginするときのID
- EMAIL : パスワードリセットなどを行う時に、ResetURLを送付する先
- First Name : Oracle Identity Cloud Serviceで表示されるユーザのFist Name 
- Last Name : Oracle Identity Cloud Serviceで表示されるユーザのLast Name

作成したときに表示される Reset URL はメモっておきます。
作成完了後、Oracle Identity Cloud Serviceにユーザが自動生成されます。なお、OCI側のユーザはまだ作成されていませんが正常です。

![user-005.png](https://qiita-image-store.s3.amazonaws.com/0/104247/e889c372-69b6-b5d8-789d-f73715cf052e.png)



同様に、Groupを作成します。Groupを作成するときに、上記で作成したUSERを選択します。
作成完了後、Oracle Identity Cloud Serviceにグループが自動生成されます。

![user-006.png](https://qiita-image-store.s3.amazonaws.com/0/104247/eff16668-6219-ceef-4f2c-8ee1444411ef.png)



Group Mapping を 編集するために、Edit Mapping を選択します

![user-007.png](https://qiita-image-store.s3.amazonaws.com/0/104247/37be783d-f2e7-3bff-255b-968003009dab.png)



IDENTITY PROVIDER GROUP(Oracle Identity Cloud Serviceのグループ) と、OCI GROUP のマッピングを追加します。これを指定することで、Oracle Identity Cloud Serviceのアカウントでログインした際に、OCIのグループを紐づけて、アクセス制御の認可処理を行うことが出来ます。
設定完了後、OCI側に自動的にユーザが生成され、ログインが出来るようになります。ユーザの名前は、`oracleidentitycloudservice/sugi`のようにIDCSとフェデレーションされていることがわかるようになっています

![user-008.png](https://qiita-image-store.s3.amazonaws.com/0/104247/41a3bd1e-79e8-470e-b12c-755fa3d5172c.png)



これで、作成したユーザを使用してログインすることが出来ます。ユーザ作成時に表示されたリセットURLを使用して、パスワードを指定することで、ログインすることが出来ます。



# ユーザの削除方法

OCIのフェデレーション画面で作成した、IDCS User・IDCS Groupを削除することで、自動的にOCIやOracle Identity Cloud Service上のユーザグループが削除されます。



# ユーザの権限管理

## OCI上の権限管理

Group Mapping で紐づけたGroupを使用してポリシーを生成することで、権限管理を行うことが出来ます。
Group Mapping で `sugigroup` へマッピングした際には、以下のようなポリシーを設定することが出来ます。

```
allow group sugigroup to manage users in tenancy
```



##Oracle Identity Cloud Service上の権限管理

Oracle Cloud の Dashborad 上でロールを設定することで、Oracle Cloud 全体のサービスのアクセス権限管理を行うことが出来ます。

![user-009.png](https://qiita-image-store.s3.amazonaws.com/0/104247/b948e78f-aba5-6955-70dc-34d80436c3b6.png)



# 参考URL

https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/addingidcsusersandgroups.htm