Wie behebe ich Fehler mit Einschränkungen für die erweiterte Abfrage von AWS Config?

Lesedauer: 2 Minute
0

Wie behebe ich Fehler mit Einschränkungen für die erweiterte Abfrage von AWS Config mit aggregierten Ressourcen oder Kontoressourcen?

Behebung

Verwenden Sie die folgenden 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-Editor (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-Instance verwendet?

Gelöschte Ressourcen abfragen

Sie können die erweiterte Abfrage nicht für gelöschte Ressourcen verwenden. 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, indem Sie eine Abfrage verwenden, 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 von erweiterten Abfragen.

1.    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'

2.    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

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren