

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 를 사용하여 CloudTrail Lake 쿼리 실행 및 관리 AWS CLI
<a name="lake-queries-cli"></a>

를 사용하여 CloudTrail Lake 쿼리 AWS CLI 를 실행하고 관리할 수 있습니다. 를 사용할 때는 명령이 프로파일에 대해 AWS 리전 구성된에서 실행된다는 점을 AWS CLI기억하세요. 다른 리전에서 명령을 실행하려는 경우 프로필의 기본 리전을 변경하거나 명령에 **--region** 파라미터를 사용합니다.

## CloudTrail Lake 쿼리에 대해 사용 가능한 명령
<a name="lake-queries-cli-commands"></a>

CloudTrail Lake에서 쿼리를 실행하고 관리하기 위한 명령은 다음과 같습니다.
+ `start-query`: 쿼리를 실행합니다.
+ `describe-query`: 쿼리에 대한 메타데이터를 반환합니다.
+ `generate-query`에서는 영어 프롬프트에서 쿼리를 생성합니다. 자세한 내용은 [자연어 프롬프트로 CloudTrail Lake 쿼리 생성](lake-query-generator.md) 단원을 참조하십시오.
+ `get-query-results`: 지정된 쿼리 ID에 대한 쿼리 결과를 반환합니다.
+ `list-queries`: 지정된 이벤트 데이터 저장소에 대한 목록 쿼리를 가져옵니다.
+ `cancel-query`: 실행 중인 쿼리를 취소합니다.

