收集 AWS CloudTrail 記錄

支援的國家/地區:

本文說明如何設定 Google Security Operations 資訊提供,以收集 AWS CloudTrail 記錄,以及如何將記錄檔欄位對應至 Google SecOps 統一資料模型 (UDM) 欄位。

詳情請參閱 [將資料擷取至 Google SecOps][1]。

一般部署作業包含 AWS CloudTrail 和 Google SecOps 資訊動態饋給,兩者都設為將記錄傳送至 Google SecOps。您的部署作業可能與本文所述的典型部署作業不同。部署作業包含下列元件:

  • AWS CloudTrail:收集記錄的平台。

  • AWS S3:儲存記錄的平台。

  • Google SecOps 動態饋給:從 AWS S3 擷取記錄,並將記錄寫入 Google SecOps 的 Google SecOps 動態饋給。

  • Google SecOps:這個平台會保留及分析 AWS CloudTrail 的記錄。

擷取標籤會識別剖析器,該剖析器會將原始記錄資料正規化為具結構性的 UDM 格式。本文件中的資訊適用於具有 AWS_CLOUDTRAIL 攝入標籤的剖析器。

事前準備

請確認您已完成下列事前準備事項:

  • AWS 帳戶
  • 符合使用 AWS CloudTrail 的必要條件。詳情請參閱「AWS CloudTrail 設定」一文。
  • 部署架構中的所有系統都使用世界標準時間時區

透過 SQS 從 S3 擷取記錄的基本步驟

本節說明將 AWS CloudTrail 記錄擷取至 Google SecOps 執行個體的基本步驟。這些步驟說明如何使用 Amazon S3,並以 Amazon SQS 做為動態饋給來源類型。

設定 AWS CloudTrail 和 S3

在本程序中,您會設定將 AWS CloudTrail 記錄寫入 S3 bucket。

  1. 在 AWS 控制台中,搜尋 CloudTrail
  2. 按一下「建立路徑」
  3. 提供「Trail name」(追蹤記錄名稱)
  4. 選取「建立新的 S3 值區」。您也可以選擇使用現有的 S3 bucket。
  5. 提供 AWS KMS 別名的名稱,或選擇現有的 AWS KMS 金鑰
  6. 其他設定可保留預設值,然後點選「下一步」
  7. 選擇「活動類型」,視需要新增「資料事件」,然後按一下「下一步」
  8. 在「查看並建立」中檢查設定,然後按一下「建立追蹤記錄」
  9. 在 AWS 控制台中,搜尋「Amazon S3 Buckets」
  10. 按一下新建立的記錄檔 bucket,然後選取「AWSLogs」AWSLogs資料夾。然後按一下「Copy S3 URI」(複製 S3 URI),並儲存以供後續步驟使用。

設定標準 SQS 佇列和 SNS

