自律型AIデータベースでのSaaSに対する緊急アクセス

Autonomous AI Databaseは、SaaSプロバイダーへの緊急アクセスをサポートします。緊急アクセスにより、SaaS運用チームは、SaaSのお客様から明示的に認可された場合、お客様のデータベースにアクセスしてクリティカルな業務または緊急業務を実行できます。

自律型AIデータベースへの緊急アクセスについて

Autonomous AI Databaseへの緊急アクセスでは、SaaSプロバイダーがサポートされます。このプロバイダーは、SaaS組織が、顧客から明示的に認可された場合に、SaaS運用チームのメンバーが顧客のデータベースにアクセスできるようにする手順を定義しています。

Example.comを使用したBreak Glassのサンプル・ユース・ケース

自社の製品にAutonomous AI Databaseを使用しているexample.comという名前のSaaSプロバイダについて考えてみます。通常の運用では、SaaSプロバイダーexample.comは、SaaS顧客ごとにAutonomous AI Databaseインスタンスを作成します。このモデルでは、SaaSの顧客(たとえば、Scottという名前の顧客)は、example.com製品のエンド・ユーザー(およびAutonomous AI Databaseインスタンスにデータが格納されているSaaS顧客)です。プロバイダexample.comは、ScottのすべてのデータをAutonomous AI Databaseインスタンスで作成および格納し、顧客のScottはデータベースに直接アクセスできません。

このSaaSモデルの概要は次のとおりです。

  • Autonomous AI Databaseインスタンスを作成するOracleのお客様は、SaaS組織(example.com)です。

  • SaaSプロバイダはexample.comです。

  • SaaSの顧客はScottです。

アプリケーションのパフォーマンスに関して何か問題が発生した場合、またはSaaS運用チームによるトラブルシューティングが必要な他の重要な問題がある場合、顧客Scottは、運用チームがトラブルシューティングのためにScottのデータベースにアクセスできるように、アクセス権を付与できます。SaaS運用チームは、SaaSで定義された承認プロセス(つまり、example.comが顧客であるScottから権限を受け取った後)を通じて、ScottのAutonomous AI Databaseインスタンスへの直接アクセスを確立することのみが承認されています。

Break GlassとAutonomous AI DatabaseのSAAS_ADMINユーザー

SaaSが顧客のAutonomous AI DatabaseインスタンスでBreak Glass APIを呼び出すと、SAAS_ADMINユーザーが有効になります。その後、SaaS運用チームは、指定されたロール・セットを持つSAAS_ADMINユーザーを使用して、限られた期間、インスタンスにアクセスできます。

デフォルトでは、SAAS_ADMINユーザーはロックされています。SaaS組織で定義された承認プロセスを使用して、SAAS_ADMINユーザーを有効にして、Autonomous AI Databaseインスタンスへのアクセスを許可できます。ブレークガラスの名前は、ユーザーがアラームをアクティブにする前に小さなガラス窓のペインを壊す必要がある手動火災警報から来ています(誤ってアラームがトリガーされないようにするには、ガラスを壊す必要があります)。同様に、SAAS_ADMINユーザーは通常、データベースにアクセスせず、アクセスには事前定義済の承認プロセスが必要です。

付与されるアクセスのタイプに応じて、SAAS_ADMINユーザーはデータベースにアクセスして、問題を調査したり、緊急イベントまたはその他の異常なイベントに関連する変更を加えることができます。緊急アクセスの期限が切れた場合、またはアクセスが明示的に無効になっている場合、SAAS_ADMINアカウントのパスワード/シークレットは即時にローテーションされ、SAAS_ADMINユーザー・アクセスは取り消されます。SAAS_ADMINユーザーが実行するすべてのアクションが監査されます。

SAAS_ADMINユーザーは、次の3つのアクセス・タイプのいずれかで有効化されます。

  • read-only: インスタンスへの読取り専用アクセスを提供します。これはデフォルトのアクセス・タイプであり、デフォルトのロール(CREATE SESSIONSELECT ANY TABLESELECT ANY DICTIONARYSELECT_CATALOG_ROLE)が含まれます。

  • read/write: インスタンスへの読取り/書込みアクセスを提供します。このタイプのデフォルト・ロールは、CREATE SESSIONSELECT ANY TABLESELECT ANY DICTIONARYSELECT_CATALOG_ROLEINSERT ANY TABLEおよびUPDATE ANY TABLEです。

  • admin: インスタンスへの管理者アクセスを提供します。このタイプのデフォルト・ロールは、CREATE SESSIONおよびPDB_DBAです。

Break Glass API

SAAS_ADMINユーザーは、コマンドライン・インタフェース(CLI)またはAutonomous AI Database REST APIを使用してのみ有効化および無効化されます。

