Oracle Cloud Infrastructure(以下、OCI)固有のIdentity and Access Management(以下、IAM)管理概念にアイデンティティ・ドメインと呼ばれる機能があります。アイデンティティ・ドメインではOCI上で利用するユーザーやグループの管理、ログインにおける接続元IP制限やMFA認証の適用、SSOのセットアップ等が可能です。
2021年11月より利用可能になったこの機能は、利用可能前まで有償利用でのみ提供されていた認証機能について無償利用可能になっている、ユーザーID管理が一元化されている、管理階層を柔軟に設定できる等、旧来サービスに比べ利便性が大幅に向上しています。
本記事ではアイデンティティ・ドメインの特徴、作成方法について解説します。
アイデンティティ・ドメインとは
アイデンティティ・ドメインとは、Oracle Cloud Infrastructureで2021年11月よりリリースされた統合Identity and Access Management 機能です。
2023年3月現在、新規OCIテナントがアクティベートされると、アイデンティティ・ドメインによるIAM管理が利用できるようになっています。OCI上に作成されたクラウドリソースにアクセスできるユーザーの作成、権限管理、認証制御等を一元管理できる他、アイデンティティ・ドメインそのものはコンパートメントに作成されるクラウドリソースであるため管理層と管理者を分けることもできます。
本記事ではアイデンティティ・ドメインのメリット、新規作成手順、ユースケースについて解説します。
アイデンティティ・ドメインを作成するメリット
MFA認証が無償
2021年11月以前はIDCSとOCI IAMと呼ばれる機能でOCIテナント内のIAM管理機能が実装されており、IDCSではMFA認証の実装は有償提供でした。アイデンティティ・ドメインでは無償化されており、かつ以下7種のMFA認証を無償で利用することができます。
- Oracle Mobile Authenticator(専用モバイルアプリ)で発行されるパスコード認証
- Oracle Mobile Authenticatorによるログイン許可通知発行(許可を押下すると認証完了)
- 電子メール(パスコードを登録されたメールアドレスに発行)
- セキュリティ質問(設定した数だけ質問に答え、正解すると認証完了)
- Duoアプリケーション(Cisco Duoを用いた認証)
※Duo自体は有償サービス、OCIで利用すること自体が無償 - Fast ID Online (FIDO)(生体認識認証)
※生体認識認証する仕組み、デバイスは別途用意が必要 - バイパス・コード(OCI側でコードを生成。有効期限、回数を満たすまで利用可能)
テキスト・メッセージ(SMS)または電話を介した認証のみ、Oracle Appsプランないし有償プランを契約する必要があります。無償/有償プランと種類、その違いについては後ほど解説します。
アイデンティティ・ドメインであれば二段階認証でアプリによるパスコード発行、メールアドレスを利用する等の仕組みがすぐに実装できます。
SSO認証実装が無償
IDCSでは有償であったSSO認証について、アイデンティティ・ドメインでは無償で利用可能です。
また公式でAzure ADとの連携についてのチュートリアルも用意されていますので、既存のAzure ADにサインオンしたらOCIにもサインオンしたい場合はすぐに実装することができます。
適切な料金プランを選んで実装できる
無償プランが利用できるのはもちろん、Oracle SaaS認証連携、Oracle以外のサードパーティに対するSSO、ソーシャルログイン連携等、利用したい機能に応じた課金タイプから選択できます。
選択可能なタイプと特徴は以下の通りです。
タイプ | Free | Apps | Apps Premium | Premium | External User |
価格 | 無償 | 無償※1 | 有償 | 有償 | 有償 |
MFA | SMS以外利用可 | すべて利用可 | すべて利用可 | すべて利用可 | すべて利用可 |
SSO | 外部に2つまで | 外部に2つまで | 外部に6つまで | 無制限設定可 | 無制限設定可 |
最大ユーザー数 | 2,000 | 500,000 | 500,000 | 500,000 | 1,000,000 |
最大グループ数 | 50 | 8,000 | 50,000 | 50,000 | 50,000 |
※1 Oracle SaaSへの認証を前提としたバンドル版であり、単体での入手設定は不可
有償プラン利用にあたって、最新の価格情報は以下ページにてご確認ください。
関連内容はこちら
コンパートメント単位で作成可能
アイデンティティ・ドメインはテナントサービスではなく、コンパートメントに作成される一種のリソースの形態です。認証機能でありながらコンパートメント内のリソースとして作成することができます。
アイデンティティ・ドメインはデフォルトでルートコンパートメントに1つDefaultアイデンティティ・ドメインが作成されています。テナントをアクティベートさせた際の初期ユーザーはDefaultアイデンティティ・ドメインに作成されています。新規アイデンティティ・ドメインをルートコンパートメント以下のコンパートメントに作成すると、ユーザー管理をコンパートメント単位で分割できるようになります。例えば、本番・開発環境ごとで分けたコンパートメント、サンドボックス環境としてのコンパートメント等の用途で管理されていて管理者を別途立てたい場合は、以下のようにアイデンティティ・ドメインを作成することで、アイデンティティ・ドメイン内の管理者が、アイデンティティ・ドメインの存在するコンパートメントを管理できるようになります。
運用に応じて適切な階層にアイデンティティ・ドメインを作成することで、テナント管理者1人ですべてユーザーを管理する必要がなくなり、それぞれのアイデンティティ・ドメインでユーザーを管理する運用が可能です。
コンパートメントについて、弊社の以下ブログで解説しています。よろしければご覧ください。
関連記事はこちら
アイデンティティ・ドメインの作成および初期設定手順
新規アイデンティティ・ドメイン作成
次に新規アイデンティティ・ドメインを作成する手順を説明します。
- OCIコンソール画面からドメイン管理画面に遷移
アイデンティティとセキュリティ>アイデンティティ欄にある「ドメイン」を押下します。
作成対象のコンパートメントを選択し、「ドメインの作成」を押下します。 - 必要事項を入力し、「ドメインの作成」を押下
記入内容は以下の通りです。
表示名:(必須)ドメインの名称を指定します。
説明:(必須)ドメインの説明を記載します。
ドメイン・タイプ:(必須)選択可能なタイプを指定。Free以外は従量課金の対象です。
ドメイン管理者:作成する場合はチェックボックスを入れ、情報を記入します。
コンパートメント:(必須)ドメインを作成するコンパートメントを指定します。
タグ:フリーフォームタグの定義ができます。 - (作成した場合)管理者ユーザーで新規アイデンティティ・ドメインにログイン
管理者ユーザーを作成した場合、指定したメールアドレスにアクティベート(アカウント有効化)案内メールが届きます。
パスワードリセットし、ログインします。
ログイン成功時、プロフィール詳細設定画面に遷移されます。
画面右上のメニューを開き、「OCI Console」を押下します(以後のログイン時はOCIコンソール画面に直接遷移できます)。
OCIコンソール画面右上のメニューで、ログイン中のアイデンティティ・ドメインを確認します。
ちなみに、新規アイデンティティ・ドメイン作成時に同時作成した管理者ユーザーはDomain_Administratorグループに所属されます。
新規アイデンティティ・ドメイン管理ユーザー作成
アイデンティティ・ドメインは作成できましたが、作成時に指定した管理者ユーザーが所属しているDomain_Administratorグループは何もポリシーが適用されていない状態になっています。これはOCIの権限はデフォルトでは何もない状態であるためです。
したがって、このままでは新規アイデンティティ・ドメインにログインできても何も作業できないということになります。下の画像を見ていただくとわかる通り、ユーザーに作業権限が一切ないため、自己に対してポリシーを割り当てることも不可となっています。
管理者ユーザーに権限を付与するためには、コンパートメントの権限継承の仕様に基づき、上位コンパートメントに存在するポリシー作成権限を持つユーザーでポリシーを作成する必要があります。以下で、新規アイデンティティ・ドメインが存在するコンパートメント内全体に対する全リソース管理権限を付与する場合の手順を説明します。
- 作成したアイデンティティ・ドメインより1つ上のコンパートメントを管理できるアイデンティティ・ドメインに対してログイン
極論を言えば、新規アイデンティティ・ドメインを作成したコンパートメントに対するポリシー作成権限があれば問題がないのですが、万が一でも不要な権限が他コンパートメントに継承されないように、コンパートメントの親子関係で見たとき1つ上にあるアイデンティティ・ドメインにログインしましょう。今回はルートコンパートメントが1つ上の親にあたるため、Defaultアイデンティティ・ドメインを選択してログインします。 - 新規アイデンティティ・ドメイン管理者ユーザー所属グループに対するポリシーを作成
アイデンティティ>ポリシー画面に遷移し、作業コンパートメントを新規アイデンティティ・ドメインが存在しているコンパートメントに切り替えます。「ポリシーの作成」を押下します。
ポリシーを作成します。名前、説明は任意で問題ありませんが、ポリシーは手動エディタにて以下構文でポリシー文を指定するようにします。
Allow group '【アイデンティティ・ドメイン名】'/'Domain_Administrators' to manage all-resources in compartment 【アイデンティティ・ドメインが存在するコンパートメント】
(例)comp_1コンパートメントに作成したdomain_1の管理者グループに全リソース管理権限を付与
Allow group 'domain_1'/'Domain_Administrators' to manage all-resources in compartment comp_1
このポリシー作成時、in tenancy(テナント全体を対象)のような過剰な権限付与を使用とすると以下のエラーが発生し、作成できないようになっています。
Compartment {【テナントのOCID】 } does not exist or is not part of the policy compartment subtree
設定できたら、「作成ボタン」を押下します。 - 新規アイデンティティ・ドメインに管理者ユーザーでログインし、権限を確認
再度、新規アイデンティティ・ドメインにログインします。作成されたポリシーを新規アイデンティティ・ドメイン管理者ユーザー自身も確認できるようになります。
権限範囲はcomp_1コンパートメント以下のため、上位コンパートメントであるルートコンパートメント等には権限がないことも併せて確認します。
新規アイデンティティ・ドメインがあるコンパートメントより子のコンパートメントを作成、子のコンパートメントに新規アイデンティティ・ドメインを作成する際も、上記手順で管理者権限付与が必要になります。
アイデンティティ・ドメインのユースケース
管理コンパートメントごとに作成
コンパートメントを使うことで、例えば開発している業務システム単位で論理集合を切り出すことができます。さらにリソースや権限の整理を行いたい際に子のコンパートメントを作成するとアイデンティティ・ドメインが役に立ちます。
たとえばA,B,Cシステム用のコンパートメントには、開発や検証のための子コンパートメントがいくつもあるとします。A,B,Cすべてで利用されているユーザーの権限、認証の管理をテナント管理者が対応するのはとても困難です。そこでA,B,Cシステム用のコンパートメントにアイデンティティ・ドメインを作成することで、新規アイデンティティ・ドメインの管理者に各システムに関わるユーザーの権限、認証の管理を任せることができます。
子コンパートメントにアイデンティティ・ドメインをさらに作成することで、管理をさらに分割することもできます。テナント管理者はユーザー運用業務に追われることなく、コストの分析や必要な業務に注力することができるようになります。
SSO認証と単純利用ユーザーの使い分け
アイデンティティ・ドメインでは無償プランでSSOを設定することができます。しかし、一時的な検証、テスト、閲覧のために、OCIのみで操作できれば良いユーザー等が出てくることもあります。SSO認証までは不要で、通常のID-PASS認証のみで対応したいケースに対応するために、アイデンティティ・ドメインを分けて作成することで使い分け、権限管理の分割が可能です。
おわりに
アイデンティティ・ドメインを利用することで、コンパートメントという枠組みでOCIユーザー管理等を一元管理し、管理範囲の分割をすることができます。OCIを利用していく中でセキュリティや認証、ユーザー、権限の管理等で課題がある場合は、新規のアイデンティティ・ドメインを作成してみてはいかがでしょうか。システムエグゼには、OCIの豊富な実績があり、多くのOCI技術者が在籍しています。OCIへの移行をご検討されている方は、お気軽にシステムエグゼまでお問い合わせください。
- カテゴリ:
- エンジニアリング