SAS 資訊安全 (17)

教學目標

初步了解 SAS Viya 平台加密技術的基本概念。

重點概念

首先在數位憑證和私密金鑰主要是由 SAS Secrets Manager 所產生,主要有三種類型的憑證,分別為:

  1. Root Certificate Authority Certificate & Private Key:主要是憑證頒發機構的根憑證和私密金鑰,被使用於簽署憑證頒發機構的中繼憑證,預設有效期間為 10 年。
  2. Intermediate Certificate Authority Certificate & Private Key:主要是憑證頒發機構的中繼憑證和私密金鑰,被使用於簽署個別服務的伺服器憑證,預設有效期間為 7 年。
  3. Server Certificates & Private Keys:主要是個別服務的伺服器憑證和私密金鑰,被使用於啟用安全連線,預設有效期為 7 年,但若是產生微服務和網站應用程式的伺服器憑證,則預設有效期間為 1 年。

接著我們可以透過 SAS Environment Manager 直接設定 Encryption in-motion 相關設定,以利 SAS Secrets Manager 產生數位憑證和私密金鑰,主要包括四大領域,分別為:

  1. Database Traffic:主要控制不同網段資料庫伺服器的流量,包括 SAS Infrastructure Data Server 和 EP Data Connectors 的連結埠。
  2. SAS Data Traffic:主要控制傳輸資料至 SAS 伺服器的流量,包括 CAS Client、SAS Compute Server、SAS/CONNECT Server、SAS/CONNECT、Spawner、SAS Event Stream Processing Server 的連接埠。
  3. Server Control Traffic:主要控制伺服器叢集之間傳送的流量,包括 SAS Launcher Server 的連接埠。
  4. Web Traffic:主要控制網站應用程式之間任何網路的流量,包括 Apache HTTP Server、SAS Cache Locator、SAS Message Broker、CAS REST API、SAS Event Stream Processing 和 SAS Studio 的連接埠。

此外 SAS Secret Manager 必須啟用安全連線,無法手動停用安全連線。SAS Configuration Server 主要則是透過 vars.yml 中的 SECURE_CONSUL 和 DISABLE_CONSUL_HTTP_PORT 參數設定安全連線。SAS Workspace Server 和 SAS Object Spawner 主要是屬於 SAS Data Traffic,但是並不會使用安全連線,所以啟動時將會停用 AES 加密。至於部署 SAS Viya 時預設將啟用 Encryption in-motion 四大領域的設定,但是我們也能夠手動停用,主要在部署時先修改 sitedefault.yml 設定檔增加以下設定值。

1
2
3
4
5
6
7
config: 
application:
sas.security:
network.web.enabled: false
network.sasData.enabled: false
network.databaseTraffic.enabled: false
network.serverControl.enabled: false

再來我們主要會請求 SAS Secrets Manager 將會產生憑證和私密金鑰,或者透過特定 Token 驗證請求 REST API,SAS Secrets Manager 會將私密金鑰和簽署憑證儲存在快取中,接著將會取出確認憑證是否有效。其中驗證的 Token 主要會儲存在「/opt/sas/viya/config/etc/SASSecurityCertificateFramework/tokens/」路徑中,至於其預設有效期間為 7 年。若我們需要修改 Token 的有效期間,則能夠透過 SAS Environment Manager 進行設定

最後微服務的憑證,預設有效期間為 1 年,當到達 75% 的期間,也就是 9 個月時將會自動更新憑證,此時只要是更新憑證皆需要重新啟動微服務,若有問題發生請先確認憑證是否正確像是對應正確的主機名稱和憑證授權機構 (Certificate Authority,CA) ,以及確認 SAS Configuration Server 的「sas.vault.pki.reuseValidCertificate」屬性值是否為「false」代表不會重複使用有效的憑證。

相關資源