CloudTrail Lake 이벤트 데이터 저장소에 사용할 수 있는 명령 목록은 [이벤트 데이터 저장소에 대해 사용 가능한 명령](lake-eds-cli.md#lake-eds-cli-commands) 섹션을 참조하세요.

CloudTrail Lake 대시보드에 사용할 수 있는 명령 목록은 [대시보드에 사용 가능한 명령](lake-dashboard-cli.md#lake-dashboard-cli-commands) 섹션을 참조하세요.

CloudTrail Lake 통합에 사용할 수 있는 명령 목록은 [CloudTrail Lake 통합에 대해 사용 가능한 명령](lake-integrations-cli.md#lake-integrations-cli-commands) 섹션을 참조하세요.

## 를 사용하여 자연어 프롬프트에서 쿼리 생성 AWS CLI
<a name="lake-cli-generate-query"></a>

`generate-query` 명령을 실행하여 영어 프롬프트에서 쿼리를 생성합니다. `--event-data-stores`에 대해 쿼리하려는 이벤트 데이터 스토어의 ARN(또는 ARN의 ID 접미사)를 제공합니다. 이벤트 데이터 스토어는 하나만 지정할 수 있습니다. `--prompt`의 경우 프롬프트를 영어로 제공합니다.

```
aws cloudtrail generate-query 
--event-data-stores arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-ee54-4813-92d5-999aeEXAMPLE \
--prompt "Show me all console login events for the past week?"
```

성공하면 명령은 SQL 문을 출력하고 `start-query` 명령을 통해 이벤트 데이터 스토어에 대해 쿼리를 실행하는 데 사용할 `QueryAlias`를 제공합니다.

```
{
  "QueryStatement": "SELECT * FROM $EDS_ID WHERE eventname = 'ConsoleLogin' AND eventtime >= timestamp '2024-09-16 00:00:00' AND eventtime <= timestamp '2024-09-23 00:00:00' AND eventSource = 'signin.amazonaws.com'",
  "QueryAlias": "AWSCloudTrail-UUID"
}
```

## 를 사용하여 쿼리 시작 AWS CLI
<a name="lake-cli-start-query"></a>

다음 예제 AWS CLI **start-query** 명령은 쿼리 문에서 ID로 지정된 이벤트 데이터 스토어에서 쿼리를 실행하고 쿼리 결과를 지정된 S3 버킷으로 전달합니다. `--query-statement` 파라미터는 작은 따옴표로 묶인 SQL 쿼리를 제공합니다. 선택적 파라미터에는 쿼리 결과를 지정된 S3 버킷에 전달하기 위해 `--delivery-s3-uri`가 포함됩니다. CloudTrail Lake에서 사용할 수 있는 쿼리 언어에 대한 자세한 내용은 [CloudTrail Lake SQL 제약](query-limitations.md)의 내용을 참조하세요.

```
aws cloudtrail start-query
--query-statement 'SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10'
--delivery-s3-uri "s3://aws-cloudtrail-lake-query-results-123456789012-us-east-1"
```

응답은 `QueryId` 문자열이 됩니다. 쿼리 상태를 가져오려면 **start-query**에 의해 반환한 값 `QueryId`을(를) 사용하여 **describe-query**을(를) 실행합니다. 쿼리가 성공하면 **get-query-results**을(를) 실행하여 결과를 가져옵니다.

**출력**

```
{
    "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE"
}
```

**참고**  
한 시간 이상 실행되는 쿼리는 시간이 초과될 수 있습니다. 쿼리가 시간 초과되기 전에 처리된 부분적인 결과를 계속 가져올 수 있습니다.  
선택적 `--delivery-s3-uri` 파라미터를 사용하여 쿼리 결과를 S3 버킷에 전송하는 경우, 버킷 정책으로 쿼리 결과를 버킷에 전송할 수 있는 권한을 CloudTrail에 부여해야 합니다. 버킷 정책의 수동 편집에 대한 자세한 내용은 [CloudTrail Lake 쿼리 결과에 대한 Amazon S3 버킷 정책](s3-bucket-policy-lake-query-results.md) 단원을 참조하세요.

## 를 사용하여 쿼리에 대한 메타데이터 가져오기 AWS CLI
<a name="lake-cli-describe-query"></a>

다음 예제 AWS CLI **describe-query** 명령은 밀리초 단위의 쿼리 실행 시간, 스캔 및 매칭된 이벤트 수, 스캔된 총 바이트 수, 쿼리 상태 등 쿼리에 대한 메타데이터를 가져옵니다. `BytesScanned` 값은 쿼리가 아직 실행 중이지 않는 한 계정에서 쿼리에 대해 청구되는 바이트 수와 일치합니다. 쿼리 결과가 S3 버킷으로 전송된 경우, 응답은 S3 URI와 전송 상태도 제공합니다.

`--query-id` 또는 `--query-alias` 파라미터 중 하나를 값으로 지정해야 합니다. `--query-alias` 파라미터를 지정하면 별칭에 대해 마지막으로 실행한 쿼리에 대한 정보가 반환됩니다.

```
aws cloudtrail describe-query --query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE
```

다음은 응답의 예입니다.

```
{
    "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", 
    "QueryString": "SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10", 
    "QueryStatus": "RUNNING",
    "QueryStatistics": {
        "EventsMatched": 10,
        "EventsScanned": 1000,
        "BytesScanned": 35059,
        "ExecutionTimeInMillis": 3821,
        "CreationTime": "1598911142"
    }
}
```

## 를 사용하여 쿼리 결과 가져오기 AWS CLI
<a name="lake-cli-get-query-results"></a>

다음 예제 AWS CLI **get-query-results** 명령은 쿼리의 이벤트 데이터 결과를 가져옵니다. **start-query** 명령에서 반환되는 `--query-id` 값을 지정해야 합니다. `BytesScanned` 값은 쿼리가 아직 실행 중이지 않는 한 계정에서 쿼리에 대해 청구되는 바이트 수와 일치합니다. 선택적 파라미터에는 `--max-query-results`이 포함되며, 단일 페이지에서 반환할 명령의 최대 결과 수를 지정합니다. 지정한 `--max-query-results` 값보다 많은 결과가 있는 경우, 명령을 다시 실행해 반환된 `NextToken` 값을 추가함으로써 결과의 다음 페이지를 가져옵니다.

```
aws cloudtrail get-query-results
--query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE
```

**출력**

```
{
    "QueryStatus": "RUNNING",
    "QueryStatistics": {
        "ResultsCount": 244,
        "TotalResultsCount": 1582,
        "BytesScanned":27044
    },
    "QueryResults": [
      {
        "key": "eventName",
        "value": "StartQuery",
      }
   ],
    "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", 
    "QueryString": "SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10",
    "NextToken": "20add42078135EXAMPLE"
}
```

## 를 사용하여 이벤트 데이터 스토어의 모든 쿼리 나열 AWS CLI
<a name="lake-cli-list-queries"></a>

다음 예제 AWS CLI **list-queries** 명령은 지난 7일 동안 지정된 이벤트 데이터 스토어에 대한 쿼리 및 쿼리 상태 목록을 반환합니다. `--event-data-store`에 대한 ARN 또는 ARN의 ID 접미사 값을 지정해야 합니다. 선택적으로 결과 목록을 줄이려면 `--start-time` 및 `--end-time` 파라미터, `--query-status` 값을 추가하여 타임스탬프로 서식이 지정된 시간 범위를 지정할 수 있습니다. `QueryStatus`에 대한 유효한 값에는 `QUEUED`, `RUNNING`, `FINISHED`, `FAILED`, 또는 `CANCELLED` 등이 있습니다.

또한 **list-queries**에는 선택적 페이지 매김 파리미터도 있습니다. `--max-results`을(를) 사용하여 단일 페이지에서 반환할 명령의 최대 결과 수를 지정합니다. 지정한 `--max-results` 값보다 많은 결과가 있는 경우, 명령을 다시 실행해 반환된 `NextToken` 값을 추가함으로써 결과의 다음 페이지를 가져옵니다.

```
aws cloudtrail list-queries
--event-data-store EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
--query-status CANCELLED
--start-time 1598384589
--end-time 1598384602
--max-results 10
```

**출력**

```
{
    "Queries": [
        {
          "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", 
          "QueryStatus": "CANCELLED",
          "CreationTime": 1598911142
        },
        {
          "QueryId": "EXAMPLE2-4e89-9230-2127-5dr3aEXAMPLE", 
          "QueryStatus": "CANCELLED",
          "CreationTime": 1598296624
        }
     ],
    "NextToken": "20add42078135EXAMPLE"
}
```

## 를 사용하여 실행 중인 쿼리 취소 AWS CLI
<a name="lake-cli-cancel-query"></a>

다음 예제 AWS CLI **cancel-query** 명령은 상태가 인 쿼리를 취소합니다`RUNNING`. `--query-id`의 값을 지정해야 합니다. **cancel-query**을(를) 실행할 때 **cancel-query** 작업이 아직 완료되지 않았음에도 쿼리 상태가 `CANCELLED`과 같이 표시됩니다.

**참고**  
쿼리를 취소해도 요금이 발생할 수 있습니다. 쿼리를 취소하기 전에 검색한 데이터 양에 대해 계정에 여전히 요금이 청구됩니다.

다음은 CLI의 한 예제입니다.

```
aws cloudtrail cancel-query
--query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE
```

**출력**

```
QueryId -> (string)
QueryStatus -> (string)
```