Autonomous AI DatabaseでのIdentity and Access Management (IAM)認証の使用

Oracle Cloud Infrastructure Identity and Access Management (IAM)の認証および認可を使用するようにAutonomous AI Databaseを構成し、IAMユーザーがIAM資格証明でAutonomous AI Databaseにアクセスできるようにします。

ノート: Oracle Cloud Infrastructure (OCI) IAMとAutonomous AI Databaseの統合は、アイデンティティ・ドメインを持つ商業テナンシおよびアイデンティティ・ドメインを含まないレガシーOracle Cloud Infrastructure IAMでサポートされています。アイデンティティ・ドメインを含むOracle Cloud Infrastructure IAMは、2021年11月8日より後に作成された新しいOCIテナンシで導入されました。Autonomous AI Databaseでは、デフォルトおよびデフォルト以外のアイデンティティ・ドメインのユーザーおよびグループがサポートされます。

Autonomous AI Databaseに対するIdentity and Access Management (IAM)認証について

Oracle Cloud Infrastructure IAMとAutonomous AI Databaseの統合では、データベース・パスワード認証とトークンベース認証の両方がサポートされます。Autonomous AI DatabaseでIAMユーザーを使用するためのアーキテクチャの詳細は、Oracle Autonomous AIデータベースのIAMユーザーの認証および認可を参照してください。

IAMデータベース・パスワード認証

ノート:サポートされている12c以上のデータベース・クライアントは、Autonomous AI DatabaseへのIAMデータベースのパスワード・アクセスに使用できます。

Oracle Cloud Infrastructure IAMデータベース・パスワードを使用すると、Oracle Databaseユーザーが通常ユーザー名とパスワードでログインするように、IAMユーザーがAutonomous AI Databaseインスタンスにログインすることができます。ユーザーは、IAMユーザー名およびIAMデータベース・パスワードを入力します。IAMデータベースのパスワードは、Oracle Cloud Infrastructureコンソールのパスワードとは異なります。パスワード・ベリファイアを使用してIAMユーザーを使用すると、サポートされているどのデータベース・クライアントでもAutonomous AI Databaseにログインできます。

Identity and Access Management (IAM) SSOトークン・ベース認証

データベース・クライアントがIAMデータベース・トークンを取得するには、いくつかの方法があります:

ユーザーがログインするためにユーザー名/パスワードを入力した場合、データベース・ドライバは、クライアントのデータベース・トークン設定に関係なく、パスワード・ベリファイアの方法を使用してデータベースにアクセスします。

Autonomous AI DatabaseでのIdentity and Access Management (IAM)認証の前提条件

Autonomous AI DatabaseでIdentity and Access Management (IAM)認証を使用する前に、次のことを確認する必要があります:

Autonomous AI Databaseでの外部アイデンティティ・プロバイダの変更

外部アイデンティティ・プロバイダを(IAM)認証および認可から別の外部認証プロバイダに、またはその逆に変更するステップについて説明します。

ユーザーのOracle Cloud Infrastructure (IAM)認証および認可は、デフォルトで、新しくプロビジョニングされたAutonomous AI DatabaseおよびAutonomous Container Databaseに対して有効になります。Autonomous AI Databaseに対して有効にできる、Active Directoryを使用した集中管理ユーザー(CMU-AD)、Azure AD、Kerberosなど、その他の外部認証スキームがあります。ただし、ある時点において有効化できる外部認証スキームは、1つのみです。

データベース・ユーザーが別の外部認証スキームを使用してAutonomous AI Databaseに接続できるようにするには:

  1. DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATIONプロシージャを使用して、IAM統合を無効にします。

    たとえば:

     BEGIN
       DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
     END;
     /
    

    詳細は、DISABLE_EXTERNAL_AUTHENTICATIONプロシージャを参照してください。

  2. 次のページで概説するステップに従って、選択した別の外部認証スキームを構成します。

  3. IAMユーザーがOracle Cloud Infrastructure (IAM)認証および認可を使用してAutonomous AI Databaseに接続できるように戻すには:

    ADMINユーザーとして、次に示すパラメータを使用してDBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATIONプロシージャを実行します。

     BEGIN
       DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
    
         type => 'OCI_IAM'
         force => TRUE
         );
     END;
     /
    

    前述の例では、現在有効化されている外部認証プロバイダを無効化し、Oracle Cloud Infrastructure (IAM)の認証および認可を有効にします。

    この例では:

    • 現在有効な外部認証を無効にするには、forceTRUEに設定します。

    • type'OCI_IAM'に設定して、Oracle Cloud Infrastructure (IAM)の認証と認可を有効にして使用します。

    ノート:デフォルトでは、forceパラメータはFALSEです。別の外部認証メソッドが有効で、forceFALSEの場合、DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATIONは次のエラーを報告します: ORA-20004: Another external authentication is already enabled.

    詳細は、ENABLE_EXTERNAL_AUTHENTICATIONプロシージャを参照してください。

  4. 次に示すように、IDENTITY_PROVIDER_TYPEシステム・パラメータの値を確認します:

     SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
     NAME                   VALUE
    
     ---------------------- -------
     identity_provider_type OCI_IAM
    

