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

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

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インスタンスにアクセスすることもできます。IAMトークンを使用するには、最新のOracle Databaseクライアント19c (19.16以上)が必要です。一部の以前のクライアントでは、トークン・アクセス用の制限された一連の機能が提供されます。

次の例は、Oracle Cloud Infrastructure IAMのユーザー名とパスワードでデータベースにアクセスするためのSQL*Plusを使用したパスワード・ベリファイア、およびOracle Cloud Infrastructure IAMデータベース・トークンでSQL*Plusを使用するために必要なステップを示しています。

ノート

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

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

IAMを使用したAutonomous AI Databaseインスタンスへの接続について

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

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

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

ノート

ノート: IAMトークンを渡すときにネイティブ・ネットワーク暗号化を設定することはできません。Transport Layer Security (TLS)のみがサポートされ、ネイティブ・ネットワーク暗号化やTLSによるネイティブ・ネットワーク暗号化はサポートされていません。

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

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

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

クライアント・アプリケーションまたはツールによってリクエストされたトークンを使用するクライアント接続

Autonomous AI DatabaseへのIAMトークン・アクセスの場合、クライアント・アプリケーションまたはツールはIAMユーザーのために、IAMからデータベース・トークンをリクエストします。

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

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

  • セキュリティ・トークン(IAM認証あり)、委任トークン(OCIクラウド・シェル内)およびAPI-keys(認証を有効にするためのIAMユーザーを表す資格証明)

  • インスタンス・プリンシパル・トークン。認証後、インスタンスがサービス・リソース上でアクションを実行するための認可されたアクター(またはプリンシパル)になることを可能にします

  • リソース・プリンシパル・トークン。これは、アプリケーションが他のOracle Cloud Infrastructureサービスに自身を認証できるようにする資格証明です

  • IAMユーザー名およびIAMデータベース・パスワードの使用(データベース・クライアントのみがリクエスト可能)

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

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

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

  • IAMユーザーとして、次の構文を使用してAutonomous AI Databaseインスタンスにログインします。

    CONNECT user_name@db_connect_string
    Enter password: password

    この指定では、user_nameはIAMユーザー名です。domain_name/user_nameの組合せには128バイトの制限があります。

    次の例は、IAMユーザーpeter_fitchがAutonomous AI Databaseインスタンスにログインする方法を示しています。

    sqlplus /nolog
    connect peter_fitch@db_connect_string
    Enter password: password

    一部の特殊文字では、user_nameおよびpasswordの前後に二重引用符が必要です。次に例を示します。

    "peter_fitch@example.com"@db_connect_string
    
    "IAM database password"

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

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

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

  2. IAM管理者およびOracle AI 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 AI Databaseクライアント・リリース19c、21cまたは26aiの最新リリース更新を使用していることを確認します。

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

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

      ノート

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

      ノート:データベース・クライアントからAutonomous AIデータベースにトークンを送信する場合は、部分DNまたは完全DN一致が必要です。Autonomous AI Databaseがプライベート・エンドポイントを使用している場合は、接続文字列パラメータのホスト値を指定する必要があります。接続文字列のホスト・パラメータにIPアドレスを使用すると、DN一致では機能せず、IAMトークンはデータベースに送信されません。プライベート・エンドポイントの使用時にホスト・パラメータを設定する方法の詳細は、Autonomous AIデータベースでのプライベート・エンドポイント構成の例を参照してください。

    1. 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_dn_match=yes)
      (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,
     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へのアクセスを参照してください。