

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

# 를 사용하여 AWS 리소스의 현재 구성 상태 쿼리 AWS Config
<a name="querying-AWS-resources"></a>


|  | 
| --- |
| 일반 영어로 프롬프트를 입력하고 바로 사용 가능한 쿼리 형식으로 질문을 변환할 수 있는 생성형 인공 지능(생성형 AI) 기능을 사용하는 고급 쿼리용 미리 보기 기능이 도입되었습니다. 자세한 내용은 [고급 쿼리용 자연어 쿼리 프로세서](https://docs.aws.amazon.com/config/latest/developerguide/query-assistant.html)를 참조하세요. | 

 AWS Config 를 사용하여 단일 계정 및 리전 또는 여러 계정 및 리전에 대한 구성 속성을 기반으로 AWS 리소스의 현재 구성 상태를 쿼리할 수 있습니다. AWS Config 가 지원하는 AWS 리소스 목록에서 현재 리소스 상태 메타데이터에 대해 속성 기반 쿼리를 수행할 수 있습니다. 지원되는 리소스 유형 목록에 대한 자세한 내용은 [고급 쿼리에 지원되는 리소스 유형](https://github.com/awslabs/aws-config-resource-schema/tree/master/config/properties/resource-types)을 참조하세요.

*고급 쿼리* 기능은 서비스별로 Describe API 직접 호출을 수행하지 않고도 현재의 리소스 상태 메타데이터를 얻을 수 있는 단일 쿼리 엔드포인트 및 쿼리 언어를 제공합니다. 구성 집계자를 사용하여 여러 계정 및 AWS 리전의 중앙 계정에서 동일한 쿼리를 실행할 수 있습니다.

**Topics**
+ [특성](#query-features)
+ [쿼리 구성 요소](query-components.md)
+ [쿼리 편집기(콘솔)](query-using-sql-editor-console.md)
+ [쿼리 편집기(AWS CLI)](query-using-sql-editor-cli.md)
+ [자연어 쿼리 프로세서](query-assistant.md)
+ [쿼리 예제](example-query.md)
+ [예제 관계 쿼리](examplerelationshipqueries.md)
+ [제한 사항](#query-limitations)
+ [CIDR 표기법/IP 범위](#query-cidr-notation)
+ [배열 내의 여러 속성](#array-property-query-behavior)
+ [리전 지원](#query-regionsupport)

## 특성
<a name="query-features"></a>

AWS Config 는 구조화된 쿼리 언어(SQL) `SELECT` 구문의 하위 집합을 사용하여 현재 구성 항목(CI) 데이터에 대한 속성 기반 쿼리 및 집계를 수행합니다. 쿼리는 태그 및/또는 리소스 식별자에 대한 단순 확인부터 버전 관리가 비활성화된 모든 Amazon S3 버킷 확인까지 다양한 범위를 지원합니다. 이를 통해 AWS 서비스별 API 호출을 수행하지 않고도 필요한 현재 리소스 상태를 정확히 쿼리할 수 있습니다.

`AVG`, `COUNT`, `MAX`, `MIN`, `SUM` 등의 집계 함수를 지원합니다.

고급 쿼리를 사용할 수 있는 경우:
+ 인벤토리 관리(예: 특정 크기의 Amazon EC2 인스턴스 목록 가져오기)
+ 보안 및 지능형 운영(예: 특정한 구성 속성이 활성화 또는 비활성화된 리소스 목록 가져오기)
+ 비용 최적화(예: EC2 인스턴스에 연결되지 않은 Amazon EBS 볼륨 목록 식별)
+ 규정 준수 데이터(예: 모든 적합성 팩 및 그것들의 규정 준수 상태 목록 가져오기)

 AWS SQL 쿼리 언어를 사용하는 방법에 대한 자세한 내용은 [SQL(구조화된 쿼리 언어)이란 무엇입니까?](https://aws.amazon.com/what-is/sql/)를 참조하세요.

## 제한 사항
<a name="query-limitations"></a>

**참고**  
고급 쿼리는 구성 레코더에서 기록하도록 구성되지 않은 리소스의 쿼리를 지원하지 않습니다.는 리소스가 검색되었지만 구성 레코더에서 기록하도록 구성되지 않은 `configurationItemStatus` 경우 `ResourceNotRecorded`에서를 사용하여 구성 항목(CIs)을 AWS Config 생성합니다. 애그리게이터는 이러한 CI를 집계하지만 고급 쿼리는 `ResourceNotRecorded`를 사용한 CI 쿼리를 지원하지 않습니다. 쿼리하려는 리소스 유형을 기록하려면 레코더 설정을 업데이트하세요.

SQL `SELECT`의 하위 집합인 쿼리 구문에는 다음과 같은 제한 사항이 있습니다.
+ 쿼리에서`ALL`, `AS`, `DISTINCT`, `FROM`, `HAVING`, `JOIN`, 및 `UNION` 키워드는 지원되지 않습니다. `NULL` 값 쿼리는 지원되지 않습니다.
+ 쿼리에서 직접 우선 순위 필드를 생성하기 위한 복잡한 `CASE` 문을 지원하지 않습니다.
+ 타사 리소스에 대한 쿼리는 지원되지 않습니다. 고급 쿼리를 사용하여 검색한 타사 리소스의 구성 필드는 `NULL`로 설정됩니다.
+ SQL 쿼리로 중첩 구조(예: 태그)의 팩킹을 해제하는 기능은 지원되지 않습니다.
+ 삭제된 리소스 쿼리는 지원되지 않습니다. 삭제된 리소스를 검색하려면 [검색한 리소스 조회를 참조하세요 AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/looking-up-discovered-resources.html).
+ 모든 열 `SELECT` 약칭(`SELECT *`)이 CI의 최상위 스칼라 속성만 선택합니다. 반환되는 스칼라 속성은 `accountId`, `awsRegion`, `arn`, `availabilityZone`, `configurationItemCaptureTime`, `resourceCreationTime`, `resourceId`, `resourceName`, `resourceType` 및 `version`입니다.
+ 와일드카드 제한 사항:
  + 와일드카드는 속성 키가 아닌 속성 값에 대해서만 지원됩니다(예를 들어 `...WHERE someKey LIKE 'someValue%'`는 지원되지만 `...WHERE 'someKey%' LIKE 'someValue%'`는 지원되지 않음).
  + 접미사 와일드카드에 대해서만 지원됩니다(예를 들어 `...LIKE 'AWS::EC2::%'` 및 `...LIKE 'AWS::EC2::_'`는 지원되지만 `...LIKE '%::EC2::Instance'` 및 `...LIKE '_::EC2::Instance'`는 지원되지 않음).
  + 와일드카드 일치 항목의 길이는 최소 세 문자여야 합니다(예를 들어 `...LIKE 'ab%'` 및 `...LIKE 'ab_'`는 허용되지 않지만 `...LIKE 'abc%'` 및 `...LIKE 'abc_'`는 허용됩니다).
**참고**  
'`_`'(단일 밑줄)도 와일드카드로 취급됩니다.
+ 집계 제한 사항:
  + 집계 함수에는 단일 인수 또는 속성만 사용할 수 있습니다.
  + 집계 함수에는 인수 같은 다른 함수를 사용할 수 없습니다.
  + 집계 함수를 참조하는 `ORDER BY` 절을 사용한 `GROUP BY`는 단일 속성만 포함할 수 있습니다.
  + 다른 모든 집계 `GROUP BY` 절의 경우 최대 세 개의 속성을 포함할 수 있습니다.
  + `ORDER BY` 절에 집계 함수가 있는 경우를 제외하고 모든 집계 쿼리에서 페이지 매김이 지원됩니다. 예를 들어 `Y`가 집계 함수인 경우 `GROUP BY X, ORDER BY Y`는 작동하지 않습니다.
  + 집계에서 `HAVING` 절을 지원하지 않습니다.
+ 일치하지 않는 식별자 제한 사항:

  일치하지 않는 식별자는 철자는 같지만 대/소문자(대문자 및 소문자)가 다른 속성입니다. 고급 쿼리는 일치하지 않는 식별자가 포함된 쿼리를 처리할 수 없습니다. 예제:
  + 철자는 같지만 대/소문자가 다른 두 속성(`configuration.dbclusterIdentifier` 및 `configuration.dBClusterIdentifier`) 
  + 한 속성이 다른 속성의 하위 집합이고 대/소문자가 다른 두 속성(`configuration.ipAddress` 및 `configuration.ipaddressPermissions`) 

## 고급 쿼리에 대한 CIDR 표기법/IP 범위 동작
<a name="query-cidr-notation"></a>

CIDR 표기법은 검색을 위해 IP 범위로 변환됩니다.

즉, `"="` 및 `"BETWEEN"`는 정확한 IP 대신 제공된 IP를 포함하는 모든 범위를 검색합니다.

정확한 IP 범위를 검색하려면 범위를 벗어난 IP를 제외하는 벌도의 조건을 추가해야 합니다.

**Example 정확한 CIDR 블록 10.0.0.0/24 검색**  

```
SELECT * WHERE resourceType = 'AWS::EC2::SecurityGroup'
  AND configuration.ipPermissions.ipRanges BETWEEN '10.0.0.0'
  AND '10.0.0.255'
  AND NOT configuration.ipPermissions.ipRanges < '10.0.0.0'
  AND NOT configuration.ipPermissions.ipRanges > '10.0.0.255'
```

**Example 정확한 IP 주소 192.168.0.2/32 검색**  

```
SELECT * WHERE resourceType = 'AWS::EC2::SecurityGroup'
  AND configuration.ipPermissions.ipRanges = '192.168.0.2'
  AND NOT configuration.ipPermissions.ipRanges > '192.168.0.2'
  AND NOT configuration.ipPermissions.ipRanges < '192.168.0.2'
```

## 고급 쿼리에 대한 배열 동작 내의 여러 속성
<a name="array-property-query-behavior"></a>

객체 배열 내 여러 속성을 쿼리할 경우 일치 항목이 *모든 배열 요소*를 대상으로 계산됩니다.

예를 들어, 규칙 A와 B가 있는 리소스 R의 경우, 리소스가 규칙 A를 준수하지만 규칙 B는 준수하지 않는 경우 리소스 R은 다음과 같이 저장됩니다.

```
{ 
    configRuleList: [ 
        {
            configRuleName: 'A', complianceType: 'compliant'
        }, 
        {   
            configRuleName: 'B', complianceType: 'non_compliant'
        } 
    ]
}
```

다음 쿼리로 R이 반환됩니다.

```
SELECT configuration WHERE configuration.configRuleList.complianceType = 'non_compliant' 
AND configuration.configRuleList.configRuleName = 'A'
```

첫 번째 조건 `configuration.configRuleList.complianceType = 'non_compliant'`는 R.configRuleList의 모든 요소에 적용됩니다. R에는 complianceType = 'non\_compliant'인 규칙(규칙 B)이 있으므로 조건이 true로 평가됩니다.

두 번째 조건 `configuration.configRuleList.configRuleName`은 R.configRuleList의 모든 요소에 적용됩니다. R에는 configRuleName = 'A'인 규칙(규칙 B)이 있으므로 조건이 true로 평가됩니다. 두 조건이 모두 true면 R이 반환됩니다.

## 리전 지원
<a name="query-regionsupport"></a>

고급 쿼리는 다음 리전에서 지원됩니다.


| 리전 이름 | 리전 | 엔드포인트 | 프로토콜 | 
| --- | --- | --- | --- | 
| 미국 동부(오하이오) | us-east-2 |  config.us-east-2.amazonaws.com  | HTTPS | 
| 미국 동부(버지니아 북부) | us-east-1 |  config.us-east-1.amazonaws.com  | HTTPS | 
| 미국 서부(캘리포니아 북부) | us-west-1 |  config.us-west-1.amazonaws.com  | HTTPS | 
| 미국 서부(오레곤) | us-west-2 |  config.us-west-2.amazonaws.com  | HTTPS | 
| 아프리카(케이프타운) | af-south-1 |  config.af-south-1.amazonaws.com  | HTTPS | 
| 아시아 태평양(홍콩) | ap-east-1 |  config.ap-east-1.amazonaws.com  | HTTPS | 
| 아시아 태평양(하이데라바드) | ap-south-2 |  config.ap-south-2.amazonaws.com  | HTTPS | 
| 아시아 태평양(자카르타) | ap-southeast-3 |  config.ap-southeast-3.amazonaws.com  | HTTPS | 
| 아시아 태평양(말레이시아) | ap-southeast-5 |  config.ap-southeast-5.amazonaws.com  | HTTPS | 
| 아시아 태평양(멜버른) | ap-southeast-4 |  config.ap-southeast-4.amazonaws.com  | HTTPS | 
| 아시아 태평양(뭄바이) | ap-south-1 |  config.ap-south-1.amazonaws.com  | HTTPS | 
| 아시아 태평양(뉴질랜드) | ap-southeast-6 |  config.ap-southeast-6.amazonaws.com  | HTTPS | 
| 아시아 태평양(오사카) | ap-northeast-3 |  config.ap-northeast-3.amazonaws.com  | HTTPS | 
| 아시아 태평양(서울) | ap-northeast-2 |  config.ap-northeast-2.amazonaws.com  | HTTPS | 
| 아시아 태평양(싱가포르) | ap-southeast-1 |  config.ap-southeast-1.amazonaws.com  | HTTPS | 
| 아시아 태평양(시드니) | ap-southeast-2 |  config.ap-southeast-2.amazonaws.com  | HTTPS | 
| 아시아 태평양(타이베이) | ap-east-2 |  config.ap-east-2.amazonaws.com  | HTTPS | 
| 아시아 태평양(태국) | ap-southeast-7 |  config.ap-southeast-7.amazonaws.com  | HTTPS | 
| 아시아 태평양(도쿄) | ap-northeast-1 |  config.ap-northeast-1.amazonaws.com  | HTTPS | 
| 캐나다(중부) | ca-central-1 |  config.ca-central-1.amazonaws.com  | HTTPS | 
| 캐나다 서부(캘거리) | ca-west-1 |  config.ca-west-1.amazonaws.com  | HTTPS | 
| 유럽(프랑크푸르트) | eu-central-1 |  config.eu-central-1.amazonaws.com  | HTTPS | 
| 유럽(아일랜드) | eu-west-1 |  config.eu-west-1.amazonaws.com  | HTTPS | 
| 유럽(런던) | eu-west-2 |  config.eu-west-2.amazonaws.com  | HTTPS | 
| 유럽(밀라노) | eu-south-1 |  config.eu-south-1.amazonaws.com  | HTTPS | 
| 유럽(파리) | eu-west-3 |  config.eu-west-3.amazonaws.com  | HTTPS | 
| 유럽(스페인) | eu-south-2 |  config.eu-south-2.amazonaws.com  | HTTPS | 
| 유럽(스톡홀름) | eu-north-1 |  config.eu-north-1.amazonaws.com  | HTTPS | 
| 유럽(취리히) | eu-central-2 |  config.eu-central-2.amazonaws.com  | HTTPS | 
| 이스라엘(텔아비브) | il-central-1 |  config.il-central-1.amazonaws.com  | HTTPS | 
| 멕시코(중부) | mx-central-1 |  config.mx-central-1.amazonaws.com  | HTTPS | 
| 중동(바레인) | me-south-1 |  config.me-south-1.amazonaws.com  | HTTPS | 
| 중동(UAE) | me-central-1 |  config.me-central-1.amazonaws.com  | HTTPS | 
| 남아메리카(상파울루) | sa-east-1 |  config.sa-east-1.amazonaws.com  | HTTPS | 
|  AWS GovCloud(미국 동부) | us-gov-east-1 |  config.us-gov-east-1.amazonaws.com  | HTTPS | 
|  AWS GovCloud(미국 서부) | us-gov-west-1 |  config.us-gov-west-1.amazonaws.com  | HTTPS | 