我想解決具有彙總或帳戶資源的 AWS Config 進階查詢的限制錯誤。
解決方法
對於採用進階查詢的使用案例,請使用下列解決方法。
**注意:**您必須擁有 SelectResourceConfig 和 SelectAggregateResourceConfig 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'
)
巢狀陣列查詢
進階查詢不支援巢狀陣列查詢。如需詳細資訊,請參閱限制。
-
解決方法是使用類似於以下內容的自訂查詢:
SELECT configuration.targetResourceId,
configuration.targetResourceType,
configuration.complianceType,
configuration.configRuleList
WHERE
configuration.complianceType = 'NON_COMPLIANT'
AND configuration.configRuleList.configRuleName = 'required-tags'
-
接下來,按照說明將輸出匯出為 JSON。
然後,您可以使用命令行 JSON 處理器 jq 來篩選和查詢巢狀陣列。如需詳細資訊和下載 jq,請參閱 JSON 輸出格式。
相關資訊
AWS Config 推出儲存進階查詢的功能
查詢 AWS 資源目前的組態狀態