IAMユーザーのIdentity and Access Management (IAM)グループおよびポリシーの作成

IAMグループのポリシー・ステートメントを記述して、IAMユーザーがOracle Cloud Infrastructureリソース(特にAutonomous AI Databaseインスタンス)にアクセスできるようにするステップについて説明します。

ポリシーは、特定のリソースにアクセスできるユーザーとその方法を指定するステートメントのグループです。アクセスは、テナンシ全体、コンパートメント内のデータベースまたは個々のデータベースに対して付与できます。つまり、特定のコンパートメント内の特定のタイプのリソースへの特定のアクセス・タイプを特定のグループに付与するポリシー・ステートメントを記述します。

ノート: IAMトークンを使用してAutonomous AI Databaseにアクセスするには、ポリシーの定義が必要です。IAMデータベース・パスワードを使用してAutonomous AI Databaseにアクセスする場合、ポリシーは不要です。

Autonomous AI DatabaseでIAMユーザーがIAMトークンを使用してデータベースに接続できるようにするには:

  1. グループを作成し、そのグループにユーザーを追加して、Oracle Cloud Infrastructure Identity and Access Managementの前提条件を実行します。

    たとえば、グループsales_dbusersを作成します。

    詳細は、グループの管理を参照してください。

  2. Oracle Cloud Infrastructureリソースへのアクセスを有効にするポリシー・ステートメントを記述します。

    1. Oracle Cloud Infrastructureコンソールで、「アイデンティティ」と「セキュリティ」をクリックします。

    2. 「アイデンティティとセキュリティ」で、「ポリシー」をクリックします。

    3. 書込みポリシーには、「ポリシーの作成」をクリックします。

    4. 「ポリシーの作成」ページで、「名前」および「説明」を入力します。

    5. ポリシーの作成ページで、「手動エディタの表示」を選択します。

       [Description of the illustration adb_iam_create_policy_manual.png](img_text/adb_iam_create_policy_manual.html)
      
    6. ポリシー・ビルダーを使用してポリシーを作成します。

      たとえば、IAMグループDBUsers内のユーザーがテナンシ内のAutonomous AI Databaseにアクセスできるようにするポリシーを作成するには:

       Allow group DBUsers to use autonomous-database-family in tenancy
      

      たとえば、DBUsersグループのメンバーがコンパートメントtesting_compartment内のAutonomous AIデータベースにのみアクセスするように制限するポリシーを作成するには:

       allow group DBUsers to use autonomous-database-family in compartment testing_compartment
      

      たとえば、グループのアクセスをコンパートメント内の単一データベースに制限するポリシーを作成するには:

       allow group DBUsers to use autonomous-database-family in compartment testing_compartment where target.database.id = 'ocid1.autonomousdatabase.oc1.iad.aaaabbbbcccc'
      

      データベースにアクセスするためのIAMポリシーの詳細は、データベース・セキュリティ・ガイドトークンを使用して認証するユーザーを認可するIAMポリシーの作成を参照してください。

    7. 「作成」をクリックします。

      ポリシーの詳細は、ポリシーの管理を参照してください。

Autonomous AI DatabaseでIAMユーザーに使用するポリシーを作成するためのノート:

Autonomous AI DatabaseでのIAMユーザーの追加

IAMユーザーを追加してAutonomous AI Databaseへのアクセスを許可するには、データベース・グローバル・ユーザーをCREATE USERまたはALTER USER文(IDENTIFIED GLOBALLY AS句を使用)でIAMグループやユーザーにマップします。

