
こんにちは、クラウド事業部の山路です。
今回は先日OCIの資格試験の受験に向けて勉強していた時に気になった、Identity domainがリージョナルサービスである理由について調べてみました。
なお、私が見た限り「Identity domainがリージョナルサービスである理由」が明言された公式ドキュメントなどは見つかりませんでした。そのため本記事では、OCIの公開しているドキュメントやブログを見たうえで「推測」した理由を記載する形にしています。あらかじめご了承ください。
前提: OCI Identity domainとは
OCI Identity domainはOCIのIDaaS (Identity as a Service) です。ユーザーやロール、SSO/MFAといった機能を管理するためのコンテナとして機能します。Identity domainの詳細な機能は、公式ドキュメントや以下の資料などをご確認ください。
なおOCIはもともとOracle Identity Cloud Service (IDCS) というサービスを提供していましたが、2021年にIDCSとOCI IAMを統合し、この時にIdentity domainが発表されました。
※IDCSの機能概要やIDCSとIAMの機能差分などはこちらのドキュメントなどをご確認ください。
Identity domainがリージョナルサービスである理由
本記事のタイトルや冒頭でも少し触れていますが、Identity domainはリージョナルサービス、つまりリージョン単位で利用できるサービスです。具体的な事項について少し補足します。
OCIのアカウントを作成した直後は、DefaultというIdentity domainがルートコンパートメント上に作成されます。このIdentity domainは、テナンシーのホームリージョンに最初に作成された後、サブスクライブしたすべてのリージョンに自動的にレプリケートされるという特徴があります。このIdentity domainにはAdministratorユーザー、Administrators / All Domain Usersというグループが含まれています。
なおコンパートメントは、OCIのリソースを論理的に整理・分離するための管理単位であり、OCIを扱う上で必須のリソースです。弊社ブログでも取り上げているので、良ければこちらもご覧ください。
さて、Default Identity domainにはいくつか特徴があります。そのうちの一つに、サブスクライブしたすべてのリージョンでレプリケートされる、というものがあります。
Identity domainはリージョナルサービスであり、各リージョンのリソースを操作するにはIdentity domainがなければ操作できません。そのためDefault Identity domainは自動的に他のリージョンにレプリケートされるという仕様になっています。
一方でDefault以外のIdentity domainは、明示的にレプリケーションを有効にしなければ、ホームリージョンでのみ作成されます。この時にホームリージョンから別リージョンのリソースを操作するには、まずDomainのレプリケーションを有効にし、他リージョンにも同様のIdentity domainを用意する必要があります。
AWSやAzureといったクラウドプロバイダーでは、AWS IAM / Microsoft Entra IDといったサービスがIDaaSに相当します。これらのサービスは「グローバルサービス」であり、通常ではリージョンを気にせず利用するサービスです。クラウドプロバイダーのIDaaSがリージョナルサービスである例は(少なくとも私は)OCI以外に把握しておらず、非常に特徴的なサービスであるといえそうです。
データ保護の観点
なぜIdentity domainがリージョナルサービスであるかを調べてみたところ、いくつかの理由が考えられました。一つ目は「データ保護の観点からリージョン単位に制限した」です。
こちらのOCIブログでは、Identity domainのレプリケーションによるデータ保管場所の制御を紹介しています。
Oracle Cloud Security - Implementing Data Residency Requirements with OCI IAM Identity Domains
こちらのブログには以下のような記載があります。要するに、Default以外のIdentity domain(セカンダリドメイン)は、ユーザーが明示的にレプリケーションを有効にしない限り、そのホームリージョンにのみ存在するため、GDPRなどの規則に従ってデータの配置場所を厳密に制御する必要がある場合に、その要件を比較的容易にクリアできるということです。
※以下、原文を日本語に翻訳した文章を掲載します。
セカンダリドメインのレプリケーションは、技術的にはデフォルトドメインと同じですが、1つの大きな違いがあります。セカンダリドメインのレプリケーションは、デフォルトドメインのように暗黙的に行われるものではありません。セカンダリドメインは、テナンシーのサブスクライブ済みリージョンのいずれかに明示的にレプリケートする必要があります。
例えば、データを欧州連合(EU)の境界内に留めるというデータレジデンシー要件を実装したいとします。先ほどのデフォルトドメインの例では、テナンシー作成時にホームリージョンとして米国東部(アッシュバーン)を選択しました。そのため、デフォルトドメインはすべてのサブスクライブリージョンに複製されるため、使用できません。しかし、別のテナンシーを作成してヨーロッパのホームリージョンを選択する必要もありません。EUをホームリージョンとするセカンダリドメインを作成し、そのドメインを使用してデータレジデンシー要件を実装すれば良いのです。
これを他のクラウドで実施しようとすると、そもそもグローバルサービスであるIDaaSでどうこうすることができないため「物理的に隔離した環境」を提供するサービスを使わなければなりません。
高可用性・耐久性の提供
二つ目の理由として「高可用性・耐久性を提供できる」が考えられます。
こちらのOCIブログはIdentity domain登場時の紹介記事ですが、そこでは以下のような記載があります。
Oracle Cloud Security - Introducing OCI IAM Identity Domains
※以下、原文を日本語に翻訳した文章を掲載します。
(Identity domainは) ローカルデータレジデンシー要件のサポート、各リージョンに構築された高可用性、リージョン間ディザスタリカバリを提供し、高い拡張性とパフォーマンス要件を満たします。
OCIのFAQページにはIdentity domainの可用性について言及されています。本サービスは各リージョンごとに冗長構成で導入されており、またリージョン間でのDRも提供されています。これによりリージョン規模の障害が発生してもデータ復旧が可能となります。また、リージョナルサービスであるため、あるリージョンAのIdentity domainでリージョン規模の障害が発生しても、他のリージョンにあるIdentity domainが影響を受けない場合も考えられます。
その他
ドキュメントベースでの確認が取れなかったのですが、上記以外にもいくつかの可能性が挙げられそうです。
- ユーザーにより近いリージョンのリソースを利用することで、低レイテンシーでの認証を実現できる可能性がある
- もともとIDCSがリージョナルサービスであったため、それを引き継いでリージョナルサービスとなったのではないか
Identity domainがリージョナルサービスであることについて、皆さんのご意見や他の考察があれば教えていただけるとうれしいです。
さいごに
私達クラウド事業部はクラウド技術を活用したSI/SESのご支援をしております。
また、一緒に働いていただける仲間も募集中です! 今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。