[Oracle Cloud] Identity Domainsを触ってみる

# はじめに

少し前に、IAMのIdentity Domains機能のサポートがアナウンスされました。
最近、Identity Domainが有効になったAlways Freeアカウントを触れる機会があったので、試してみました。

https://docs.oracle.com/en-us/iaas/releasenotes/changes/068d610c-c7f8-4ba3-9753-a9d6f724869b/


OCIスキルアップセミナー#15で、Identity Domainsの概要の紹介があったので、資料を読んで以下のようにざっくりと理解

https://speakerdeck.com/oracle4engineer/overview-oci-iam-identity-domains

- 今までIDCSとOCI IAMの2つの認証基盤があったが、Identity Domainに統合される
- ドメインという概念が新しく増える
- 今まで有償版のIDCSを利用する必要があった機能も、一部無償で使えるようになっているらしい。

確かに、IDCSとOCIの使い分けはかなりわかりづらかったので、統一された方がわかりやすいと思います。

# さわってみる
## 初期状態でのログイン

AlwaysFreeの環境ですが、新規作成時にIdentity Domainsが有効になっていました。

ログインしてみます。

Domainが1つしかない初期状態だと、↓のようなログイン画面が表示されます。ドメインがDefaultに設定されてます。
従来は、IDCS用のログインとOCIローカルユーザのログインに分離されていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/6ece531d-bb99-8e3e-76c7-f1c0d07a5510.png)


ログイン後のメニュー項目に、「ドメイン」が追加されています。従来は「ユーザ」「グループ」のリンクがありましたが、上位階層のリンクからはいなくなっています

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/24f16610-2667-046a-46da-34240f45ee2f.png)


「ドメイン」リンクを押すと、ドメイン設定画面に遷移します。初期状態では、「Default」ドメインが1つだけありました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/f2e4e528-a8dc-9233-decb-0579c2e54729.png)

「Default」ドメインのリンクを押して画面を遷移すると、「ユーザ」「グループ」「動的グループ」などのリンクが表示されており、「ドメイン」の中にこれらのリソースが存在する構造になっていることがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/c256dfaa-3464-96b1-9660-252f653ebfce.png)

## 追加ドメイン作成

ドメインの画面から、ドメインを追加で作成してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/cb0fea37-98e8-e1af-2951-8e6830c1e656.png)

「MY_DOMAIN」という名前でドメインを作成してみました。ドメイン・タイプとして、Free、Oracle Apps Premium、Premium、外部ユーザが選択できますが、今回はFreeを選択します。

それぞれの違いは、こちらの[マニュアル](https://docs.oracle.com/ja-jp/iaas/Content/Identity/sku/overview.htm)を参照ください。(Freeが空き、Premiumが保険料と訳されていたり、日本語訳がとっても微妙ですが。。)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/3ab9f6a3-06b8-f1c7-634f-349f38ee40b2.png)

ドメインの管理者の名前とメールアドレスを入力して、「ドメインの作成」ボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/afb5c5f7-8586-d901-14c1-3507777a36ff.png)

ドメインの作成が始まります。作成時間はそんなにかかりません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/84d79c18-2572-39fb-f700-e09ea1f7401b.png)

管理者者のメールアドレスとして登録した宛先にメールが届いているので、パスワードリセットして、アクティベートします。

アクティベートしたユーザを使ってログインします。

ドメインを追加すると、OCIのログイン画面にドメインの選択画面が現れます。作成した「MY_DOMAIN」を選択し、管理者ユーザに指定したユーザのID/パスワードを入力してOCIにログインします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/0bc196a2-e3e2-baf1-3a47-354b5ec97ccf.png)

ドメイン作成時に指定した管理者ユーザは、アイデンティティ・ドメイン管理者ロールが付与されています。そのため、ドメイン内のユーザ・グループの作成・削除やセキュリティ設定などを行うことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/e0b3a5b8-1d0d-d2ea-aa77-e7e46630d1ef.png)


OCIのリソースにアクセスするためのグループとしては、ドメイン作成時に「Domain Administrators」グループに所属するようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/d963e119-86c0-03f0-0f14-ccdd78c463a5.png)

ここで少しはまったのですが、<b>この「Domain Administrator」グループに対して、初期状態で権限が何も与えられていないようです。</b> ポリシーを追加して権限を与えてあげる必要があったので、新規にコンパートメントを作成してコンパートメントに対する管理者権限を、ドメイン管理者に付与します。

ドメイン名と同じ名称のコンパートメント「MY_DOMAIN」を作成して、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/06a72cae-16a5-9670-6525-bdf417ab81ec.png)

ルートコンパートメントに、以下のようなポリシーを設定します。

追加したドメイン内のグループを指定する場合は、以下のようにドメイン名で修飾してあげる必要があることに注意です。
(ドメイン名を省略した場合は、デフォルトドメイン(Default)のグループとして解釈されるそうです。)

```
allow group ドメイン名/グループ名 to xxx
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1674918/6b91f8ac-978b-33d5-8553-c1e94ed0c282.png)

ここまでで、以下のことができるようになりました。

 - デフォルト・ドメインとは分離されたユーザ・グループの名前空間を持つ「MY_DOMAIN」を作成
 - 「MY_DOMAIN」の管理ユーザは、ドメイン内のユーザ・グループに対して作成・削除権限を持つ
 - 「MY_DOMAIN」コンパートメント内に任意のリソースを作成することができる

従来のIDCS/IAMでは、ユーザ・グループの名前空間が一つだったので、ユーザ・グループ管理の権限分掌が面倒でしたが、Identity Domainsを利用することで、すっきりと管理できそうです。

また、今まで有償版IDCSでしか使えなかった機能も一部使えるようになっているらしいので、少しづつ試していこうと思います。