IAMユーザーのAutonomous AI Databaseインスタンスへの認可は、IAMグローバル・ユーザー(スキーマ)をIAMユーザー(排他的マッピング)またはIAMグループ(共有スキーマ・マッピング)にマッピングすることで機能します。

Autonomous AI DatabaseインスタンスでIAMユーザーを認可するには:

  1. IAMの使用が有効になっているデータベースにADMINユーザーとしてログインします(ADMINユーザーには、このステップに必要なCREATE USERおよびALTER USERシステム権限があります)。

  2. CREATE USERまたはALTER USER文を使用してAutonomous AI Databaseユーザー(スキーマ)間のマッピングを作成し、IAMグループ名を指定してIDENTIFIED GLOBALLY AS句を含めます。

    グローバル・ユーザーをIAMグループにマップするには、次の構文を使用します:

     CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_NAME';
    

    たとえば、db_sales_groupという名前のIAMグループをsales_groupという名前の共有データベース・グローバル・ユーザーにマップするには:

     CREATE USER sales_group IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=db_sales_group';
    

    これにより、共有グローバル・ユーザー・マッピングが作成されます。グローバル・ユーザーsales_groupを使用したマッピングは、IAMグループ内のすべてのユーザーに対して有効です。したがって、db_sales_groupのユーザーは、IAM資格証明を使用してデータベースにログインできます(sales_groupグローバル・ユーザーの共有マッピングを使用)。

    次の例は、デフォルト以外のドメインでこれを実現する方法を示しています。

     CREATE USER shared_sales_schema IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=sales_domain/db_sales_group';
    
  3. 他のIAMグループまたはユーザーの追加のグローバル・ユーザー・マッピングを作成する場合は、各IAMグループまたはユーザーについて次のステップに従います。

ノート: IDENTIFIED GLOBALLYではないデータベース・ユーザーは、Autonomous AI DatabaseがIAM認証に対して有効になっている場合でも、以前と同じようにログインできます。

ローカルIAMユーザーがOracle Databaseグローバル・ユーザーに排他的にマップされるには:

  1. IAMの使用が有効になっているデータベースにADMINユーザーとしてログインします(ADMINユーザーには、このステップに必要なCREATE USERおよびALTER USERシステム権限があります)。

  2. CREATE USER文またはALTER USER文を使用してAutonomous AI Databaseユーザー(スキーマ)間のマッピングを作成し、IAMローカルIAMユーザー名を指定してIDENTIFIED GLOBALLY AS句を含めます。

    たとえば、peter_fitchという名前の新しいデータベース・グローバル・ユーザーを作成し、このユーザーをpeterfitchという名前の既存のローカルIAMユーザーにマップするには:

     CREATE USER peter_fitch IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=peterfitch'
    

    次の例は、デフォルト以外のドメインsales_domainを指定してユーザーを作成する方法を示しています:

     CREATE USER peter_fitch2 IDENTIFIED GLOBALLY AS
     'IAM_PRINCIPAL_NAME=sales_domain/peterfitch';
    

Autonomous AI DatabaseでのIAMロールの追加

オプションで、複数のIAMユーザーが同じ共有グローバル・ユーザーにマップされている場合に、追加のデータベース・ロールおよび権限をIAMユーザーに提供するグローバル・ロールを作成します。

Autonomous AI Databaseでユーザー(スキーマ)への排他的なIAMマッピングまたは共有ユーザー・マッピングを使用する場合、グローバル・ロールの使用はオプションです。たとえば、すべての権限およびロールを共有スキーマに付与できます。共有スキーマにマップされるすべてのIAMユーザーに、共有スキーマに割り当てられた権限およびロールが付与されます。

グローバル・ロールを使用して、同じ共有スキーマを使用するユーザーを任意に区別できます。たとえば、一連のユーザーがすべて同じ共有スキーマを持ち、共有スキーマにCREATE SESSION権限を設定できます。その後、グローバル・ロールを使用して、すべてのユーザーが同じ共有スキーマを使用する異なるユーザー・グループに異なる権限およびロールを割り当てることができます。

Autonomous AI DatabaseでIAMユーザーに追加のロールを付与するには、Autonomous AI Databaseグローバル・ロールをIAMグループにマップします。

