Autonomous Databaseに対するIdentity and Access Management (IAM)認証の使用
Autonomous DatabaseとOracle Cloud Infrastructure (OCI) IAMの統合は、アイデンティティ・ドメインを持つ商業テナンシおよびアイデンティティ・ドメインを含まないレガシーOracle Cloud Infrastructure IAMでサポートされています。アイデンティティ・ドメインを含むOracle Cloud Infrastructure IAMは、2021年11月8日より後に作成された新しいOCIテナンシで導入されました。Autonomous Databaseは、デフォルトおよびデフォルト以外のアイデンティティ・ドメイン内のユーザーおよびグループをサポートしています。
- Autonomous Databaseに対するIdentity and Access Management (IAM)認証について
- Autonomous DatabaseでのIdentity and Access Management (IAM)認証の前提条件
- Autonomous Databaseでの外部アイデンティティ・プロバイダの変更
外部アイデンティティ・プロバイダを(IAM)認証および認可から別の外部認証プロバイダに変更するステップ(またはその逆)について説明します。 - IAMユーザーのIdentity and Access Management (IAM)グループおよびポリシーの作成
IAMグループのポリシー・ステートメントを記述して、Oracle Cloud Infrastructureリソース(特にAutonomous Databaseインスタンス)へのIAMユーザー・アクセスを有効にするステップについて説明します。 - Autonomous DatabaseでのIAMユーザーの追加
IAMユーザーを追加してAutonomous Databaseへのアクセスを許可するには、データベース・グローバル・ユーザーをCREATE USER
またはALTER USER
文(IDENTIFIED GLOBALLY AS
句を使用)でIAMグループまたはユーザーにマップします。 - Autonomous DatabaseでのIAMロールの追加
オプションで、複数のIAMユーザーが同じ共有グローバル・ユーザーにマップされている場合に、追加のデータベース・ロールおよび権限をIAMユーザーに提供するグローバル・ロールを作成します。 - IAMユーザーのIAMデータベース・パスワードの作成
IAMユーザーを追加し、IAMユーザーがユーザー名とパスワードを入力してAutonomous Databaseにログインできるようにするには、IAMデータベース・パスワードを作成する必要があります。 - Identity and Access Management (IAM)認証によるAutonomous Databaseへの接続
データベースADMINユーザーがグローバル・ユーザーおよびグローバル・ロールをIAMユーザーおよびIAMグループにマップした後、ユーザーはOracle Cloud Infrastructure IAM資格証明を使用してAutonomous Databaseインスタンスにログインするか、Oracle Cloud Infrastructure IAMデータベース・トークンを使用してデータベースにアクセスします。 - IAMデータベース・パスワードを使用するSQL*Plusのクライアント接続の構成
IAMデータベース・パスワードを使用するようにSQL*Plusを構成できます。 - IAMトークンを使用するSQL*Plusのクライアント接続の構成
IAMトークンを使用するSQL*Plusのクライアント接続を構成できます。 - インスタンス・プリンシパルを使用したIdentity and Access Management (IAM)認証によるAutonomous Databaseへのアクセス
ADMINユーザーがAutonomous DatabaseでOracle Cloud Infrastructure IAMを有効にすると、アプリケーションはインスタンス・プリンシパルを使用してOracle Cloud Infrastructure IAMデータベース・トークンを介してデータベースにアクセスできます。 - プロキシ認証の構成
プロキシ認証により、IAMユーザーは、アプリケーションのメンテナンスなどのタスクのためにデータベース・スキーマにプロキシできます。 - IAM認証済ユーザーを用いたデータベース・リンクの使用
データベース・リンクを使用すると、Oracle Cloud Infrastructure IAMユーザーとして、あるAutonomous Databaseインスタンスから別のインスタンスに接続できます。 - Autonomous DatabaseでのIdentity and Access Management (IAM)認証の無効化
Autonomous DatabaseのIAM外部認証ユーザー・アクセスを無効にするステップについて説明します。 - Identity and Access Management (IAM)認証でAutonomous Databaseツールを使用するためのノート
IAM認証が有効になっているAutonomous Databaseツールを使用するためのノートを提供します。
親トピック: ユーザーの管理
Autonomous Databaseに対するIdentity and Access Management (IAM)認証について
Oracle Cloud Infrastructure IAMとAutonomous Databaseとの統合では、データベース・パスワード認証とトークンベース認証の両方がサポートされます。Autonomous DatabaseでIAMユーザーを使用するためのアーキテクチャの詳細は、Oracle Autonomous Databaseに対するIAMユーザーの認証と認可を参照してください。
IAMデータベース・パスワード認証
サポートされている12c以上のデータベース・クライアントは、Autonomous DatabaseへのIAMデータベースのパスワード・アクセスに使用できます。
Oracle Cloud Infrastructure IAMデータベース・パスワードを使用すると、Oracle Databaseユーザーが通常ユーザー名とパスワードでログインするように、IAMユーザーがAutonomous Databaseインスタンスにログインできます。ユーザーは、IAMユーザー名およびIAMデータベース・パスワードを入力します。IAMデータベースのパスワードは、Oracle Cloud Infrastructureコンソールのパスワードとは異なります。パスワード・ベリファイアを利用してIAMユーザーを使用する場合、サポートされているどのデータベース・クライアントでもAutonomous Databaseにログインできます。
Identity and Access Management (IAM) SSOトークン・ベース認証
データベース・クライアントがIAMデータベース・トークンを取得するには、いくつかの方法があります:
-
クライアント・アプリケーションまたはツールは、IAMからユーザーのデータベース・トークンをリクエストでき、クライアントAPIを介してデータベース・トークンを渡すことができます。APIを使用してトークンを送信すると、データベース・クライアント内の他の設定がオーバーライドされます。このタイプのIAMデータベース・トークンの使用は、次のクライアントでサポートされています:
- すべてのプラットフォーム上のJDBC-thin
- Linux上のOracle Instant Client OCI-C
- Oracle Data Provider for .NET (ODP.NET) Core
-
アプリケーションまたはツールがクライアントAPIを介したIAMデータベース・トークンのリクエストをサポートしていない場合、IAMユーザーはまずOracle Cloud Infrastructureコマンドライン・インタフェース(CLI)を使用してIAMデータベース・トークンを取得し、ファイルの場所に保存できます。たとえば、この接続方法を使用してSQL*Plusおよびその他のアプリケーションおよびツールを使用するには、最初にOracle Cloud Infrastructure (OCI)コマンドライン・インタフェース(CLI)を使用してデータベース・トークンを取得します。データベース・クライアントがIAMデータベース・トークン用に構成されている場合、ユーザーがスラッシュ・ログイン形式でログインすると、データベース・ドライバは、デフォルトまたは指定されたファイルの場所に保存されたIAMデータベース・トークンを使用します。
-
クライアント・アプリケーションまたはツールは、Oracle Cloud Infrastructure IAMインスタンス・プリンシパルまたはリソース・プリンシパルを使用してIAMデータベース・トークンを取得し、IAMデータベース・トークンを使用してAutonomous Databaseインスタンスに自己認証できます。
-
IAMユーザーおよびOCIアプリケーションは、APIキーの使用など、いくつかの方法でIAMからデータベース・トークンをリクエストできます。例については、IAMトークンを使用するSQL*Plusのクライアント接続の構成を参照してください。OCIクラウド・シェル内での委任トークンの使用など、その他の方法の詳細は、Oracle Autonomous Databaseに対するIAMユーザーの認証と認可についてを参照してください。
ユーザーがログインするためにユーザー名/パスワードを入力した場合、データベース・ドライバは、クライアントのデータベース・トークン設定に関係なく、パスワード・ベリファイアの方法を使用してデータベースにアクセスします。
Autonomous DatabaseでのIdentity and Access Management (IAM)認証の前提条件
Autonomous DatabaseでIdentity and Access Management (IAM)認証を使用する前に、次のことを確認する必要があります:
ネットワーキング・サービスを使用して、サービス・ゲートウェイ、ルート・ルールおよびエグレス・セキュリティ・ルールをVCN (Virtual Cloud Network)およびAutonomous Databaseリソースが存在するサブネットに追加します。
- Autonomous Databaseリソースが存在するVCN(仮想クラウド・ネットワーク)で、Oracle Cloud Infrastructureドキュメントのタスク1: サービス・ゲートウェイの作成の手順に従ってサービス・ゲートウェイを作成します。
- サービス・ゲートウェイを作成したら、Autonomous Databaseリソースが存在する各サブネット(VCN内)にルート・ルールおよびエグレス・セキュリティ・ルールを追加して、これらのリソースがゲートウェイを使用してIdentity and Access Management (IAM)認証を使用できるようにします:
- サブネットの「サブネットの詳細」ページに移動します。
- 「サブネット情報」タブで、サブネットの「ルート表」の名前をクリックして、その「ルート表の詳細」ページを表示します。
- 既存のルート・ルールの表で、次の特性を持つルールがすでに存在するかどうかを確認します:
- 宛先: Oracle Services NetworkのすべてのIADサービス
- ターゲット・タイプ: サービス・ゲートウェイ
- ターゲット: VCN内に作成したサービス・ゲートウェイの名前
そのようなルールが存在しない場合は、「ルート・ルールの追加」をクリックし、これらの特性を持つルート・ルールを追加します。
- サブネットの「サブネットの詳細」ページに戻ります。
- サブネットの「セキュリティ・リスト」表で、サブネットのセキュリティ・リストの名前をクリックして、その「セキュリティ・リストの詳細」ページを表示します。
- サイド・メニューの「リソース」で、「エグレス・ルール」をクリックします。
- 既存のエグレス・ルールの表で、次の特性を持つルールがすでに存在するかどうかを確認します:
- ステートレス: いいえ
- 宛先: Oracle Services NetworkのすべてのIADサービス
- IPプロトコル: TCP
- ソース・ポート範囲: すべて
- 宛先ポート範囲: 443
- そのようなルールが存在しない場合は、「エグレス・ルールの追加」をクリックし、これらの特性を持つエグレス・ルールを追加します。
環境のHTTPプロキシ設定では、データベースがクラウド・サービス・プロバイダにアクセスできるようにする必要があります。
HTTPプロキシを含むネットワーク構成を編集できるのは、Exadataインフラストラクチャが「アクティブ化が必要」状態になるまでです。いったんアクティブ化すると、それらの設定は編集できません。
すでにプロビジョニングされているExadataインフラストラクチャのHTTPプロキシを設定するには、My Oracle Supportでサービス・リクエスト(SR)が必要です。詳細は、My Oracle Supportでのサービス・リクエストの作成を参照してください。
Autonomous Databaseでの外部アイデンティティ・プロバイダの変更
外部アイデンティティ・プロバイダを(IAM)認証および認可から別の外部認証プロバイダに、またはその逆に変更するステップについて説明します。
ユーザーのOracle Cloud Infrastructure (IAM)認証および認可は、デフォルトで、新しくプロビジョニングされたAutonomous DatabasesおよびAutonomous Container Databaseで有効です。Autonomous Databaseに対して有効にできるActive Directory (CMU-AD)、Azure ADおよびKerberosを使用した集中管理ユーザーなど、その他の外部認証スキームがあります。ただし、一度に有効化できる外部認証スキームは1つのみです。
- DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATIONプロシージャを使用してIAM統合を無効にします:
例:
詳細は、DISABLE_EXTERNAL_AUTHENTICATIONプロシージャを参照してください。BEGIN DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION; END; /
- 次のページで概説されているステップに従って、選択した別の外部認証スキームを構成します。
- IAMユーザーがOracle Cloud Infrastructure (IAM)認証および認可を使用してAutonomous 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)認証および認可を有効にします。
この例では:- 現在有効になっている外部認証を無効にするには、
force
をTRUE
に設定します。 type
は、Oracle Cloud Infrastructure (IAM)認証および認可を有効にして使用するために'OCI_IAM'
に設定されています。
ノート
デフォルトでは、force
パラメータはFALSE
です。別の外部認証方法が有効で、force
がFALSE
の場合、DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATIONは次のエラーをレポートします:ORA-20004: Another external authentication is already enabled.
詳細は、ENABLE_EXTERNAL_AUTHENTICATIONプロシージャを参照してください。
- 現在有効になっている外部認証を無効にするには、
- 次に示すように、
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グループのポリシー・ステートメントを記述して、Oracle Cloud Infrastructureリソース(特にAutonomous Databaseインスタンス)へのIAMユーザー・アクセスを有効にするステップについて説明します。
ポリシーは、特定のリソースにアクセスできるユーザーとその方法を指定するステートメントのグループです。アクセスは、テナンシ全体、コンパートメント内のデータベースまたは個々のデータベースに対して付与できます。つまり、特定のコンパートメント内の特定のタイプのリソースへの特定のアクセス・タイプを特定のグループに付与するポリシー・ステートメントを記述します。
IAMトークンを使用してAutonomous Databaseにアクセスするには、ポリシーを定義する必要があります。IAMデータベース・パスワードを使用してAutonomous Databaseにアクセスする場合、ポリシーは不要です。
Autonomous DatabaseでIAMユーザーがIAMトークンを使用してデータベースに接続できるようにするには:
Autonomous DatabaseでIAMユーザーに使用するポリシーを作成するためのノート:
-
ポリシーでは、IAMユーザーがテナンシ全体またはコンパートメント内のAutonomous Databaseインスタンスにアクセスできるようにしたり、単一のAutonomous Databaseインスタンスにアクセスを制限したりできます。
-
インスタンス・プリンシパルまたはリソース・プリンシパルのいずれかを使用して、アプリケーションからAutonomous Databaseインスタンスへの接続を確立するデータベース・トークンを取得できます。インスタンス・プリンシパルまたはリソース・プリンシパルを使用する場合は、動的グループをマップする必要があります。したがって、インスタンス・プリンシパルとリソース・プリンシパルを排他的にマップすることはできません。共有マッピングを使用して、インスタンスまたはリソース・インスタンスをIAM動的グループに入れることによってのみ、マッピングすることができます。
動的グループを作成し、作成したポリシーで動的グループを参照してOracle Cloud Infrastructureにアクセスできます。詳細は、アクセス制御の計画およびサポート・リソースの作成および動的グループの管理を参照してください。
Autonomous DatabaseでのIAMユーザーの追加
IAMユーザーを追加してAutonomous Databaseへのアクセスを許可するには、データベース・グローバル・ユーザーをCREATE USER
またはALTER USER
文(IDENTIFIED GLOBALLY AS
句を使用)でIAMグループまたはユーザーにマップします。
IAMユーザーのAutonomous Databaseインスタンスへの認可は、IAMグローバル・ユーザー(スキーマ)をIAMユーザー(排他的マッピング)またはIAMグループ(共有スキーマ・マッピング)にマップすることで機能します。
Autonomous DatabaseインスタンスでIAMユーザーを認可するには:
IDENTIFIED GLOBALLY
ではないデータベース・ユーザーは、IAM認証に対してAutonomous Databaseが有効になっている場合でも、以前と同じようにログインできます。
ローカルIAMユーザーをOracle Databaseグローバル・ユーザーに排他的にマップするには:
-
IAMの使用が有効になっているデータベースにADMINユーザーとしてログインします(ADMINユーザーには、このステップに必要な
CREATE USER
およびALTER USER
システム権限があります)。 -
CREATE USER
またはALTER USER
文を使用してAutonomous Databaseユーザー(スキーマ)間のマッピングを作成し、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 DatabaseでのIAMロールの追加
オプションで、複数のIAMユーザーが同じ共有グローバル・ユーザーにマップされている場合に、追加のデータベース・ロールおよび権限をIAMユーザーに提供するグローバル・ロールを作成します。
グローバル・ロールの使用は、ユーザー(スキーマ)への排他的なIAMマッピングまたはAutonomous Databaseでの共有ユーザー・マッピングを使用する場合、オプションです。たとえば、すべての権限およびロールを共有スキーマに付与できます。共有スキーマにマップされるすべてのIAMユーザーに、共有スキーマに割り当てられた権限およびロールが付与されます。
グローバル・ロールを使用して、同じ共有スキーマを使用するユーザーを任意に区別できます。たとえば、一連のユーザーがすべて同じ共有スキーマを持ち、共有スキーマにCREATE SESSION
権限を設定できます。その後、グローバル・ロールを使用して、すべてのユーザーが同じ共有スキーマを使用する異なるユーザー・グループに異なる権限およびロールを割り当てることができます。
Autonomous DatabaseでIAMユーザーに追加のロールを付与するには、Autonomous Databaseグローバル・ロールをIAMグループにマップします。
Autonomous Databaseグローバル・ロールをIAMグループにマップするには:
他のIAMグループのグローバル・ロール・マッピングを追加する場合は、IAMグループごとに次のステップを実行します。
IAMユーザーのIAMデータベース・パスワードの作成
IAMユーザーを追加し、ユーザー名とパスワードを指定してIAMユーザーがAutonomous Databaseにログインできるようにするには、IAMデータベース・パスワードを作成する必要があります。
詳細は、IAMデータベース・パスワードの使用を参照してください。
Identity and Access Management (IAM)認証によるAutonomous Databaseへの接続
データベースADMINユーザーがグローバル・ユーザーおよびグローバル・ロールをIAMユーザーおよびIAMグループにマップした後、ユーザーはOracle Cloud Infrastructure IAM資格証明を使用してAutonomous Databaseインスタンスにログインするか、Oracle Cloud Infrastructure IAMデータベース・トークンを使用してデータベースにアクセスします。
ローカル・データベース・アカウントのユーザー名とパスワード(非グローバル・データベース・ユーザー・アカウント)を使用しても、Autonomous Databaseにログインできます。
データベース・クライアントを使用して、Autonomous DatabaseインスタンスにOracle Cloud Infrastructure IAMユーザーとしてアクセスできます。Oracle Cloud Infrastructure IAM IAMのユーザー名とパスワードの資格証明およびパスワード・ベリファイアを使用するクライアントを使用するには、データベース・クライアントが12c以上である必要があります。
-
IAMトークン認証をサポートするJDBC-Thinは、次でサポートされています:
-
JDBCバージョン19.13.0.0.1(以降): JDBCドライバについては、JDBCおよびUCPダウンロードを参照してください。
-
JDBCバージョン21.4.0.0.1 (以降): JDBCドライバについては、JDBCおよびUCPダウンロードを参照してください。
詳細は、IAMトークンベース認証のサポートを参照してください:
-
- SQL*PlusおよびOracle Instant Client: バージョン19.13以降のLinux上のSQL*PlusおよびInstant Client、およびバージョン21.4以降のLinux上のInstant Clientでサポートされます。
詳細は、Identity and Access Management (IAM)トークンベース認証を参照してください。
-
データベース・クライアントは、IAMユーザー名およびIAMデータベース・パスワードを使用してデータベース・トークンを取得するように構成することもできます。
詳細は、「IAMユーザー名およびデータベース・パスワードによってリクエストされたトークンを使用するクライアント接続」を参照してください。
-
.NETクライアント(最新バージョンのLinuxまたはWindows)。.NETソフトウェア・コンポーネントは、次のサイトから無料でダウンロードできます:
Autonomous Databaseインスタンスが制限モードの場合、ADMINなどのRESTRICTED SESSION
権限を持つユーザーのみがデータベースに接続できます。
IAMを使用した専用Exadataインフラストラクチャ・インスタンス上のAutonomous Databaseへの接続の概要
IAMユーザーは、IAMデータベース・パスワード・ベリファイアまたはIAMトークンを使用して、専用Exadataインフラストラクチャ上のAutonomous Databaseインスタンスに接続できます。
IAMデータベース・パスワード・ベリファイアの使用は、Oracle Databaseのパスワード認証プロセスと似ています。ただし、Autonomous Database on Dedicated Exadata Infrastructureに格納されているパスワード・ベリファイア(パスワードの暗号化ハッシュ)のかわりに、ベリファイアはOracle Cloud Infrastructure (OCI) IAMユーザー・プロファイルの一部として格納されます。
データベースにIAMトークンを使用する2つ目の接続方法は、より先進的です。トークンベース・アクセスの使用は、Autonomous 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ユーザーがAutonomous Database on Dedicated Exadata Infrastructureインスタンスに接続するために特別なクライアントやツールの構成は必要ありません。
トークンを使用するクライアント接続
専用Exadataインフラストラクチャ上のAutonomous DatabaseへのIAMトークン・アクセスの場合、クライアント・アプリケーションまたはツールは、IAMユーザーのために、IAMからデータベース・トークンをリクエストします。
クライアント・アプリケーションは、データベース・クライアントAPIを介してデータベース・トークンを直接データベース・クライアントに渡します。
IAMトークンをリクエストするようにアプリケーションまたはツールが更新されていない場合、IAMユーザーはOracle Cloud Infrastructure (OCI)コマンドライン・インタフェース(CLI)を使用してデータベース・トークンをリクエストおよび格納できます。次の資格証明を使用して、データベース・アクセス・トークン(db-token
)をリクエストできます:
- セキュリティ・トークン(IAM認証あり)、委任トークン(OCIクラウド・シェル内)および
API-keys
(認証を有効にするためのIAMユーザーを表す資格証明) - インスタンス・プリンシパル・トークン。認証後、インスタンスがサービス・リソース上でアクションを実行するための認可されたアクター(またはプリンシパル)になることを可能にします
- リソース・プリンシパル・トークン。これは、アプリケーションが他のOracle Cloud Infrastructureサービスに自身を認証できるようにする資格証明です
IAMユーザーがスラッシュ(/
)ログインでクライアントにログインし、OCI_IAM
パラメータが構成されている(sqlnet.ora
、tnsnames.ora
または接続文字列の一部として)場合、データベース・クライアントはファイルからデータベース・トークンを取得します。IAMユーザーがユーザー名とパスワードを送信する場合、接続では、IAMデータベース・パスワード・ベリファイアを使用するクライアント接続について記述されたIAMデータベース・ベリファイア・アクセスが使用されます。このガイドの手順は、OCI CLIをデータベース・トークンのヘルパーとして使用する方法を示しています。アプリケーションまたはツールがIAMと連携するように更新されている場合は、アプリケーションまたはツールの手順に従います。一般的なユース・ケースには、SQL*Plusオンプレミス、SQLclオンプレミス、クラウド・シェルのSQL*Plus、SEPウォレットを使用するアプリケーションなどがあります。
-
IAMデータベース・パスワードを使用するようにSQL*Plusのクライアント接続を構成します。
-
IAMトークンを使用するSQL*Plusのクライアント接続を構成します。
-
インスタンス・プリンシパルを使用して、Oracle Cloud Infrastructure IAMデータベース・トークンを介してデータベースにアクセスします。
IAMトークンを使用するSQL*Plusのクライアント接続の構成
IAMトークンを使用するSQL*Plusのクライアント接続を構成できます。
TOKEN_AUTH
パラメータで更新した後、IAMユーザーは、次のコマンドを実行してSQL*Plusを起動することでAutonomous 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_AUTH
はsqlnet.ora
ファイルまたは接続文字列のいずれかですでに設定されているため、データベース・クライアントはdb-token
を取得するようにすでに構成されています。データベース・クライアントは、db-token
を取得し、秘密キーを使用して署名してからトークンをAutonomous Databaseに送信します。スラッシュ(/
)のかわりにIAMユーザー名およびIAMデータベース・パスワードが指定されている場合、データベース・クライアントはdb-token
を使用するかわりに、パスワードを使用して接続します。
インスタンス・プリンシパルを使用したIdentity and Access Management (IAM)認証によるAutonomous Databaseへのアクセス
ADMINユーザーがAutonomous DatabaseでOracle Cloud Infrastructure IAMを有効にすると、アプリケーションはインスタンス・プリンシパルを使用してOracle Cloud Infrastructure IAMデータベース・トークンを通じてデータベースにアクセスできます。
詳細は、インスタンス・プリンシパルを使用したOracle Cloud Infrastructure APIへのアクセスを参照してください。
プロキシ認証の構成
プロキシ認証により、IAMユーザーは、アプリケーションのメンテナンスなどのタスクのためにデータベース・スキーマにプロキシできます。
プロキシ認証は、通常、実際のユーザーを認証し、アプリケーションを管理するためにスキーマ権限およびロールを持つデータベース・スキーマの使用を認可するために使用されます。アプリケーション・スキーマ・パスワードの共有などの代替方法は、安全性が低いと考えられ、実際にどのユーザーがアクションを実行したかを監査できません。
ユース・ケースとしては、アプリケーション・データベース管理者である名前付きIAMユーザーが資格証明を使用して認証し、データベース・スキーマ・ユーザー(hrapp
など)にプロキシするような環境が考えられます。この認証により、IAM管理者は、アプリケーションのメンテナンスを実行するためにhrapp
権限およびロールをユーザーhrapp
として使用でき、認証にはIAM資格証明を使用できます。アプリケーション・データベース管理者は、データベースにサインインし、アプリケーション・スキーマにプロキシしてこのスキーマを管理できます。
パスワード認証とトークン認証の両方の方法にプロキシ認証を構成できます。
IAMユーザーのプロキシ認証の構成
IAMユーザーにプロキシ認証を構成するには、IAMユーザーにすでにグローバル・スキーマへのマッピング(排他的マッピングまたは共有マッピング)がある必要があります。IAMユーザーのプロキシ先の個別のデータベース・スキーマが使用可能である必要もあります。
-
ALTER USER
システム権限を持つユーザーとして、Autonomous Databaseインスタンスにログインします。 -
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ユーザー・プロキシ認証の検証
-
CREATE USER
およびALTER USER
システム権限を持つユーザーとして、Autonomous Databaseインスタンスにログインします。 -
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"
-
トークン認証の場合:
CONNECT [hrapp]/@connect_string SHOW USER; --The output should be USER is "HRAPP " SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL; --The output should be "TOKEN_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認証済ユーザーでのデータベース・リンクの使用
データベース・リンクを使用すると、Oracle Cloud Infrastructureユーザーとして、あるAutonomous Databaseインスタンスから別のインスタンスに接続できます。
接続ユーザーまたは固定ユーザー・データベース・リンクを使用して、Autonomous DatabaseにOracle Cloud Infrastructure IAMユーザーとして接続できます。
現在のユーザー・データベース・リンクでは、Oracle Cloud Infrastructure IAMユーザーとしてのAutonomous Databaseへの接続はサポートされていません。
-
接続ユーザー・データベース・リンク: 接続ユーザー・データベース・リンクの場合、IAMユーザーは、データベース・リンクによって接続されたソース・データベースとターゲット・データベースの両方のスキーマにマップされている必要があります。データベース・パスワード・ベリファイアまたはIAMデータベース・トークンを使用して、接続ユーザー・データベース・リンクを使用できます。
-
固定ユーザー・データベース・リンク: 固定ユーザー・データベース・リンクは、データベース・ユーザーまたはIAMユーザーを使用して作成できます。IAMユーザーを固定ユーザー・データベース・リンクとして使用する場合、IAMユーザーはターゲット・データベースにスキーマ・マッピングを持っている必要があります。データベース・リンクのIAMユーザーは、パスワード・ベリファイアでのみ構成できます。
Autonomous DatabaseでのIdentity and Access Management (IAM)認証の無効化
Autonomous DatabaseのIAM外部認証ユーザー・アクセスを無効にするステップについて説明します。
ALTER SYSTEM
コマンドを使用して、Autonomous DatabaseインスタンスでIAMユーザー・アクセスを無効にできます: ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;
リソース(Autonomous Container DatabaseまたはAutonomous Database)からIAMへのアクセスも更新する場合は、IAMグループおよびそれらのリソースからのIAMへのアクセスを許可するように設定したポリシーを削除または変更する必要があります。
Identity and Access Management (IAM)認証でAutonomous Databaseツールを使用するためのノート
IAM認証が有効になっているAutonomous Databaseツールを使用するためのノートを提供します。
- Oracle APEXは、Autonomous Databaseを使用するIAMユーザーにはサポートされていません。Autonomous Databaseでの通常のデータベース・ユーザーの使用の詳細は、Oracle Application Express管理サービスへのアクセスを参照してください。
-
データベース・アクションは、Autonomous Databaseを使用するIAMユーザーにはサポートされていません。Autonomous Databaseでの通常のデータベース・ユーザーの使用の詳細は、データベース・アクションへのユーザー・アクセスの有効化を参照してください。