Oracle Analytics Cloud：アイデンティティ・ドメインが複数ある環境へのデプロイ

# はじめに
アイデンティティ・ドメインとは、Oracle Cloud Infrastructure（**OCI**）でユーザを管理するための仕組みです。
詳しくは、こちらを参考にしてみてください。

https://oracle-japan.github.io/ocidocs/services/governance%20and%20administration/identity-domains-overview/

ドメインは、ひとつのテナントに複数持つことができるのですが、そのような環境にOracle Analytics Cloud（**OAC**）をデプロイするとどうなるのか、を試してみました。

# 複数のドメインを用意する
OCI管理コンソールにログインします。
「アイデンティティとセキュリティ」から「ドメイン」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/ee5b4121-4597-976c-aa01-963951945d6f.png)
「ドメインの作成」をクリックして、新しいドメインを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/378ba911-e588-4657-280d-7268931700b2.png)
任意の表示名を入力し、ドメイン・タイプを「Free」にして「ドメインの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/0e90236d-e7d2-b9ce-1173-8445f928008f.png)
ドメインが2つできました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/99e488d1-1a38-5757-51fa-65f75ec3aa20.png)

# それぞれのドメインにOACの管理ユーザを作成する
それぞれのドメインをクリックして、ユーザとグループを作成します。
ユーザ名であるメールアドレスにぼかしを入れたら、何がなんだかわかりにくくなりましたが、初めから存在していたDefaultドメインに登録されているユーザです。
この内のひとりが、Defualtドメインに作成するOACインスタンスの管理者となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/64ce9616-2cc2-f17c-3616-fa29287bf0f9.png)
2つ目のドメインのユーザはこんな感じです。
やはり、この内のひとりがSecondaryドメインに作成するOACインスタンスの管理者となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/af602802-b37d-068e-a256-099d9095a786.png)

:::note info
ポリシーを設定する際のグループの指定方法に注意してください。ドメインを指定しないとデフォルトのドメインと解釈されます。
例：allow group 'Secondary'/'OAC_Admins2' to manage analytics-instances in compartment demo
:::

# OACインスタンスを作成する
OCI管理コンソールを一旦サインアウトして、再度サインインします。
ドメインが複数になったことで、最初にログインしたいドメインの選択画面がでてきます。
Defaultドメインを選択してログインします。
ログインアカウントは、DefaultドメインのOAC管理用ユーザです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/007b1ae9-cd47-ad39-440b-fbfdeb17c4be.png)
OACインスタンスの作成は、いつも通りです。
Defaultドメインに関連付けるOACドメインはOAC1という名前にしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/86b6748c-400d-3281-4837-ad11c0a7da47.png)
OCI管理コンソールを一旦サインアウトして、再度サインインします。
今度は、Secondaryドメインを選択してログインします。
ログインアカウントは、SecondaryドメインのOAC管理用ユーザです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/f42ab5d0-7cb1-2b89-14bd-b935c67eddd9.png)
先程同様にOACインスタンスを作成します。今度はOAC2という名前のインスタンスを作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/3d863f79-3d0b-0afb-8594-2d8fd575c774.png)
しばらく待つと、両方のインスタンスの作成が完了しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/ed138921-4127-97a9-8442-b109e41a2089.png)

# ログインしてみる
OAC1とOAC2にそれぞれログインしてみます。
OAC1を作成した管理者ユーザでは、当然ながらOAC1インスタンスにログインできますが、OAC2インスタンスにはログインできません。
逆もしかりです。
## OAC1の場合
まずは、OAC1です。
手元のExcelファイルをアップロードしてデータセットを作成しました。
そのデータセットのアクションメニューから「検査」を選択し「アクセス」タブに移動しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/2eeba4de-936c-0d5b-f73f-5bf5388fc2b4.png)
Defaultドメインに登録されたユーザに対して、アクセス権が付与可能であることがわかります。
「コントロール」メニューの「ユーザーとロール」も確認してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/a5c0b123-4599-b491-699e-4cc7e67a4677.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/20b0c13e-f5f8-0829-25e0-664c318737a3.png)

## OAC2の場合
OAC2でも同じことをしてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/2ca12aff-6724-0012-8034-c2fe382c8f01.png)
「コントロール」メニューの「ユーザーとロール」も確認しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/503dfb1d-5229-c301-56c4-0a7ba352ef28.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/cd0d2d67-71f5-9fb8-3a99-b10d00d6eb9b.png)

# OACインスタンスとドメインに関連付けを確認
少なくとも管理コンソールでは、作成したOACインスタンスがどのアイデンティティ・ドメインに関連付けられているかがわかりません。
そこで、Cloud Shellで次のコマンドを実行してみました。（一部割愛）
```
cloudshell:~ (ap-tokyo-1)$ oci analytics analytics-instance get --analytics-instance-id ocid1.analyticsinstance.oc1.ap-tokyo-1.aaaaaaaacxx2zsn74xvhqj6q7zxhgvjiawkjkw23jzn6rty5fscmy3sdk5wq
{
  "data": {
    "capacity": {
      "capacity-type": "OLPU_COUNT",
      "capacity-value": 1
    },
    "defined-tags": {
      "Oracle-Tags": {
        "CreatedBy": "secondary/hoge@example.com",
        "CreatedOn": "2022-06-23T01:10:39.609Z"
      }
```
作成したユーザがわかるので、そこから判断できそうです。
実際には、インスタンスのネーミングルールや説明への記載など工夫が必要と思われます。

# おわりに
アイデンティティ・ドメインが例えば本番用と開発用に分かれていた場合、それぞれに関連付けてOACインスタンスをデプロイすることで、ユーザやグループが相互に干渉しないようにすることができそうです。

# 参考情報
- [Oracle Analytics Cloud:OACのサービス作成時に、別のIdentity Domain、ユーザーをOAC管理ユーザーとして指定する](https://qiita.com/tni38/items/b17b54e5bc0db4a3add9)