如果您使用 SQS 佇列,則必須是標準佇列,而非 FIFO 佇列。

  1. 啟用 AWS CloudTrail,並設定使用新的或現有的追蹤將記錄檔傳送至 S3 bucket。
  2. 開啟 AWS SNS 控制台,然後建立新的標準主題。為其命名,例如CloudTrail-Notification-Topic。
  3. 使用 AWS SQS 控制台建立 SQS 佇列,例如 CloudTrail-Notification-Queue,並更新存取權政策,允許 SNS 主題 ARN 傳送訊息。如要瞭解如何建立 SQS 佇列,請參閱「開始使用 Amazon SQS」。

    SQS 政策程式碼片段範例:

    {
       "Version": "2012-10-17",
       "Id": `PolicyForSNS`,
       "Statement": [
          {
             "Sid": "AllowSNS",
             "Effect": "Allow",
             "Principal": { "Service": "sns.amazonaws.com" },
             "Action": "SQS:SendMessage",
             "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:CloudTrail-Notification-Queue",
             "Condition": {
             "ArnEquals": { "aws:SourceArn": "arn:aws:sns:REGION:ACCOUNT_ID:CloudTrail-Notification-Topic"}
             }
          }
       ]
    }
    
  4. 依序前往「SNS topic」(SNS 主題) →「Subscriptions」(訂閱項目) →「Create subscription」(建立訂閱項目),將「Protocol」(通訊協定) 設為「SQS」,「Endpoint」(端點) 設為 SQS 佇列的 ARN。

  5. CloudTrail 不會將新記錄推送至 SNS。如要啟用通知,可以使用管理事件的 CloudTrail 事件選取器,或將 CloudTrail 與 CloudWatch Logs 整合,然後建立 CloudWatch 事件規則,將 SNS 主題設為目標,藉此觸發通知。詳情請參閱「設定 S3 值區的通知」。

    事件模式範例:

    {
       "source": ["aws.s3"],
       "detail-type": ["AWS API Call via CloudTrail"],
       "detail": {
          "eventName": ["PutObject"],
          "requestParameters": {
             "bucketName": [`CloudTrail-Notification-Topic`]
          }
       }
    }
    
  6. 請確認 IAM 角色或政策允許 CloudWatch Events 發布至 SNS,並確認 SNS 允許將訊息傳送至 SQS。

設定 AWS IAM 使用者

設定 AWS IAM 使用者,Google SecOps 會使用該使用者存取 SQS 佇列 (如有使用) 和 S3 值區。

  1. 在 AWS 控制台中,搜尋 IAM
  2. 按一下「使用者」,然後在下一個畫面中按一下「建立使用者」
  3. 為使用者提供名稱 (例如 chronicle-feed-user),然後選取「Provide user access to the AWS Management Console」(提供使用者存取 AWS 管理主控台的權限)
  4. 選取「Attach existing policies directly」,然後視需要選取「AmazonS3ReadOnlyAccess」或「AmazonS3FullAccess」。如果 Google SecOps 應在讀取記錄後清除 S3 值區,以盡量減少 AWS S3 儲存空間費用,則會使用 AmazonS3FullAccess
  5. 建議您建立自訂政策,進一步限制存取權,只允許存取指定的 S3 值區,取代先前的步驟。按一下「建立政策」,然後按照 AWS 文件建立自訂政策。
  6. 套用政策時,請務必加入 sqs:DeleteMessage。 如果權限未附加至 SQS 佇列,Google SecOps 就無法刪除郵件。sqs:DeleteMessage 所有訊息都會累積在 AWS 端,導致 Google SecOps 重複嘗試轉移相同檔案,進而造成延遲。
  7. 按一下「下一步:代碼」
  8. 視需要新增標記,然後按一下「下一步:檢查」
  9. 檢查設定,然後按一下「建立使用者」
  10. 建立使用者後,請前往「Security Credentials」分頁,然後點選「Create Access Key」
  11. 選擇「CLI」,然後點選「下一步:代碼」
  12. 視需要新增標記,然後按一下「建立存取金鑰:檢查」
  13. 複製所建立使用者的「存取金鑰 ID」和「存取密鑰」,以供下一個步驟使用。

    如要找出 SubjectID,請按照下列步驟操作:

    1. 在 Google SecOps 中啟動 AWS CloudTrail 資訊提供設定。
    2. 檢查 AWS CloudTrail 記錄,找出與動態饋給設定嘗試相關的項目。
    3. 找出顯示數字使用者名稱的記錄項目。這個數字就是 SubjectID
    4. 在 AWS IAM 角色的信任政策中使用這個 SubjectID,授予必要權限。

設定 KMS 金鑰權限

如要解密伺服器端加密的 CloudTrail 日誌,必須使用 KMS 金鑰。AWS KMS 可為儲存在 Amazon S3 中的機密資料提供更完善的加密和安全防護。

  1. 在 AWS 控制台中,搜尋 Key Management Service (KMS)
  2. 按一下「建立金鑰」>「下一步」
  3. 為金鑰新增別名。視需要新增「Description」(說明)和「Tags」(標記)。按一下「下一步:檢閱」
  4. 檢查設定後,按一下「下一步」
  5. 選取應有權存取這項金鑰的重要使用者,然後按一下「完成」

