AWS Config 고급 쿼리에 대한 제한 사항이 있는 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 2월 2일

집계된 리소스나 계정 리소스를 사용하여 AWS Config 고급 쿼리에 대한 제한 사항이 있는 오류를 해결하려면 어떻게 해야 합니까?

해결 방법

고급 쿼리의 사용 사례에 따라 다음 해결 방법을 사용하세요.

참고: 고급 쿼리를 사용하려면 SelectResourceConfigSelectAggregateResourceConfig API에 대한 권한이 있어야 합니다. 자세한 내용은 SQL 편집기(콘솔)를 사용하여 쿼리를 참조하세요.

Amazon EC2 인스턴스 운영 체제 버전

고급 쿼리는 모든 AWS 리전에 걸쳐 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스에서 실행 중인 모든 운영 체제 목록을 가져올 수 없습니다. OS를 확인하려면 EC2 인스턴스에서 사용 중인 OS 플랫폼 또는 버전은 어떻게 찾을 수 있습니까?를 참조하세요.

삭제된 리소스 쿼리

삭제된 리소스에 대해서는 고급 쿼리를 사용할 수 없습니다. 삭제된 리소스를 조회하려면 AWS Config에서 검색한 리소스 조회를 참조하세요.

아마존 S3 쿼리

퍼블릭 액세스가 차단된 경우 고급 쿼리에서 Amazon S3(Amazon Simple Storage Service) 버킷에 대한 결과를 가져올 수 없습니다. 이는 계정 수준에서 Amazon S3 퍼블릭 액세스 차단을 활성화한 경우에만 AWS Config 리소스 유형 AWS::S3::AccountPublicAccessBlock이 결과를 반환하기 때문입니다. 다음과 유사한 SQL 쿼리를 사용하여 S3 버킷의 이름과 속성을 반환할 수 있습니다.

SELECT
  resourceId,
  resourceType,
  configuration,
  supplementaryConfiguration
WHERE
  resourceType = 'AWS::S3::Bucket'

SQL null 값

고급 쿼리는 SQL null 값을 지원하지 않으므로 명시적으로 값을 포함해야 합니다.

다음과 유사한 SQL BETWEEN 연산자를 사용하면 퍼블릭 IP 주소가 연결된 Amazon EC2 인스턴스의 목록을 검색할 수 있습니다.

SELECT
  accountId,
  resourceId,
  configuration.publicDnsName,
  configuration.publicIpAddress
WHERE
  resourceType = 'AWS::EC2::Instance'
  AND (
    configuration.publicIpAddress BETWEEN '0.0.0.0'
    AND '255.255.255.255'
    OR configuration.ipv6Addresses BETWEEN '0:0:0:0:0:0:0:0'
    AND 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'
  )

중첩된 배열 쿼리

고급 쿼리는 중첩된 배열 쿼리를 지원하지 않습니다. 자세한 내용은 고급 쿼리 제한 사항을 참조하세요.

1.    이 문제를 해결하려면 다음과 유사한 사용자 지정 쿼리를 사용할 수 있습니다.

SELECT
  configuration.targetResourceId,
  configuration.targetResourceType,
  configuration.complianceType,
  configuration.configRuleList
WHERE
  configuration.complianceType = 'NON_COMPLIANT'
  AND configuration.configRuleList.configRuleName = 'required-tags'

2.    그런 다음 지침에 따라 출력을 JSON으로 내보냅니다.

그려면 명령줄 JSON 프로세서 jq를 사용하여 중첩된 배열을 필터링하고 쿼리할 수 있습니다. 자세한 내용과 jq를 다운로드하는 방법은 JSON 출력 형식을 참조하세요.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?