本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從自訂來源收集資料
Amazon 安全湖可以從第三方自訂來源收集日誌和事件。對於每個自訂來源,安全湖都會處理下列事項:
-
為 Amazon S3 儲存貯體中的來源提供唯一的前置詞。
-
在 AWS Identity and Access Management (IAM) 中建立角色,以允許自訂來源將資料寫入資料湖。此角色的權限界限是由名為的 AWS 受管理策略所設定AmazonSecurityLakePermissionsBoundary。
-
建立 AWS Lake Formation 表格以組織來源寫入安全湖的物件。
-
設定 AWS Glue 爬行者程式來分割來源資料。爬行者程式會 AWS Glue Data Catalog 以表格填入。它還會自動發現新的源數據並提取模式定義。
若要將自訂來源新增至安全湖泊,它必須符合下列需求:
-
目標 — 自訂來源必須能夠將資料寫入 Security Lake,做為指派給來源的前置詞下方的一組 S3 物件。對於包含多種資料類別的來源,您應該將每個唯一的開放網路安全架構架構 (OCSF) 事件類
別提供為單獨的來源。Security Lake 會建立 IAM 角色,允許自訂來源寫入 S3 儲存貯體中的指定位置。 注意
使用 OCSF 驗證工具
來驗證自訂來源是否與 OCSF Schema 1.1
相容。 格式 — 從自訂來源收集的每個 S3 物件都應該格式化為 Apache 實體檔案。
結構描述 — 相同的 OCSF 事件類別應套用至 Parquet 格式化物件內的每個記錄。
擷取自訂來源的最佳做法
為了提高資料處理和查詢的效率,我們建議您在將自訂來源新增至 Security Lake 時遵循以下最佳做法:
- 分割
-
物件應依來源位置、 AWS 區域 AWS 帳戶、和日期進行分割。分割區資料路徑的格式為
。bucket-name
/source-location
/region=region
/accountId=accountID
/eventDay=YYYYMMDD
範例分割區是
aws-security-data-lake-
。us-west-2-lake-uid
/source-location
/region=us-west-2
/accountId=123456789012
/eventDay=20230428
/-
bucket-name
— 安全湖存放自訂來源資料的 Amazon S3 儲存貯體的名稱。 -
source-location
— S3 儲存貯體中自訂來源的前置詞。Security Lake 會將指定來源的所有 S3 物件存放在此前置詞下,且前置詞對於指定來源而言是唯一的。 -
region
— AWS 區域 將資料寫入的位置。 -
accountId
— AWS 帳戶 來源磁碟分割中的記錄與之相關的識別碼。 -
eventDay
— 事件發生的日期,格式為八個字元字串 (YYYYMMDD
)。
-
- 物體大小和速率
-
寫入安全湖的物件應該緩衝記錄 5 分鐘。如果緩衝區期間包含太多資料而無法有效查詢,只要這些檔案的平均大小維持在 256 MB 以下,自訂來源就可以在 5 分鐘的視窗中寫入多筆記錄。輸送量低的自訂來源可以每 5 分鐘寫入較小的物件,以維持 5 分鐘的擷取延遲,並可長時間緩衝記錄。
- 鑲木地板
-
安全湖支持的版本 1.x 和 2. x 的鑲木地板。資料頁面大小應限制為 1 MB (未壓縮)。資料列群組大小不得超過 256 MB (壓縮)。對於在實木地板對象中進行壓縮,zstandard 是首選。
- 排序
-
在每個 Parquet 格式的對象中,記錄應按時間進行排序,以減少查詢數據的成本。
新增自訂來源的先決條件
新增自訂來源時,Security Lake 會建立 IAM 角色,以允許來源將資料寫入資料湖中的正確位置。角色的名稱遵循格式AmazonSecurityLake-Provider-{name of the custom source}-{region}
,其 AWS 區域 中region
是您要新增自訂來源的格式。Security Lake 會將原則附加至允許存取資料湖的角色。如果您已使用客戶管理的 AWS KMS 金鑰加密資料湖,Security Lake 也會將原則與kms:Decrypt
和kms:GenerateDataKey
權限附加至該角色。此角色的權限界限是由名為的 AWS 受管理策略所設定AmazonSecurityLakePermissionsBoundary。
驗證許可
在新增自訂來源之前,請確認您具有執行下列動作的權限。
若要驗證您的許可,請使用 IAM 檢閱附加到 IAM 身分的 IAM 政策。然後,將這些策略中的資訊與下列新增自訂來源必須允許您執行的動作清單進行比較。
-
glue:CreateCrawler
-
glue:CreateDatabase
-
glue:CreateTable
-
glue:StopCrawlerSchedule
-
iam:GetRole
-
iam:PutRolePolicy
-
iam:DeleteRolePolicy
-
iam:PassRole
-
lakeformation:RegisterResource
-
lakeformation:GrantPermissions
-
s3:ListBucket
-
s3:PutObject
這些動作可讓您從自訂來源收集日誌和事件、將日誌和事件傳送到正確的 AWS Glue 資料庫和表格,然後將其存放在 Amazon S3 中。
如果您使用 AWS KMS 金鑰進行資料湖的伺服器端加密,您還需要kms:CreateGrant
kms:DescribeKey
、和的權限kms:GenerateDataKey
。
重要
如果您打算使用 Security Lake 主控台新增自訂來源,您可以略過下一個步驟並繼續執行新增自訂來源。Security Lake 主控台提供簡化的入門程序,並建立所有必要的 IAM 角色,或代表您使用現有的角色。
如果您打算使用 Security Lake API 或 AWS CLI 新增自訂來源,請繼續下一步建立 IAM 角色,以允許對 Security Lake 值區位置的寫入存取權。
建立 IAM 角色以允許寫入安全湖值區位置 (API 和 AWS CLI唯一步驟)
如果您使用 Security Lake API 或 AWS CLI 新增自訂來源,請新增此 IAM 角色以授 AWS Glue 予檢索自訂來源資料和識別資料中分割區的權限。這些分割區是組織資料以及在「資料目錄」中建立和更新表格所必需的。
建立此 IAM 角色後,您需要角色的 Amazon 資源名稱 (ARN) 才能新增自訂來源。
您必須附加受arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole
AWS
管理的策略。
若要授與必要的權限,您還必須在角色中建立並內嵌下列內嵌原則,以允許 AWS Glue 編目程式 從自訂來源讀取資料檔案,並在「資 AWS Glue 料目錄」中建立/更新表格。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3WriteRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::{{bucketName}}/*" ] } ] }
附加以下信任策略以允許 AWS 帳戶 使用它,它可以根據外部 ID 承擔角色:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
如果您要新增自訂來源的區域中的 S3 儲存貯體使用客戶管理加密 AWS KMS key,則您還必須將以下政策附加到該角色和 KMS 金鑰政策:
{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" "kms:Decrypt" ], "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::{{
name of S3 bucket created by Security Lake
}" ] } }, "Resource": [ "{{ARN of customer managed key}}" ] }
新增自訂來源
建立 IAM 角色以呼叫 AWS Glue 爬行者程式之後,請依照下列步驟在 Security Lake 中新增自訂來源。
保持自訂來源資料的更新 AWS Glue
在安全湖中新增自訂來源之後,安全湖會建立 AWS Glue 爬行者程式。爬行者程式會連線至您的自訂來源、決定資料結構,然後將 AWS Glue 資料目錄填入表格。
我們建議您手動執行爬蟲程式,讓您的自訂來源結構描述保持在最新狀態,並在 Athena 和其他查詢服務中維護查詢功能。具體而言,如果自訂來源的輸入資料集中發生下列任一變更,您應該執行爬行者程式:
資料集具有一或多個新的頂層欄。
資料集在具有資料
struct
類型的資料行中有一個或多個新欄位。
如需執行爬行者程式的指示,請參閱AWS Glue 開發人員指南中的排程 AWS Glue 爬蟲 (Crawler)。
安全湖無法刪除或更新您帳戶中現有的檢索器。如果您刪除自訂來源,建議您在 future 建立具有相同名稱的自訂來源時刪除關聯的爬行者程式。
刪除自訂來源
刪除自訂來源以停止將資料從來源傳送至安全湖。