Autonomous AI Databaseグローバル・ロールをIAMグループにマップするには:

  1. IAMの使用が有効になっているデータベースにADMINユーザーとしてログインします(ADMINユーザーには、このステップに必要なCREATE USERおよびALTER USERシステム権限があります)。

  2. CREATE ROLEまたはALTER ROLE文でAutonomous AIデータベース・ロールのデータベース認可を設定し、IAMグループ名を指定してIDENTIFIED GLOBALLY AS句を含めます。

    次の構文を使用して、グローバル・ロールをIAMグループにマップします:

     CREATE ROLE global_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=IAM_GROUP_of_WHICH_the_IAM_USER_IS_a_MEMBER';
    

    たとえば、ExporterGroupという名前のIAMグループをexport_roleという名前の共有データベース・グローバル・ロールにマップするには:

     CREATE ROLE export_role IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=ExporterGroup';
    

    次の例は、デフォルト以外のドメインsales_domainを指定してロールを作成する方法を示しています:

     CREATE ROLE export_role IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=sales_domain/ExporterGroup';
    

    sales_domainドメイン内のExporterGroupのすべてのメンバーは、データベースにログインするときにデータベース・グローバル・ロールexport_roleで認可されます。

  3. GRANT文を使用して、必要な権限やその他のロールをグローバル・ロールに付与します。

     GRANT CREATE SESSION TO export_role;
     GRANT DWROLE TO export_role;
    
  4. 既存のデータベース・ロールをIAMグループに関連付ける場合は、ALTER ROLE文を使用して、既存のデータベース・ロールを変更してロールをIAMグループにマップします。次の構文を使用して、既存のデータベース・ロールを変更してIAMグループにマップします:

     ALTER ROLE existing_database_role
        IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';
    

他のIAMグループのグローバル・ロール・マッピングを追加する場合は、IAMグループごとに次のステップを実行します。

IAMユーザーのIAMデータベース・パスワードの作成

IAMユーザーを追加し、ユーザー名とパスワードを指定してIAMユーザーがAutonomous AI Databaseにログインできるようにするには、IAMデータベース・パスワードを作成する必要があります。

詳細は、IAMデータベース・パスワードの使用を参照してください。

Identity and Access Management (IAM)認証によるAutonomous AI Databaseへの接続

データベースADMINユーザーがIAMユーザーおよびIAMグループにグローバル・ユーザーおよびグローバル・ロールをマップした後、ユーザーはOracle Cloud Infrastructure IAM資格証明を使用してAutonomous AI Databaseインスタンスにログインするか、Oracle Cloud Infrastructure IAMデータベース・トークンを介してデータベースにアクセスします。

ローカル・データベースのアカウントのユーザー名とパスワード(非グローバル・データベース・ユーザー・アカウント)を使用しても、Autonomous AI Databaseにログインできます。

データベース・クライアントを使用して、Oracle Cloud Infrastructure IAMユーザーとしてAutonomous AI Databaseインスタンスにアクセスできます。Oracle Cloud Infrastructure IAMのユーザー名とパスワード資格証明およびパスワード・ベリファイアを利用するクライアントを使用するには、データベース・クライアントが12c以上である必要があります。

または、Oracle Cloud Infrastructure IAMデータベース・トークンを使用して、サポートされているクライアントでAutonomous AI Databaseインスタンスにアクセスできます:

ノート: Autonomous AI Databaseインスタンスが制限モードの場合は、ADMINなどのRESTRICTED SESSION権限を持つユーザーのみがデータベースに接続できます。

IAMを使用した専用Exadataインフラストラクチャ・インスタンス上のAutonomous AIデータベースへの接続について

IAMユーザーは、IAMデータベースのパスワード・ベリファイアまたはIAMトークンのいずれかを使用して、専用Exadataインフラストラクチャ上のAutonomous AI Databaseに接続できます。

IAMデータベース・パスワード・ベリファイアの使用は、Oracle Databaseのパスワード認証プロセスと似ています。ただし、専用Exadataインフラストラクチャ上のAutonomous AI Databaseに格納されるパスワード・ベリファイア(パスワードの暗号化されたハッシュ)のかわりに、ベリファイアは、Oracle Cloud Infrastructure (OCI) IAMユーザー・プロファイルの一部として保存されます。

データベースにIAMトークンを使用する2つ目の接続方法は、より先進的です。トークン・ベース・アクセスの使用は、Autonomous AI Database on Dedicated Exadata Infrastructureなどのクラウド・リソースに適しています。トークンは、IAMエンドポイントで強制できる強度に基づきます。これはマルチファクタ認証である可能性があり、パスワードのみを使用するよりも強力です。トークンを使用するもう1つの利点は、パスワード・ベリファイア(機密とみなされる)がメモリーに格納されず、メモリーで使用できないことです。

