使用指令碼自動設定角色式存取控制

使用 Oracle Cloud Infrastructure 中的命令檔,自動設定 Role-Based Access Control (RBAC) 進行 IAM 認證。

您可以在 Cloud Shell 中執行命令檔,以快速產生 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. 產生 試算表增益集的 IAM 連線

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

    y 繼續。

  5. 選取要允許連線至資料庫執行處理之使用者的網域。在可用網域中輸入對應的號碼。

    Select a domain (1-3):
    此程序檔會建立下列項目:
    • 名為試算表增益集 RBAC 的使用者自訂屬性

    • 名為 Spreadsheet Add-in 的網域整合應用程式

    • 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 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 檔案,並在您的本位目錄資料夾中產生 JSON 格式的 IAM 連線檔案。
    Spreadsheet connection file: [$HOME/iam_connection_[DB_NAME]_[schema].json] created.

    附註:

    您可以複製 Connections 檔案名稱 (排除 $HOME/ 部分),然後在下載檔案時使用相同的名稱。如果命令檔仍在執行中,使用 Ctrl + C 複製可能會強制停止或中斷命令檔。

  10. 最後,命令檔會提示您是要重複步驟並建立另一個資料庫的連線檔案,或者結束命令檔。因此,您可以設定多個綱要的網域使用者存取權。

下載連線檔案

  1. 在 Cloud Shell 視窗中,按一下齒輪圖示以開啟 Cloud Shell 功能表,然後按一下下載

  2. 您可以貼上先前複製的相同檔案名稱,或為 JSON 格式的連線檔案指定新名稱。

  3. 按一下訊息視窗中的下載,即可下載連線檔案。

您可以使用試算表增益集中的連線檔案連線至您的資料庫,然後與其他使用者共用。

允許網域使用者存取

如果尚未登入,請登入 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 使用者角色