スクリプトを使用したロール・ベースのアクセス制御の自動設定
Oracle Cloud Infrastructureのスクリプトを使用して、IAM認証用にロールベースのアクセス制御(RBAC)を自動的に構成します。
クラウド・シェルでスクリプトを実行して、IAM 接続ファイルを迅速に生成できます。この自動化プロセスにより、詳細なRBAC構成の実行に必要な時間が大幅に短縮されます。管理ユーザーが接続ファイルを生成した後、それを組織全体で共有して、スプレッドシート・アドインからデータベースにサインインできるようにすることができます。
次の項では、次の方法について説明します。
-
スクリプトを使用した接続ファイルの生成
-
接続ファイルのダウンロード
-
ドメイン・ユーザーに対するアクセスの許可
前提条件
RBAC構成にスクリプトを使用するには、次のものが必要です。
-
Oracle Cloud Infrastructureの管理アカウント
-
IAMドメイン
-
Autonomous AI Databaseインスタンスおよびスキーマ
スクリプトを使用した接続ファイルの生成
ノート:
スクリプトによって構成タスクが自動的に実行されますが、対話型スクリプトであるため、続行するにはユーザー入力が必要です。
Oracle Cloud Infrastructureコンソールにログインして(まだログインしていない場合)、次を実行します。
-
リージョンの横にある「開発者ツール」アイコンから、Cloud Shellを開き、ターミナル・ウィンドウでスクリプト・ファイルを実行します。
adb-create-cred.sh -
このスクリプトは、Oracleクラウド・アカウントに既存のAPIキーおよびフィンガープリントがあるかどうかを検出します。見つからない場合は、スクリプトによってキー・ペアが作成されます。
You have an existing API Key and Fingerprint! Do you want to try to reuse them? (y/n): yyを押して、既存の鍵を再利用します。スクリプトにより、SQLおよびJSONファイルにネイティブ資格証明が作成されます。新しいAPIキーペアを生成する場合は、nを押します。
-
スクリプトにより、データベースのAIプロファイルを生成できます。
Proceed to generate the AI Profile script? (y/n): nこの例では、nを押してAIプロファイルなしで続行します。
-
Spreadsheet Add-insのIAM接続を生成します。
Proceed to generate the Spreadsheet add-ins IAM connection? (y/n): yyを押して続行します。
-
データベース・インスタンスへの接続を許可するユーザーを含むドメインを選択します。使用可能なドメイン内の対応する番号を入力します。
Select a domain (1-3):スクリプトにより、次のものが作成されます。-
Spreadsheet Add-ins RBACという名前のユーザー・カスタム属性
-
Spreadsheet Add-insという名前のドメイン統合アプリケーション
-
JWTカスタムクレーム
このスクリプトは、JWTプロファイル情報を含むPL/SQLスクリプト
create_jwt_profile.sqlも生成します。ノート:
既存のユーザー属性およびカスタム要求を再利用したり、スクリプトを使用して新しいユーザー属性を作成できます。統合アプリケーションがすでに存在する場合は、新しいアプリケーションを作成できますが、アプリケーションで使用されている古い接続はすべて無効になります。
-
-
Autonomous AI Databaseで、必要なスキーマの資格証明スクリプトを実行します。
Proceed to run the Credential Scripts on your Autonomous Database? (y/n): yyを押して続行します。
-
スキーマが存在するコンパートメントおよびデータベースを選択します。
Select the number pertaining to your Compartment: ... Select the number pertaining to your Autonomous Database: -
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):ウォレットが存在しない場合は、新しいウォレットを設定できます。
-
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]を使用してコピーすると、スクリプトを強制的に停止または中断する可能性があります。 -
最後に、ステップを繰り返し、別のデータベースの接続ファイルを作成するか、スクリプトを終了するかを確認するプロンプトが表示されます。したがって、複数のスキーマに対するドメイン・ユーザー・アクセスを設定できます。
接続ファイルのダウンロード
-
クラウド・シェル・ウィンドウで、歯車アイコンをクリックしてクラウド・シェル・メニューを開き、「ダウンロード」をクリックします。
-
以前にコピーした同じファイル名を貼り付けるか、JSON形式で接続ファイルに新しい名前を指定できます。
-
メッセージ・ウィンドウで「ダウンロード」をクリックして、「接続」ファイルをダウンロードします。
Spreadsheet Add-insのConnectionsファイルを使用してデータベースに接続し、他のユーザーと共有できます。
ドメイン・ユーザーへのアクセスの許可
Oracle Cloud Infrastructureコンソールにログインして(まだログインしていない場合)、次を実行します。
-
ハンバーガー・メニューをクリックし、「アイデンティティとセキュリティ」に移動して「ドメイン」を選択します。
-
「名前」で、「接続」ファイルを作成したドメイン(「デフォルト」など)をクリックします。
-
「ユーザー管理」タブに移動し、アクセスを許可するユーザー名をクリックします。
-
ユーザー情報を変更するには、「ユーザーの編集」をクリックします。
-
「その他の情報」セクションまでスクロール・ダウンします。「スプレッドシート・アドインRBAC」フィールドに、
SQL Developerと入力します。 -
「変更の保存」をクリックして、ロールをユーザーに追加します。
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のユーザー・ロールについて」を参照してください。
親トピック: IAM認証でのロールベースのアクセス制御の使用