

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS來源版本 1 (OCSF 1.0.0-rc.2) 的 Security Lake 查詢
<a name="subscriber-query-examples1"></a>

下一節提供從 Security Lake 查詢資料的指引，並包含AWS一些來源版本 1 原生支援AWS來源的查詢範例。這些查詢旨在擷取特定 中的資料AWS 區域。這些範例使用 us-east-1 （美國東部 （維吉尼亞北部）)。此外，範例查詢使用 `LIMIT 25` 參數，最多可傳回 25 筆記錄。您可以省略此參數，或根據您的偏好設定進行調整。如需更多範例，請參閱 [Amazon Security Lake OCSF 查詢 GitHub 目錄](https://github.com/awslabs/aws-security-analytics-bootstrap/tree/main/AWSSecurityAnalyticsBootstrap/amazon_security_lake_queries)。

下列查詢包含使用 的時間型篩選條件`eventDay`，以確保您的查詢位於設定的保留設定內。如需詳細資訊，請參閱[Querying data with retention settings](subscriber-query-examples.md#security-lake-retention-setting-query-data)。

例如，如果超過 60 天的資料已過期，您的查詢應包含時間限制，以防止存取過期的資料。對於 60 天的保留期，請在查詢中包含下列子句：

```
...
WHERE eventDay BETWEEN cast(date_format(current_date - INTERVAL '59' day, '%Y%m%d') AS varchar) 
                   AND cast(date_format(current_date, '%Y%m%d') AS varchar)
...
```

此子句使用 59 天 （而不是 60 天），以避免 Amazon S3 和 Apache Iceberg 之間的任何資料或時間重疊。

## 日誌來源資料表
<a name="log-source-table"></a>

當您查詢 Security Lake 資料時，必須包含資料所在的 Lake Formation 資料表名稱。

```
SELECT *
   FROM amazon_security_lake_glue_db_{{DB_Region}}.amazon_security_lake_table_{{DB_Region}}_{{SECURITY_LAKE_TABLE}}
   WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar)
   LIMIT {{25}}
```

日誌來源資料表的常見值包括下列項目：
+ `cloud_trail_mgmt_1_0` –AWS CloudTrail管理事件
+ `lambda_execution_1_0` – Lambda 的 CloudTrail 資料事件
+ `s3_data_1_0` – S3 的 CloudTrail 資料事件
+ `route53_1_0` – Amazon Route 53 解析程式查詢日誌
+ `sh_findings_1_0` –AWS Security Hub CSPM尋找
+ `vpc_flow_1_0` – Amazon Virtual Private Cloud (Amazon VPC) 流程日誌

**範例：`sh_findings_1_0`us-east-1 區域資料表中的所有 Security Hub CSPM 調查結果**

```
SELECT *
   FROM amazon_security_lake_glue_db_{{us_east_1}}.amazon_security_lake_table_{{us_east_1}}_{{sh_findings_1_0}}
   WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar)
   LIMIT {{25}}
```

## 資料庫區域
<a name="database-region"></a>

當您查詢 Security Lake 資料時，您必須包含要從中查詢資料的資料庫區域名稱。如需目前可使用 Security Lake 的資料庫區域完整清單，請參閱 [Amazon Security Lake 端點](https://docs.aws.amazon.com/general/latest/gr/securitylake.html)。

**範例：列出來源 IP AWS CloudTrail的活動**

下列範例列出來自來源 IP {{192.0.2.1}} 的所有 CloudTrail 活動，這些活動是在 {{20230301}} (2023 年 3 月 1 日） 之後記錄在 {{us-east-1}} 的資料表 {{cloud\_trail\_mgmt\_1\_0}} 中`DB_Region`。

```
SELECT *
    FROM amazon_security_lake_glue_db_{{us_east_1}}.amazon_security_lake_table_{{us_east_1}}_{{cloud_trail_mgmt_1_0}}
    WHERE eventDay > '20230301' AND src_endpoint.ip = '192.0.2.1'
    ORDER BY time desc
    LIMIT {{25}}
```

## 分割區日期
<a name="partition-date"></a>

透過分割資料，您可以限制每個查詢掃描的資料量，從而改善效能並降低成本。Security Lake 透過 `eventDay`、 `region`和 `accountid` 參數實作分割。 `eventDay`分割區使用 格式 `YYYYMMDD`。

這是使用 `eventDay`分割區的範例查詢：

```
SELECT *
    FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0
    WHERE eventDay > '{{20230301}}'
    AND src_endpoint.ip = '192.0.2.1'
    ORDER BY time desc
```

的常見值`eventDay`包括下列項目：

**過去 1 年發生的事件**  
`> cast(date_format(current_timestamp - INTERVAL '1' year, '%Y%m%d%H') as varchar)`

**過去 1 個月內發生的事件**  
`> cast(date_format(current_timestamp - INTERVAL '1' month, '%Y%m%d%H') as varchar)`

**過去 30 天內發生的事件**  
`> cast(date_format(current_timestamp - INTERVAL '30' day, '%Y%m%d%H') as varchar)`

**過去 12 小時內發生的事件**  
`> cast(date_format(current_timestamp - INTERVAL '12' hour, '%Y%m%d%H') as varchar)`

**過去 5 分鐘內發生的事件**  
`> cast(date_format(current_timestamp - INTERVAL '5' minute, '%Y%m%d%H') as varchar)`

**7–14 天前發生的事件**  
`BETWEEN cast(date_format(current_timestamp - INTERVAL '14' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar)`

**在特定日期當天或之後發生的事件**  
`>= '20230301'`

**範例：資料表中 `192.0.2.1` 2023 年 3 月 1 日或之後來源 IP 的所有 CloudTrail 活動清單 `cloud_trail_mgmt_1_0`**

```
SELECT *
    FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0
    WHERE eventDay >= '{{20230301}}'
    AND src_endpoint.ip = '192.0.2.1'
    ORDER BY time desc
    LIMIT 25
```

**範例：資料表`192.0.2.1`中過去 30 天來自來源 IP 的所有 CloudTrail 活動清單 `cloud_trail_mgmt_1_0`**

```
SELECT *
    FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0
    WHERE eventDay > cast(date_format(current_timestamp - INTERVAL '{{30}}' day, '%Y%m%d%H') as varchar) 
    AND src_endpoint.ip = '192.0.2.1'
    ORDER BY time desc
    LIMIT 25
```