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

1 分的閱讀內容
0

如何解決具有彙總或帳戶資源的 AWS Config 進階查詢的限制錯誤?

解決方法

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

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

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

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

查詢刪除的資源

您無法對已刪除的資源使用進階查詢。若要查詢已刪除的資源,請參閱查詢 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 官方已更新 3 年前