REST APIの使用とリクエストの署名の詳細は、REST APIおよびセキュリティ資格証明に関する項を参照してください。

SDKについては、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。

Break Glass操作には、次のAPIを使用します。

  • SAAS_ADMINを有効または無効にするには、configureSaasAdminUserを使用します。

  • SAAS_ADMINユーザーが有効になっているかどうかを確認するには、getSaasAdminUserStatusを使用します。

緊急アクセスの有効化

SAAS_ADMINを使用してデータベースにアクセスする認可が組織で定義されたプロシージャによって承認された後、Autonomous AI Database CLIまたはAPIを使用してSAAS_ADMINユーザーを有効にします。

SAAS_ADMINユーザーを有効にするには、Autonomous AI Databaseの管理権限が必要です。

SAAS_ADMINユーザーがデータベースにアクセスできるようにする前に、必要なパラメータの値を取得する必要があります。

パラメータ 摘要
isEnabled ブール値を指定する。有効にするにはTRUEを使用します。
password

SAAS_ADMINユーザーのパスワードを示します。secretIdを指定した場合、passwordは指定できません。

パラメータとして指定するパスワードは、Autonomous AI Databaseのパスワード要件に準拠している必要があります。詳細は、「Autonomous AI Databaseのユーザー・パスワードについて」を参照してください。

secretId

シークレットのOracle Cloud Infrastructure VaultシークレットOCIDの値を指定します。passwordを指定した場合、secretIdは指定できません。詳細は、「Vaultの概要」を参照してください。

Oracle Cloud Infrastructure Vaultでシークレットとして指定するパスワードは、Autonomous AI Databaseのパスワード要件に準拠している必要があります。詳細は、「Autonomous AI Databaseのユーザー・パスワードについて」を参照してください。

secretVersionNumber secretIdで指定されたシークレットのバージョン番号を指定します。このパラメータはオプション。デフォルトでは、最新のシークレット・バージョンが使用されます。このパラメータは、secretIdも指定されている場合にのみ適用されます。
accessType read-onlyread/writeまたはadminのいずれか。デフォルトはread-onlyです。
duration 1時間から24時間の範囲で期間を時間単位で指定します。デフォルトは1時間です。

Autonomous AI DatabaseインスタンスでSAAS_ADMINユーザーを有効にするには、管理者が記述したOCI Identity and Access Managementポリシー・ステートメントを使用して、必要なアクセスを定義する必要があります。

次のポリシーが必要です:

Allow group Group_Name to manage autonomous-databases in compartment Compartment_Name

詳細は、Autonomous AI DatabaseのIAMポリシーおよびポリシーの開始を参照してください。

パスワードによる緊急アクセスの有効化

Autonomous AI Database CLIまたはAPIを使用して、パスワードでSAAS_ADMINを有効にします。

  1. APIまたはCLIを使用し、パスワードの値を指定して、passwordSAAS_ADMINを有効にします。

    たとえば:

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/configureSaasAdminUser
    
    {  "isEnabled": true,
       "password": password,
       "accessType": "READ_ONLY",
       "duration": 17
    }

    詳細は、「configureSaasAdminUser」を参照してください。

  2. SAAS_ADMINユーザーが有効になっていることを確認します。

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/getSaasAdminUserStatus
    
    {    "isEnabled": true,
         "accessType": "READ_ONLY",
         "timeSaasAdminUserEnabled": "2023-11-23T01:59:07.032Z"
    }

    このレスポンスは、SAAS_ADMINユーザーが有効で、アクセス・タイプがREAD_ONLYであることを示しています。タイムスタンプは、SAAS_ADMINが有効化された時刻(時刻はUTC)を示します。

    詳細は、「getSaasAdminUserStatus」を参照してください。

Vaultシークレットを使用した緊急アクセスの有効化

シークレットがOracle Cloud Infrastructure Vaultに格納されている場合、Autonomous AI Database CLIまたはAPIを使用して、secretIdSAAS_ADMINを有効にします。

secretIdを指定する場合、Autonomous AI DatabaseがOracle Cloud Infrastructure Vaultのシークレットに到達するには、次の条件が適用される必要があります:

  • シークレットは、currentまたはprevious状態である必要があります。

  • 特定のコンパートメント内の特定のシークレットへのREADアクセスを許可する適切なユーザー・グループ・ポリシーが必要です。次に例を示します。

    Allow userGroup1 to read secret-bundles in compartment training