設定動態饋給

在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:

  • 依序點選「SIEM 設定」>「動態饋給」>「新增」
  • 依序點選「內容中心」「內容包」「開始使用」

如何設定 AWS CloudTrail 動態饋給

  1. 按一下「Amazon Cloud Platform」套件。
  2. 在「AWS CloudTrail」記錄類型中,指定下列值:
  3. 為下列欄位指定值:

    • 來源類型:Amazon SQS V2
    • 佇列名稱:要從中讀取的 SQS 佇列名稱
    • S3 URI:bucket URI。
      • s3://your-log-bucket-name/
        • 請將 your-log-bucket-name 替換為 S3 值區的實際名稱。
    • 來源刪除選項:根據擷取偏好設定選取刪除選項。

    • 檔案存在時間上限:包含在過去天數內修改的檔案。預設值為 180 天。

    • SQS 佇列存取金鑰 ID:帳戶存取金鑰,為 20 個字元的英數字串。

    • SQS 佇列存取密鑰:帳戶存取金鑰,為 40 個字元的英數字串。

    進階選項

    • 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
    • 資產命名空間:與動態饋給相關聯的命名空間。
    • 擷取標籤:套用至這個動態饋給所有事件的標籤。
  4. 點選「建立動態饋給」

如要進一步瞭解如何為這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。

支援的 AWS CloudTrail 記錄類型

AWS CloudTrail 剖析器支援下列服務:

  • apigateway.amazonaws.com
  • appconfig.amazonaws.com
  • autoscaling.amazonaws.com
  • cloud9.amazonaws.com
  • cloudsearch.amazonaws.com
  • cloudshell.amazonaws.com
  • cloudtrail.amazonaws.com
  • config.amazonaws.com
  • devicefarm.amazonaws.com
  • ds.amazonaws.com
  • dynamodb.amazonaws.com
  • ec2-instance-connect.amazonaws.com
  • ec2.amazonaws.com
  • ecr-public.amazonaws.com
  • ecr.amazonaws.com
  • ecs.amazonaws.com
  • eks.amazonaws.com
  • elasticache.amazonaws.com
  • elasticloadbalancing.amazonaws.com
  • firehose.amazonaws.com
  • guardduty.amazonaws.com
  • health.amazonaws.com
  • iam.amazonaws.com
  • imagebuilder.amazonaws.com
  • kinesis.amazonaws.com
  • kinesisanalytics.amazonaws.com
  • kinesisvideo.amazonaws.com
  • kms.amazonaws.com
  • lambda.amazonaws.com
  • logs.amazonaws.com
  • macie2.amazonaws.com
  • monitoring.amazonaws.com
  • network-firewall.amazonaws.com
  • organizations.amazonaws.com
  • quicksight.amazonaws.com
  • ram.amazonaws.com
  • rds.amazonaws.com
  • resource-explorer-2.amazonaws.com
  • resource-groups.amazonaws.com
  • route53-recovery-readiness.amazonaws.com
  • route53.amazonaws.com
  • route53domains.amazonaws.com
  • route53resolver.amazonaws.com
  • s3-outposts.amazonaws.com
  • s3.amazonaws.com
  • s3express.amazonaws.com
  • secretsmanager.amazonaws.com
  • securityhub.amazonaws.com
  • ses.amazonaws.com
  • signin.amazonaws.com
  • ssm.amazonaws.com
  • sts.amazonaws.com
  • waf-regional.amazonaws.com
  • waf.amazonaws.com
  • wafv2.amazonaws.com

如要進一步瞭解欄位對應和 UDM 對應,請參閱 AWS Cloudtrail 欄位對應

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。