IAMデータベース・パスワード・ベリファイアを使用するクライアント接続

IAMユーザーに必要な認可を構成した後、このユーザーは、追加の構成なしで、SQL*PlusやSQLclなどの既存のクライアント・アプリケーションを使用してログインできます。

IAMユーザーは、現在サポートされているデータベース・クライアントを使用して、IAMユーザー名およびIAMデータベース・パスワード(Oracle Cloud Infrastructure (OCI)コンソール・パスワードではなく)を入力します。唯一の制約は、データベース・クライアント・バージョンがOracle Databaseリリース12.1.0.2以上で、Oracle Database 12cパスワードを使用することです。データベース・クライアントは、12Cパスワード・ベリファイアを使用できる必要があります。11Gベリファイア暗号化の使用は、IAMではサポートされていません。IAMユーザーが専用Exadataインフラストラクチャ上のAutonomous AI Databaseに接続するために、特別なクライアントまたはツールの構成は必要ありません。

トークンを使用するクライアント接続

For IAM token access to the Autonomous AI Database on Dedicated Exadata Infrastructure, the client application or tool requests a database token from IAM for the IAM user.

クライアント・アプリケーションは、データベース・クライアントAPIを介してデータベース・トークンを直接データベース・クライアントに渡します。

IAMトークンをリクエストするようにアプリケーションまたはツールが更新されていない場合、IAMユーザーはOracle Cloud Infrastructure (OCI)コマンドライン・インタフェース(CLI)を使用してデータベース・トークンをリクエストおよび格納できます。次の資格証明を使用して、データベース・アクセス・トークン(db-token)をリクエストできます:

IAMユーザーがスラッシュ(/)ログインでクライアントにログインし、OCI_IAMパラメータが構成されている(sqlnet.oratnsnames.oraまたは接続文字列の一部として)場合、データベース・クライアントはファイルからデータベース・トークンを取得します。IAMユーザーがユーザー名とパスワードを送信する場合、接続では、IAMデータベース・パスワード・ベリファイアを使用するクライアント接続について記述されたIAMデータベース・ベリファイア・アクセスが使用されます。このガイドの手順は、OCI CLIをデータベース・トークンのヘルパーとして使用する方法を示しています。アプリケーションまたはツールがIAMと連携するように更新されている場合は、アプリケーションまたはツールの手順に従います。一般的なユース・ケースには、SQL*Plusオンプレミス、SQLclオンプレミス、クラウド・シェルのSQL*Plus、SEPウォレットを使用するアプリケーションなどがあります。

次の各トピックでは、次の方法について説明します:

IAMデータベース・パスワードを使用するSQL*Plusのクライアント接続の構成

IAMデータベース・パスワードを使用するようにSQL*Plusを構成できます。

IAMトークンを使用するSQL*Plusのクライアント接続の構成