Oracle Cloud Infrastructure Vaultに格納されたシークレットでsecretIdを使用してSAAS_ADMINを有効にするには:

  1. APIまたはCLIを使用して、secretIdのOCID値を指定します。

    たとえば:

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/configureSaasAdminUser
    
    {  "isEnabled": true,
       "secretId": "ocid1.key.co1.ap-mumbai-1.example..aaaaaaaauq5ok5nq3bf2vwetkpqsoa",
       "accessType": "READ_ONLY",
       "duration": 20
    }

    シークレット・バージョンの指定はオプションです。secretVersionNumberを使用してAPIコールでシークレット・バージョンを指定すると、指定したシークレット・バージョンが使用されます。シークレット・バージョンを指定しない場合、コールは最新のシークレット・バージョンを使用します。

    詳細は、「configureSaasAdminUser」を参照してください。

  2. SAAS_ADMINユーザーが有効になっていることを確認します。

    たとえば:

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/getSaasAdminUserStatus
    
    {    "isEnabled": true,
         "accessType": "READ_ONLY",
         "timeSaasAdminUserEnabled": "2023-11-23T01:59:07.032Z"
    }

    このレスポンスは、SAAS_ADMINユーザーが有効で、アクセス・タイプがREAD_ONLYであることを示しています。タイムスタンプは、ユーザーが有効になった時刻(時刻はUTC)を示します。

    詳細は、「getSaasAdminUserStatus」を参照してください。

緊急アクセスの無効化

Autonomous AI Database CLIまたはAPIを使用して、SAAS_ADMINユーザー・アクセスを無効にします。

デフォルトでは、SAAS_ADMINが有効なときにdurationパラメータが設定されていない場合、アクセスは1時間後に期限切れになります。SAAS_ADMINが有効なときにdurationパラメータが設定されている場合、アクセスは指定されたduration時間後に期限切れになります。デフォルトの有効期限または指定した期間に基づいてアクセスを期限切れにするかわりに、configureSaasAdminUserを使用してSAAS_ADMINユーザー・アクセスを明示的に無効にできます。

Autonomous AI DatabaseインスタンスでSAAS_ADMINユーザーを無効にするには、管理者が記述したOCI Identity and Access Managementポリシー・ステートメントを使用して、必要なアクセスを定義する必要があります。

次のポリシーが必要です:

Allow group Group_Name to manage autonomous-databases in compartment Compartment_Name

詳細は、Autonomous AI DatabaseのIAMポリシーおよびポリシーの開始を参照してください。

  1. SAAS_ADMINユーザー・アクセスを無効にします。

    たとえば:

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/configureSaasAdminUser
    {
      "isEnabled": false
    }

    詳細は、configureSaasAdminUser APIを参照してください。

  2. SAAS_ADMINユーザーが無効になっていることを確認します。

    たとえば:

    POST https://dbaas-api.svc.ad3.us-phoenix-1/20160918/autonomousDatabases/ocid1.autonomousdatabase.oc1.phx.uniqueId/actions/getSaasAdminUserStatus
    
    {    "isEnabled": false
    }

    このレスポンスは、SAAS_ADMINユーザーが無効になっていることを示します。

    詳細は、「getSaasAdminUserStatus」を参照してください。

SAAS_ADMINユーザーを無効にすると、データベースへのアクセスが取り消され、Autonomous AI Databaseによって、データベースへのアクセスに使用されたパスワードまたはシークレットがローテーションされます。

緊急アクセスに関するノート

緊急アクセス用のノートを提供します。

ブレーク・ガラス・アクセスのノート:

  • SAAS_ADMINを有効にしたときに指定したdurationは、指定した時間が経過するまで、またはSAAS_ADMINユーザーを明示的に無効にするまで適用されます。この値は、SAAS_ADMINユーザーを有効にした後は変更できません。

  • Always Free Autonomous AI Databaseでは、SAAS_ADMINユーザーによるアクセスはサポートされていません。

  • DBA_CLOUD_CONFIGビューは、SAAS_ADMINユーザーに関する情報を提供します。

    たとえば、次の問合せを使用して、SAAS_ADMINユーザーのステータスに関する情報を取得します。

    SELECT PARAM_VALUE FROM DBA_CLOUD_CONFIG WHERE
                 param_name ='saas_admin_access' order by 1;

    auth_revokerの値が存在すると、アクセスが取り消され、アクセス権を取り消したユーザーが表示されます。

    auth_endは、planned時間を示します。認可が取り消された後、SAAS_ADMINユーザーが有効化されたときに指定したdurationの終了時に認可が失効した場合、planned時間はactual時間と同じになります。plannedactual時間が異なる場合は、durationが期限切れになる前にSAAS_ADMIN認可が取り消されたことを意味します。

    たとえば、SAAS_ADMINが2時間の期間で有効になっており、1時間後にAPI configureSaasAdminUserをコールしてSAAS_ADMINユーザーを無効にすることでアクセスが無効になった場合、auth_endplannedおよびactualの時間は異なります。

    この問合せに行が表示されない場合、SAAS_ADMINユーザーは存在しません。作成されて削除されたか、作成されなかった可能性があります。