スクリプトを使用したロール・ベースのアクセス制御の自動設定

Oracle Cloud Infrastructureのスクリプトを使用して、IAM認証用にロールベースのアクセス制御(RBAC)を自動的に構成します。

クラウド・シェルでスクリプトを実行して、IAM 接続ファイルを迅速に生成できます。この自動化プロセスにより、詳細なRBAC構成の実行に必要な時間が大幅に短縮されます。管理ユーザーが接続ファイルを生成した後、それを組織全体で共有して、スプレッドシート・アドインからデータベースにサインインできるようにすることができます。

次の項では、次の方法について説明します。

  • スクリプトを使用した接続ファイルの生成

  • 接続ファイルのダウンロード

  • ドメイン・ユーザーに対するアクセスの許可

前提条件

RBAC構成にスクリプトを使用するには、次のものが必要です。

  • Oracle Cloud Infrastructureの管理アカウント

  • IAMドメイン

  • Autonomous AI Databaseインスタンスおよびスキーマ

スクリプトを使用した接続ファイルの生成

ノート:

スクリプトによって構成タスクが自動的に実行されますが、対話型スクリプトであるため、続行するにはユーザー入力が必要です。

Oracle Cloud Infrastructureコンソールにログインして(まだログインしていない場合)、次を実行します。

  1. リージョンの横にある「開発者ツール」アイコンから、Cloud Shellを開き、ターミナル・ウィンドウでスクリプト・ファイルを実行します。

    adb-create-cred.sh
  2. このスクリプトは、Oracleクラウド・アカウントに既存のAPIキーおよびフィンガープリントがあるかどうかを検出します。見つからない場合は、スクリプトによってキー・ペアが作成されます。

    You have an existing API Key and Fingerprint! Do you want to try to reuse them? (y/n): y

    yを押して、既存の鍵を再利用します。スクリプトにより、SQLおよびJSONファイルにネイティブ資格証明が作成されます。新しいAPIキーペアを生成する場合は、nを押します。

  3. スクリプトにより、データベースのAIプロファイルを生成できます。

    Proceed to generate the AI Profile script? (y/n): n

    この例では、nを押してAIプロファイルなしで続行します。

  4. Spreadsheet Add-insのIAM接続を生成します。

    Proceed to generate the Spreadsheet add-ins IAM connection? (y/n): y

    yを押して続行します。

  5. データベース・インスタンスへの接続を許可するユーザーを含むドメインを選択します。使用可能なドメイン内の対応する番号を入力します。

    Select a domain (1-3):
    スクリプトにより、次のものが作成されます。
    • Spreadsheet Add-ins RBACという名前のユーザー・カスタム属性

    • Spreadsheet Add-insという名前のドメイン統合アプリケーション

    • JWTカスタムクレーム

    このスクリプトは、JWTプロファイル情報を含むPL/SQLスクリプトcreate_jwt_profile.sqlも生成します。

    ノート:

    既存のユーザー属性およびカスタム要求を再利用したり、スクリプトを使用して新しいユーザー属性を作成できます。統合アプリケーションがすでに存在する場合は、新しいアプリケーションを作成できますが、アプリケーションで使用されている古い接続はすべて無効になります。

  6. Autonomous AI Databaseで、必要なスキーマの資格証明スクリプトを実行します。

    Proceed to run the Credential Scripts on your Autonomous Database? (y/n): y

    yを押して続行します。

  7. スキーマが存在するコンパートメントおよびデータベースを選択します。

    Select the number pertaining to your Compartment:
    ...
    Select the number pertaining to your Autonomous Database:
  8. You can use an existing Cloud Wallet or create a new one, if required. スクリプトが既存のCloud Walletを検出すると、再利用するかどうかを確認するプロンプトが表示されます。

    You have an existing Wallet File for [DB_NAME]. Do you want to reuse it? (y/n):

    ウォレットが存在しない場合は、新しいウォレットを設定できます。

  9. RBACの接続を許可するスキーマのログイン資格証明を指定します。

    Enter Autonomous Database username (ADMIN):
    Enter Autonomous Database password:
    スクリプトは、以前に作成したJWTプロファイル情報を含むSQLファイルを実行し、IAM Connectionsファイルをホーム・フォルダにJSON形式で生成します。
    Spreadsheet connection file: [$HOME/iam_connection_[DB_NAME]_[schema].json] created.

    ノート:

    $HOME/部分を除く接続ファイル名をコピーし、ファイルのダウンロード時に同じ名前を使用できます。スクリプトがまだ実行中の場合、[Ctrl]+[C]を使用してコピーすると、スクリプトを強制的に停止または中断する可能性があります。

  10. 最後に、ステップを繰り返し、別のデータベースの接続ファイルを作成するか、スクリプトを終了するかを確認するプロンプトが表示されます。したがって、複数のスキーマに対するドメイン・ユーザー・アクセスを設定できます。

接続ファイルのダウンロード

  1. クラウド・シェル・ウィンドウで、歯車アイコンをクリックしてクラウド・シェル・メニューを開き、「ダウンロード」をクリックします。

  2. 以前にコピーした同じファイル名を貼り付けるか、JSON形式で接続ファイルに新しい名前を指定できます。

  3. メッセージ・ウィンドウで「ダウンロード」をクリックして、「接続」ファイルをダウンロードします。

Spreadsheet Add-insConnectionsファイルを使用してデータベースに接続し、他のユーザーと共有できます。

ドメイン・ユーザーへのアクセスの許可

Oracle Cloud Infrastructureコンソールにログインして(まだログインしていない場合)、次を実行します。

  1. ハンバーガー・メニューをクリックし、「アイデンティティとセキュリティ」に移動して「ドメイン」を選択します。

  2. 「名前」で、「接続」ファイルを作成したドメイン(「デフォルト」など)をクリックします。

  3. 「ユーザー管理」タブに移動し、アクセスを許可するユーザー名をクリックします。

  4. ユーザー情報を変更するには、「ユーザーの編集」をクリックします。

  5. 「その他の情報」セクションまでスクロール・ダウンします。「スプレッドシート・アドインRBAC」フィールドに、SQL Developerと入力します。

  6. 「変更の保存」をクリックして、ロールをユーザーに追加します。

ORDS 26.2以降、ORDSロールはデフォルトで無効になっています。ORDSロールを使用するには、ロールを有効にする必要があります。たとえば:

BEGIN
    ords.set_property(
      p_key   => 'security.jwt.profile.allowed.roles',
      p_value => 'SQL Developer'
    );
    COMMIT;
  END;
/

ORDSユーザー・ロールの詳細は、「Oracle REST Data Servicesのユーザー・ロールについて」を参照してください。