Ich möchte Fehler mit Einschränkungen für die erweiterte Abfrage von AWS Config mit aggregierten Ressourcen oder Kontoressourcen beheben.
Behebung
Verwenden Sie diese Problemumgehungen für Ihren Anwendungsfall mit erweiterter Abfrage.
Hinweis: Sie müssen über die Berechtigungen für die APIs SelectResourceConfig und SelectAggregateResourceConfig verfügen, um erweiterte Abfragen verwenden zu können. Weitere Informationen finden Sie unter Abfragen mit dem SQL-Abfrageeditor (Konsole).
Versionen des Amazon EC2-Instance-Betriebssystems
Die erweiterte Abfrage kann nicht die Liste aller Betriebssysteme abrufen, die in Amazon Elastic Compute Cloud (Amazon EC2)-Instances in allen AWS-Regionen laufen. Informationen zum Überprüfen des Betriebssystems finden Sie unter Wie finde ich die Betriebssystemplattform oder Version, die meine EC2-Linux-Instance verwendet?
Gelöschte Ressourcen
Sie können die erweiterte Abfrage nicht für gelöschte Ressourcen verwenden. Dies liegt daran, dass die erweiterte Abfrage nur die aktuelle Konfiguration abrufen kann. Informationen zum Nachschlagen gelöschter Ressourcen finden Sie unter Ressourcen suchen, die von AWS Config erkannt werden.
Amazon-S3-Abfragen
Die erweiterte Abfrage kann die Ergebnisse für Amazon Simple Storage Service (Amazon S3)-Buckets nicht abrufen, wenn der öffentliche Zugriff blockiert ist. Dies liegt daran, dass der AWS-Config-Ressourcentyp AWS::S3::AccountPublicAccessBlock nur dann Ergebnisse zurückgibt, wenn Amazon S3 Block Public Access auf Kontoebene aktiviert ist. Sie können eine SQL-Abfrage verwenden, um den Namen und die Attribute eines S3-Buckets zurückzugeben mit einer Abfrage, die der folgenden ähnelt:
SELECT resourceId,
resourceType,
configuration,
supplementaryConfiguration
WHERE
resourceType = 'AWS::S3::Bucket'
SQL-Nullwerte
Die erweiterte Abfrage unterstützt keine SQL-Nullwerte – Sie müssen Werte explizit einbeziehen. Sie können eine Liste von Amazon-EC2-Instances mit einer öffentlichen IP-Adresse abrufen, die mit der Verwendung des Operators SQL BETWEEN verknüpft ist, der dem folgenden ähnelt:
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'
)
Verschachtelte Array-Abfragen
Die erweiterte Abfrage unterstützt keine verschachtelten Array-Abfragen. Weitere Informationen finden Sie unter Einschränkungen.
-
Um dieses Problem zu umgehen, können Sie eine benutzerdefinierte Abfrage verwenden, die der folgenden ähnelt:
SELECT configuration.targetResourceId,
configuration.targetResourceType,
configuration.complianceType,
configuration.configRuleList
WHERE
configuration.complianceType = 'NON_COMPLIANT'
AND configuration.configRuleList.configRuleName = 'required-tags'
-
Folgen Sie dann den Anweisungen, um die Ausgabe als JSON zu exportieren.
Sie können dann den Befehlszeilen-JSON-Prozessor jq verwenden, um das verschachtelte Array zu filtern und abzufragen. Weitere Informationen und zum Herunterladen von jq gehen Sie zu JSON-Ausgabeformat.
Ähnliche Informationen
AWS Config bietet die Möglichkeit, erweiterte Abfragen zu speichern
Den aktuellen Konfigurationsstatus von AWS-Ressourcen abfragen