跳到主要內容

安全性與存取控制

一個安全且管理良好的系統對於任何企業級部署都至關重要。本節詳細介紹 AIGNE Hub 健全的安全架構,涵蓋身份驗證、憑證管理、存取控制和日誌記錄,以確保您 AI 營運的完整性和機密性。

下圖提供了 AIGNE Hub 內部安全層和元件的高層次概覽:

Security & Access

身份驗證

AIGNE Hub 與 Blocklet Server 的標準身份驗證機制整合,提供安全且統一的登入體驗。主要的身份驗證方法是透過 DID Connect,它利用去中心化身份實現無密碼且安全的存取。

DID Connect 整合

所有使用者身份驗證都由底層的 Blocklet Server 環境處理。當使用者登入 AIGNE Hub 時,他們會透過 DID Connect 錢包驗證器進行身份驗證,確保存取權限與經過驗證的去中心化身份綁定。這種方法消除了對傳統使用者名稱/密碼組合的需求,降低了憑證被盜的風險。

系統使用一個身份驗證儲存資料庫(auth.db)來安全地管理會話權杖。

關於如何對 AIGNE Hub 進行程式化的 API 請求驗證的詳細資訊,請參閱 API 身份驗證 文件。

加密憑證儲存

儲存來自上游 AI 供應商的 API 金鑰和其他敏感憑證是一個關鍵的安全問題。AIGNE Hub 透過對所有敏感憑證資料實施強大的欄位級加密來解決這個問題。

加密機制

當您新增供應商的憑證(例如 API 金鑰或秘密存取金鑰)時,憑證的敏感部分會在儲存到資料庫之前被加密。

  • 加密目標:僅加密敏感欄位。例如,在一個 access_key_pair 中,secret_access_key 會被加密,而 access_key_id 則以純文字形式保留以供識別。獨立的 api_key 值總是會被加密。
  • 技術:加密和解密操作由 @blocklet/sdk/lib/security 模組處理,該模組提供強大的加密功能。

以下來自 AiCredential 模型的程式碼片段說明了這個過程:

ai-credential.ts

typescript
// 加密憑證值(僅加密敏感欄位)
static encryptCredentialValue(credential: CredentialValue): CredentialValue {
  const encrypted: CredentialValue = { ...credential };

  // 加密敏感欄位
  if (credential.secret_access_key) {
    encrypted.secret_access_key = security.encrypt(credential.secret_access_key);
  }
  if (credential.api_key) {
    encrypted.api_key = security.encrypt(credential.api_key);
  }

  // access_key_id 保持純文字
  return encrypted;
}

// 解密憑證值
static decryptCredentialValue(encryptedCredential: CredentialValue): CredentialValue {
  const decrypted: CredentialValue = { ...encryptedCredential };

  // 解密敏感欄位
  if (encryptedCredential.secret_access_key) {
    decrypted.secret_access_key = security.decrypt(encryptedCredential.secret_access_key);
  }
  if (encryptedCredential.api_key) {
    decrypted.api_key = security.decrypt(encryptedCredential.api_key);
  }

  return decrypted;
}

憑證遮罩

為了防止敏感金鑰在使用者介面中意外洩露,AIGNE Hub 會自動對憑證值進行遮罩。僅顯示金鑰的前四個和後四個字元,其餘部分由星號取代。

基於角色的存取控制 (RBAC)

AIGNE Hub 採用一個簡單而有效的基於角色的存取控制 (RBAC) 模型來限制對管理功能的存取。角色繼承自 Blocklet Server 環境。

可用角色

角色權限
owner對 AIGNE Hub 實例擁有完整的管理存取權限。可以管理供應商、設定計費、查看分析以及管理所有設定。
adminowner 具有相同的權限。此角色也被視為具有完整管理功能存取權限的特權使用者。
guest標準使用者角色。可以使用 Hub 提供的 AI 服務(例如 Playground、API 存取),但無法存取管理設定。

對關鍵管理 API 端點的存取受到一個中介軟體的保護,該中介軟體驗證使用者的角色,確保只有具有 owneradmin 角色的使用者才能執行管理任務。

security.ts

typescript
import { auth } from '@blocklet/sdk/lib/middlewares';

// 確保使用者具有 'owner' 或 'admin' 角色的中介軟體
export const ensureAdmin = auth({ roles: ['owner', 'admin'] });

稽核日誌

全面的稽核日誌對於安全分析、故障排除和合規性至關重要。AIGNE Hub 維護系統內所有重要活動的詳細日誌。

記錄的活動

  • API 請求:所有對 AI 端點的傳入請求都會被記錄,包括使用者、請求的模型和使用指標。
  • 管理操作:在管理面板中執行的操作,例如新增或更新供應商、更改模型費率或修改設定,都會被記錄下來。
  • 憑證管理:與供應商憑證的建立、修改或刪除相關的事件。

這些日誌提供了使用情況和管理變更的完整歷史記錄,對於安全稽核和營運監控非常有價值。

總結

AIGNE Hub 採用多層次的安全模型設計,以保護您的 AI 閘道。透過結合基於 DID 的身份驗證、對憑證的強力加密、基於角色的存取控制以及詳細的稽核日誌,它為內部企業使用和面向公眾的服務提供了一個安全的基礎。

有關相關功能的更多資訊,請參閱以下部分: