資料庫作為企業的核心業務,其營運操作是安全管控的重點。Bastionhost企業雙擎版和國密版支援對MySQL、SQL Server、PostgreSQL類型的RDS和MySQL、PostgreSQL、PostgreSQL(相容Oracle)的PolarDB以及MySQL、SQL Server、PostgreSQL、Oracle類型的自建資料庫進行營運和審計。本文以具體案例介紹如何通過Bastionhost進行資料庫營運。
背景資訊
企業資產中,除了Windows伺服器、Linux伺服器外,還有大量的資料庫資產。資料庫作為核心業務資產包含大量敏感資訊,如何保證營運安全、防止越權訪問、違規操作等更是企業的重點關注需求。
資料庫業務比較多樣化,有雲原生資料庫如RDS、以及自建資料庫,並包含MySQL、SQL Server、PostgreSQL、Oracle多種類型,且很多大型企業資料庫業務也通常會分布在多跨帳號、跨VPC以及線下IDC或異構雲等混合情境下,那麼如何?對如上混合情境的統一營運管控、方便營運安全團隊的集中管理也是Bastionhost的重點。
阿里雲Bastionhost企業雙擎版或國密版支援Windows伺服器、Linux伺服器以及資料庫的營運管控,針對多種類型資料庫均可實現營運許可權劃分及事後審計追溯,最大化保證資料庫營運安全。另外還提供混合情境營運能力,通過網路域營運能力將跨帳號、線下IDC、異構雲混合情境下的資產進行統一平台接入,便於安全團隊的一站式管控。
同時,企業雙擎版和國密版具有可靠底層架構保障,雙引擎部署,雙活架構運行,對於資料庫的營運高要求操作提供更穩定的業務保障。詳細資料,請參見版本功能對比。
資料庫營運流程
使用Bastionhost進行資料庫營運時,管理員先通過Bastionhost對資產進行管理,以及營運人員進行許可權劃分。營運人員再通過用戶端、營運門戶等方式建立到Bastionhost的SSH隧道,並在Bastionhost管控下登入資料庫資產進行營運。
營運方式及步驟
用戶端營運
前提條件
-
已在Bastionhost中建立資料庫和使用者,並授權使用者資產和資產賬戶。具體操作,請參見建立資料庫、系統管理使用者及授權資產及資產賬戶。
下文以MySQL和本機使用者為例介紹。
-
已在本地系統安裝支援SSH隧道的資料庫營運工具。關於用戶端工具及版本推薦,請參見用戶端遠端連線工具及版本推薦。
下文以Windows系統+Navicat Premium工具、Linux系統+命令列兩種方式介紹營運流程。
步驟一:擷取Bastionhost營運地址和資料庫營運令牌
登入營運門戶。具體操作,請參見登入營運門戶。
在左側導覽列,單擊資料庫。
-
在資料庫頁面,定位到目標資料庫,在遠端連線列,將登入方式選擇為查看營運令牌,單擊登入。
-
在營運令牌對話方塊,單擊申請營運令牌(首次登入需要申請營運令牌)。
申請成功後,對話方塊顯示兩部分資訊:用戶端資料庫常規資訊配置項(包含資料庫地址、賬戶名稱、連接埠)和用戶端SSH隧道配置項(包含營運令牌、公網營運地址、私網營運地址、Bastionhost營運連接埠 SSH: 60022 / RDP: 63389、令牌到期時間)。請將營運令牌複製並填入用戶端密碼處。如需延長有效期間,可單擊 更新令牌 或 續期令牌。
登入營運門戶擷取營運令牌時,如果當前資料庫賬戶未在Bastionhost上託管,則需要在營運令牌對話方塊設定資料庫賬戶的基本資料後,才能擷取營運令牌。關於建立資料庫賬戶的更多資訊,請參見資料庫管理。
營運令牌需要在有效期間內使用,管理員可以在Bastionhost設定令牌有效期間。若開啟營運審批,則以管理員審批通過時設定的有效期間為準。
如果管理員設定允許營運員自主續期,則令牌到期前,營運員可以自主為令牌續期,到期之後需要重新申請令牌。若已開啟營運審批,則營運員不可進行續期。營運令牌配置修改後需要重新申請或更新令牌才可生效。
若令牌在有效期間內但營運串連失敗,可能為營運並發已達到上限,請聯絡管理員升配Bastionhost規格或釋放空閑串連;或管理員限制了該來源IP和時間段導致無法營運,請聯絡管理員釋放保留。
審計記錄的營運使用者資訊為申請令牌的使用者,與用戶端中所填使用者名稱和資產賬戶無關。
步驟二:通過用戶端工具或者命令列建立SSH隧道
下文以Navicat Premium工具和終端命令列工具介紹通過Bastionhost營運資料庫資產的流程。
Navicat Premium工具
-
開啟Navicat Premium工具,建立MySQL串連。
-
在SSH頁簽,勾選SSH隧道,並配置登入Bastionhost的相關資訊(步驟一擷取的用戶端SSH隧道配置項)。
關鍵配置項
說明
主機
Bastionhost營運地址,即填寫步驟一客戶端SSH隧道配置項中的公網或私網營運地址。
連接埠
BastionhostSSH營運連接埠。預設為60022。
使用者名稱
營運員登入Bastionhost的使用者名稱。
密碼
資料庫營運令牌,即填寫步驟一客戶端SSH隧道配置項中的營運令牌。
-
在常規頁簽,設定資料庫的相關資訊。
其中連接埠設定為
3306,串連名稱可自訂(如mysqltest)。關鍵配置項
說明
主機
資料庫連接地址。
使用者名稱
資料庫賬戶登入名稱。
密碼
-
如果管理員已在Bastionhost中託管了資料庫賬戶密碼,則密碼處可留空。
-
如果管理員未在Bastionhost中管理的資料庫賬戶密碼,則密碼處需填寫資料庫賬戶的登入密碼。
說明 建議您勾選儲存密碼,如果未勾選,用戶端可能會要求您填寫賬戶密碼,您可以將營運令牌填寫在密碼處。 -
-
-
在Navicat Premium工具中,雙擊新建立的資料庫連接,串連成功後進行營運。
終端命令列
-
開啟命令列工具,執行以下命令。
-
命令格式:
ssh -N -L <localport>:<databaseAddress>:<databasePort> <bastionusername>@<bastionAddress> -p <bastionPort> -
參數說明:
參數
說明
localport
建立隧道後自訂本地監聽的連接埠。請確認與本地已有監聽連接埠不存在衝突。
databaseAddress
需要營運的資料庫資產的地址。
databasePort
需要營運的資料庫資產的連接埠。
bastionusername
雲Bastionhost的使用者名稱。
bastionAddress
雲Bastionhost的營運地址。
bastionPort
雲BastionhostSSH營運的連接埠。預設為60022。
-
命令樣本:
ssh -N -L 33061:rm-******m020h.mysql.rds.aliyuncs.com:3306 bastuser@******-public.bastionhost.aliyuncs.com -p 60022
-
-
在密碼認證步驟,輸入資料庫營運令牌,然後按斷行符號鍵等待。
[root@xxx ~]# ssh -N -L 3 :rm-xxx0h.mysql.rds.aliyuncs.com:3306 doc01@uxxx-public.bastionhost.aliyuncs.com -p 60022 The authenticity of host '[uxxx public.bastionhost.aliyuncs.com]:60022 ([xxx.7.15]:60022)' can't be established. RSA key fingerprint is SHA256:xxx. RSA key fingerprint is MD5:9x:xx:xx:xx:b0:56:0b:bb:58:e6:46:ec. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[uxxx.bastionhost.aliyuncs.com]:60022,[xxx.15]:60022' (RSA) to the list of known hosts. doc01@uxxx ic.bastionhost.aliyuncs.com's password: -
另起一個命令列,確認本地自訂連接埠是否處於已監聽狀態,LISTEN表示已監聽。
[root@iZtxxx:jwtg98zqZ ~]# ss -an | grep 33 tcp ESTAB 0 0 127.0.0.1:48012 127.0.0.1:3xxx tcp LISTEN 0 128 [::1]:3… [::1]:* -
執行以下命令,成功串連資料庫後進行營運。
[root@iZ_xxx jwtg98zqZ lib]# mysql -h 127.0.0.1 -u roxxx -P 3xxx Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 3151064 Server version: 8.0.13 Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]>-
命令格式
mysql -h 127.0.0.1 -u <accountname> -P <localport> -
參數說明
-
accountname為營運的資料庫登入賬戶名。 -
localport為串連Bastionhost時自訂的本地監聽連接埠。
-
-
Web營運
Bastionhost支援通過營運門戶或Web控制台營運資料庫。下文以營運門戶為例資料營運流程。
前提條件
已在Bastionhost中建立資料庫和使用者,並授權使用者資產和資產賬戶。具體操作,請參見建立資料庫、系統管理使用者及授權資產及資產賬戶。
下文以MySQL和本機使用者為例介紹。
操作步驟
-
登入Bastionhost營運門戶。具體操作,請參見登入營運門戶。
-
在左側導覽列,單擊資料庫。
-
找到目標資料庫,並在遠端連線列,選擇Web遠端連線登入方式,單擊登入。
在彈出的登入對話方塊中,資料庫賬戶選擇 root,可勾選設為預設。
SSO單點登入營運
營運人員可通過Web頁面使用單點登入器自動調用本地用戶端以建立會話,從而省去單獨配置用戶端的步驟。下文以Bastionhost營運門戶為例,介紹如何使用SSO單點登入營運MySQL資料庫。
前提條件
-
已在Bastionhost中建立資料庫和使用者,並授權使用者資產和資產賬戶。具體操作,請參見建立資料庫、系統管理使用者及授權資產及資產賬戶。
下文以MySQL和本機使用者為例介紹。
-
已在本地系統安裝單點登入器支援的用戶端。關於支援的用戶端說明,請參見單點登入器支援的用戶端。
下文以Windows系統、Dbeaver 23為例介紹。
步驟一:擷取營運門戶地址
登入Bastionhost控制台,在頂部功能表列,選擇Bastionhost所在的地區。
在Bastionhost執行個體列表,定位到目標執行個體,單擊管理。
-
在左側導覽列,單擊概覽,擷取營運門戶地址。
在右側Bastionhost執行個體資訊面板中,可擷取公網營運門戶地址和私網營運門戶地址。
步驟二:在本地系統安裝單點登入器
-
在瀏覽器中,輸入擷取到的營運門戶地址。
-
在Alibaba Cloud Security Bastionhost登入頁面,輸入Bastionhost使用者名稱和密碼,單擊登入。
-
在營運門戶頁面,單擊單點登入器下載。
本文下載的是Windows系統適用的單點登入器。
-
下載完成後安裝成功即可(安裝後無需開啟)。
步驟三:設定營運終端
-
在營運門戶的左側導覽列,單擊終端設定。
-
在MySQL頁簽,選擇Dbeaver用戶端,並單擊儲存。
-
在彈出的usmsso.exe提示框中,單擊開啟,並按照頁面指引配置營運資料庫的用戶端。
步驟四:營運資料庫
-
在營運門戶的左側導覽列,單擊資料庫。
-
找到目標資料庫,並在遠端連線列,單擊下拉式清單,將登入方式設定為本地客戶端登入,單擊登入。
資料庫營運審計
營運人員通過Bastionhost進入資料庫資產之後,Bastionhost可對營運人員的操作進行審計,包括會話審計、即時監控、動作記錄等,實現事後追溯。
登入Bastionhost控制台,在頂部功能表列,選擇Bastionhost所在的地區。
在Bastionhost執行個體列表,定位到目標執行個體,單擊管理。
在左側導覽列,選擇。
-
在會話審計頁面,查看會話記錄。