使用 AWS re:Post 即表示您同意 AWS re:Post 使用條款

如何解決 AWS Config 進階查詢的限制錯誤?

1 分的閱讀內容
0

我想解決具有彙總或帳戶資源的 AWS Config 進階查詢的限制錯誤。

解決方法

對於採用進階查詢的使用案例,請使用下列解決方法。

**注意:**您必須擁有 SelectResourceConfigSelectAggregateResourceConfig API 的權限,方可使用進階查詢。如需詳細資訊,請參閱使用 SQL 查詢編輯器 (主控台) 進行查詢

Amazon EC2 執行個體作業系統版本

進階查詢無法取得在所有 AWS 區域的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體中執行的所有作業系統清單。若要檢查作業系統,請參閱如何尋找 EC2 Linux 執行個體使用的作業系統平台或版本?

已刪除的資源

您無法對已刪除的資源使用進階查詢。這是因為進階查詢只能取得目前的組態。若要查詢已刪除的資源,請參閱查詢 AWS Config 探索到的資源

Amazon S3 查詢

如果公用存取被封鎖,則進階查詢無法取得 Amazon Simple Storage Service (Amazon S3) 儲存貯體的結果。這是因為只有在帳戶層級啟用了 Amazon S3 封鎖公開存取時,AWS Config 資源類型 AWS::S3::AccountPublicAccessBlock 才會傳回結果。您可以使用 SQL 查詢,使用類似以下內容的查詢來傳回 S3 儲存貯體的名稱和屬性:

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

SQL 空值

進階查詢不支援 SQL 空值,您必須明確包含值。您可以擷取具有公有 IP 地址的 Amazon EC2 執行個體清單,該公有 IP 地址與 SQL BETWEEN 運算子的使用相關聯,如下所示:

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 輸出格式

相關資訊

AWS Config 推出儲存進階查詢的功能

查詢 AWS 資源目前的組態狀態

AWS 官方
AWS 官方已更新 1 年前