IAMトークンを使用するSQL*Plusのクライアント接続を構成できます。

  1. IAMユーザー・アカウントがあることを確認します。

  2. IAM管理者およびOracle Database管理者に問い合せて、コンパートメントまたはテナンシ内のデータベースにアクセスできるポリシーがあり、データベース内のグローバル・スキーマにマップされていることを確認してください。

  3. アプリケーションまたはツールが直接IAM統合をサポートしていない場合は、OCI CLIをダウンロード、インストールおよび構成します。(OCIコマンドライン・インタフェースのクイックスタートを参照。) OCI CLI構成の一部としてAPIキーを設定し、デフォルト値を選択します。

    1. IAMユーザーのAPIキー・アクセスを設定します。

    2. db-tokenを取得します。たとえば:

      • Oracle Cloud Infrastructure (OCI)コマンドライン・インタフェースを使用したAPI-keyでのdb-tokenの取得:

        oci iam db-token get
        
      • セキュリティ(またはセッション)トークンを使用したdb-tokenの取得:

        oci iam db-token get --auth security_token
        

        セキュリティ・トークンが期限切れになると、ユーザーがOCIに再度ログインできるようにウィンドウが表示されます。これにより、ユーザーのセキュリティ・トークンが生成されます。OCI CLIでは、このリフレッシュされたトークンを使用してdb-tokenを取得します。

      • 委任トークンを使用したdb-tokenの取得: クラウド・シェルにログインすると、委任トークンが自動的に生成され、/etcディレクトリに配置されます。このトークンを取得するには、クラウド・シェルで次のコマンドを実行します:

        oci iam db-token get
        
      • OCIコマンドライン・インタフェースを使用したインスタンス・トークンの取得:

        oci iam db-token get --auth instance_principal
        
    3. データベース・クライアントは、IAMユーザー名およびIAMデータベース・パスワードを使用してデータベース・トークンを取得するように構成することもできます。

      詳細は、「IAMユーザー名およびデータベース・パスワードによってリクエストされたトークンを使用するクライアント接続」を参照してください。

    詳細は、必要なキーとOCIDを参照してください。

  4. Oracle Databaseクライアント・リリース19cおよび21cの最新リリース更新を使用していることを確認します。

    この構成は、Oracle Databaseクライアント・リリース19cまたは21cでのみ機能します。

  5. 既存のプロセスに従って、Autonomous AI Databaseからウォレットをダウンロードし、SQL*Plusで使用するための構成手順に従います。

    1. sqlnet.oraSSL_SERVER_DN_MATCH=ONを検索して、DN一致が有効であることを確認します。

    2. TOKEN_AUTH=OCI_TOKENsqlnet.oraファイルに追加して、IAMトークンを使用するようにデータベース・クライアントを構成します。データベース・トークン・ファイルのデフォルトの場所を使用するため、トークンの場所を含める必要はありません。

    tnsnames.ora接続文字列のTOKEN_AUTHおよびTOKEN_LOCATION値は、その接続のsqlnet.ora設定より優先されます。たとえば、接続文字列の場合、トークンがデフォルトの場所(Linuxの場合は~/.oci/db-token)にあるとします:

     (description=
       (retry_count=20)(retry_delay=3)
       (address=(protocol=tcps)(port=1522)
       (host=example.us-phoenix-1.oraclecloud.com))
       (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
       (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
          OU=Oracle BMCS US, O=Example Corporation,
          L=Redwood City, ST=California, C=US")
       (TOKEN_AUTH=OCI_TOKEN)))
    

接続文字列をTOKEN_AUTHパラメータで更新した後、IAMユーザーは、次のコマンドを実行してSQL\*Plusを起動することで、Autonomous AI Databaseインスタンスにログインできます。接続記述子自体を含めることも、tnsnames.oraファイルの記述子の名前を使用することもできます。

connect /@exampledb_high

または

connect /@(description=
  (retry_count=20)(retry_delay=3)
  (address=(protocol=tcps)(port=1522)
  (host=example.us-phoenix-1.oraclecloud.com))
  (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
  (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
     OU=Oracle BMCS US, O=Example Corporation,
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

TOKEN_AUTHsqlnet.oraファイルまたは接続文字列のいずれかですでに設定されているため、データベース・クライアントはdb-tokenを取得するようにすでに構成されています。データベース・クライアントは、db-tokenを取得し、秘密キーを使用して署名してから、トークンをAutonomous AI Databaseに送信します。スラッシュ(/)のかわりにIAMユーザー名およびIAMデータベース・パスワードが指定されている場合、データベース・クライアントはdb-tokenを使用するかわりに、パスワードを使用して接続します。

Instance Principalを使用したIdentity and Access Management (IAM)認証によるAutonomous AIデータベースへのアクセス

ADMINユーザーがAutonomous AI DatabaseでOracle Cloud Infrastructure IAMを有効にすると、アプリケーションはインスタンス・プリンシパルを使用してOracle Cloud Infrastructure IAMデータベース・トークンを介してデータベースにアクセスできます。

詳細は、インスタンス・プリンシパルを使用したOracle Cloud Infrastructure APIへのアクセスを参照してください。

プロキシ認証の構成

プロキシ認証により、IAMユーザーは、アプリケーションのメンテナンスなどのタスクのためにデータベース・スキーマにプロキシできます。

プロキシ認証は、通常、実際のユーザーを認証し、アプリケーションを管理するためにスキーマ権限およびロールを持つデータベース・スキーマの使用を認可するために使用されます。アプリケーション・スキーマ・パスワードの共有などの代替方法は、安全性が低いと考えられ、実際にどのユーザーがアクションを実行したかを監査できません。

ユース・ケースとしては、アプリケーション・データベース管理者である名前付きIAMユーザーが資格証明を使用して認証し、データベース・スキーマ・ユーザー(hrappなど)にプロキシするような環境が考えられます。この認証により、IAM管理者は、アプリケーションのメンテナンスを実行するためにhrapp権限およびロールをユーザーhrappとして使用でき、認証にはIAM資格証明を使用できます。アプリケーション・データベース管理者は、データベースにサインインし、アプリケーション・スキーマにプロキシしてこのスキーマを管理できます。

パスワード認証とトークン認証の両方の方法にプロキシ認証を構成できます。

IAMユーザーのプロキシ認証を構成します

IAMユーザーにプロキシ認証を構成するには、IAMユーザーにすでにグローバル・スキーマへのマッピング(排他的マッピングまたは共有マッピング)がある必要があります。IAMユーザーのプロキシ先の個別のデータベース・スキーマが使用可能である必要もあります。

このタイプのユーザーがあることを確認したら、IAMユーザーにプロキシを許可するようにデータベース・ユーザーを変更します。

  1. ALTER USERシステム権限を持つユーザーとして、Autonomous AI Databaseインスタンスにログインします。

  2. IAMユーザーがローカル・データベース・ユーザー・アカウントにプロキシする権限を付与します。IAMユーザーはコマンドで参照できないため、データベース・グローバル・ユーザー(IAMユーザーにマップされている)とターゲット・データベース・ユーザーの間でプロキシを作成する必要があります。次の例では、hrappがプロキシ先のデータベース・スキーマで、peterfitch_schemaがユーザーpeterfitchに排他的にマップされているデータベース・グローバル・ユーザーです。

     ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
    

この段階で、IAMユーザーはプロキシを使用してデータベース・インスタンスにログインできます。たとえば:

パスワード・ベリファイアを使用して接続するには:

CONNECT peterfitch[hrapp]@connect_string
Enter password: password

トークンを使用して接続するには:

CONNECT [hrapp]/@connect_string

IAMユーザー・プロキシ認証の検証

パスワード認証方法とトークン認証方法の両方についてIAMユーザー・プロキシ構成を検証できます。 1 CREATE USERおよびALTER USERシステム権限を持つユーザーとして、Autonomous AI Databaseインスタンスにログインします。

  1. IAMユーザーとして接続し、SHOW USERおよびSELECT SYS_CONTEXTコマンドを実行します。たとえば、データベース・ユーザーhrappにプロキシされているときに、IAMユーザーpeterfitchのプロキシ認証を確認するとします。ここに示す様々なタイプの認証方法を使用してデータベースに接続する必要がありますが、実行したコマンドの出力はすべてのタイプで同じになります。

    • パスワード認証の場合:
CONNECT peterfitch[hrapp]/password!@connect_string
SHOW USER;

--The output should be USER is "HRAPP"
SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;

--The output should be "PASSWORD_GLOBAL"
SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;

--The output should be "PETERFITCH_SCHEMA"
SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;

--The output should be "HRAPP"

IAM認証済ユーザーでのデータベース・リンクの使用

データベース・リンクを使用すると、あるAutonomous AI Databaseインスタンスから別のAutonomous AI Databaseインスタンスに、Oracle Cloud Infrastructure IAMユーザーとして接続できます。

接続ユーザーまたは固定ユーザー・データベース・リンクを使用して、Oracle Cloud Infrastructure IAMユーザーとしてAutonomous AI Databaseに接続できます。

ノート:現在のユーザー・データベース・リンクは、Oracle Cloud Infrastructure IAMユーザーとしてのAutonomous AI Databaseへの接続ではサポートされていません。

Autonomous AI DatabaseでのIdentity and Access Management (IAM)認証の無効化

Autonomous AI DatabaseのIAM外部認証ユーザー・アクセスを無効にするためのステップについて説明します。

次に示すように、ALTER SYSTEMコマンドを使用して、Autonomous AI DatabaseインスタンスでIAMユーザー・アクセスを無効にできます:

ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;

リソース(Autonomous Container DatabaseまたはAutonomous AI Database)からIAMへのアクセスも更新する場合は、IAMグループおよびそれらのリソースからのIAMへのアクセスを許可するように設定しましたポリシーを削除または変更する必要があります。

Identity and Access Management (IAM)認証でAutonomous AIデータベース・ツールを使用するためのノート

IAM認証が有効になっているAutonomous AI Databaseツールを使用するためのノートを提供します。