IAMプロキシ認証の構成
プロキシ認証により、IAMユーザーは、アプリケーションのメンテナンスなどのタスクのためにデータベース・スキーマにプロキシできます。
IAMプロキシ認証の構成について
IAMユーザーは、プロキシ認証を使用してOracle DBaaSに接続できます。
プロキシ認証は、通常、実際のユーザーを認証し、アプリケーションを管理するためにスキーマ権限およびロールを持つデータベース・スキーマの使用を認可するために使用されます。アプリケーション・スキーマ・パスワードの共有などの代替方法は、安全性が低いと考えられ、実際にどのユーザーがアクションを実行したかを監査できません。
ユース・ケースとしては、アプリケーション・データベース管理者である名前付きIAMユーザーが資格証明を使用して認証し、データベース・スキーマ・ユーザー(hrappなど)にプロキシするような環境が考えられます。この認証により、IAM管理者は、アプリケーションのメンテナンスを実行するためにhrapp権限およびロールをユーザーhrappとして使用でき、認証にはIAM資格証明を使用できます。アプリケーション・データベース管理者は、データベースにサインインし、アプリケーション・スキーマにプロキシしてこのスキーマを管理できます。
パスワード認証とトークン認証の両方の方法にプロキシ認証を構成できます。
IAMユーザーのプロキシ認証を構成します
IAMユーザーにプロキシ認証を構成するには、IAMユーザーにすでにグローバル・スキーマへのマッピング(排他的マッピングまたは共有マッピング)がある必要があります。IAMユーザーのプロキシ先の個別のデータベース・スキーマが使用可能である必要もあります。
このタイプのユーザーがあることを確認したら、IAMユーザーにプロキシを許可するようにデータベース・ユーザーを変更します。
-
ALTER USERシステム権限を持つユーザーとして、Autonomous AI 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_stringIAMユーザー・プロキシ認証の確認
パスワード認証方法とトークン認証方法の両方についてIAMユーザー・プロキシ構成を検証できます。
-
CREATE USERおよびALTER USERシステム権限を持つユーザーとして、Autonomous AI Databaseインスタンスにログインします。 -
IAMユーザーとして接続し、
SHOW USERおよびSELECT SYS_CONTEXTコマンドを実行します。たとえば、データベース・ユーザー
hrappにプロキシされているときに、IAMユーザーpeterfitchのプロキシ認証を確認するとします。IAMユーザーを使用してデータベースをプロキシした後、次の問合せを実行します。データベースの認証およびアクセス方法に応じて、これらの問合せに対して異なる値が取得されます。-
パスワード認証の場合、IAMユーザーがデフォルト・ドメインにあると仮定すると、次のようになります。
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_PROXY" 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" -
トークン認証の場合、デフォルト以外のドメインにあるユーザーに対し、
sales_domain: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_PROXY" 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"
-