一、背景
日志審計簡介
日志審計是信息安全審計功能的核心部分,是企業信息系統安全風險管控的重要組成部分。SLS的日志審計服務針對阿里雲的多種雲產品(Actiontrail、OSS、SLB、RDS、PolarDB、SAS、WAF等)提供了一站式的日志收集、存儲、查詢、可視化和告警能力,可用於支撐安全分析、合規審計等常見應用場景。
日志審計的特點:
- 中心化采集
- 跨賬號:支持將多個主賬號下的日志采集到一個主賬號下的Project中。
- 一鍵式采集:一次性配置采集策略后,即可完成跨賬號自動實時發現新資源(例如新創建的RDS、SLB、OSS Bucket實例等)並實時采集日志。
- 中心化存儲:將采集到的日志存儲到某個地域的中心化Project中,方便后續查詢分析、可視化與告警、二次開發等。
- 支持豐富的審計功能
- 繼承日志服務現有的所有功能,包括查詢分析、加工、報表、告警、導出等功能,支持審計場景下中心化的審計等需求。
- 生態開放對接:與開源軟件、阿里雲大數據產品、第三方SOC軟件無縫對接,充分發揮數據價值。
日志審計服務提供了統一的管理界面,便於用戶能夠便捷地進行雲產品日志的采集配置。該頁面提供了對於多種雲產品審計日志采集開關、存儲方式(區域化/中心化)、TTL、是否開啟威脅情報檢測等功能。
企業上雲后面臨的權限問題
眾所周知,主賬號擁有該賬號下所有資源的所有權,可以對該賬號下對所有資源進行配置修改。企業上雲后,特別是一個公司多個部門或者多個業務線進行開發的場景,如果都使用主賬號操作,風險是非常高的。而RAM則為企業解決上述問題,提供了一套簡單的統一分配權限、集中管控資源的安全資源控制體系。
企業上雲后,面臨的一些常見的權限管控問題:
- 存在多用戶協同操作,RAM用戶分工不同,各司其職。
- 雲賬號不想與其他RAM用戶共享雲賬號密鑰,密鑰泄露風險較大。
- RAM用戶對資源的訪問方式多種多樣,資源泄露風險高。
- 某些RAM用戶離開組織時,需要收回其對資源的訪問權限。
企業上雲后,可以通過創建、管理RAM用戶,並控制這些RAM用戶對資源的操作權限(權限最小分配原則),從而達到權限控制的目的。而日志審計服務作為雲上日志安全審計的控制中心,是雲上日志合規的配置入口,安全性至關重要。同樣的,我們也可以合理的利用RAM達到權限控制目的。
二、日志審計最佳實踐
為了利用RAM對日志審計服務進行權限控制,首先需要明確日志審計場景下涉及的資源:
- 日志審計APP,https://sls.console.aliyun.com/lognext/app/audit/audit_global_config可以查看。
- 存儲審計日志的Project下的資源,包括了Project、Logstore、索引、報表、數據加工任務等。Project分為兩類:
- 中心Project:slsaudit-center-${uid}-${region}
- 區域Project:slsaudit-region-${uid}-${region}
權限控制涉及的賬號類型及權限,按權限從大到小順序:
- 主賬號:
- 權限:天然擁有對APP、Proejct資源所有控制權限。
- 使用場景:不建議直接使用。
- 擁有日志審計寫權限的子賬號(首次開通):
- 權限:
- 系統權限策略:AliyunRAMFullAccess/AliyunSTSAssumeRoleAccess,用於自動創建審計需要的內置角色sls-audit-service-dispatch、sls-audit-service-monitor。
- 自定義日志審計寫最小權限:需要擁有日志審計APP的查看、配置權限,可以查看日志審計project下的數據。
- 使用場景:可以對日志審計進行首次開通及后續配置變更。
- 擁有日志審計寫權限的子賬號(非首次開通):
- 權限:
- 系統權限策略:AliyunRAMReadOnlyAccess/AliyunSTSAssumeRoleAccess。
- 自定義日志審計寫最小權限:需要擁有日志審計APP的查看、配置權限,可以查看日志審計project下的數據。
- 使用場景:日志審計開通后,可以對日志審計進行相關的配置變更。
- 擁有日志審計只讀權限的子賬號:
- 權限:
- 系統權限策略:AliyunRAMReadOnlyAccess/AliyunSTSAssumeRoleAccess。
- 自定義日志審計只讀最小權限:需要擁有日志審計APP的查看權限,可以查看日志審計project下的數據。
- 使用場景:適用於一般權限的開發者。僅可查看日志審計配置,及Project中的數據。
三、RAM子賬號日志審計操作的最小權限
1、自定義日志審計寫最小權限
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:GetApp", "log:CreateApp" ], "Resource": [ "acs:log:*:*:app/audit" ] }, { "Effect": "Allow", "Action": [ "log:Get*", "log:List*", "log:CreateJob", "log:UpdateJob", "log:CreateProject" ], "Resource": [ "acs:log:*:*:project/slsaudit-*" ] } ] }
2、自定義日志審計只讀最小權限
相對於“自定義日志審計寫最小權限”,去掉了"log:CreateApp" "log:CreateJob" "log:UpdateJob" "log:CreateProject"等權限。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:GetApp" ], "Resource": [ "acs:log:*:*:app/audit" ] }, { "Effect": "Allow", "Action": [ "log:Get*", "log:List*" ], "Resource": [ "acs:log:*:*:project/slsaudit-*" ] } ] }
四、操作步驟
1、創建第三部分中提到的權限
例如創建名為audit_test的權限策略。
2、按照第二部分的權限列表,對子賬號進行授權
3、登陸子賬號進行審計操作
五、通過權限否定控制
本文第三部分提到的“RAM子賬號日志審計操作的最小權限”,主要是正向出發,盡可能地限制子賬號權限。但是某些場景下,子賬號希望擁有SLS較大的權限,但是需要把日志審計APP配置權限排除在外,這時候就需要使用RAM的權限否定功能。詳細的權限配置如下:
{ "Version": "1", "Statement": [ { "Effect": "Deny", "Action": [ "log:CreateApp" ], "Resource": [ "acs:log:*:*:app/audit" ] }, { "Effect": "Deny", "Action": [ "log:CreateJob", "log:UpdateJob", "log:CreateProject" ], "Resource": [ "acs:log:*:*:project/slsaudit-*" ] } ] }
例如,授予了子賬號AliyunLogFullAccess權限,子賬號會擁有全部的SLS權限。但是想收回審計APP配置權限時,可以添加自定義否定策略。
本文為阿里雲原創內容,未經允許不得轉載。