Comment résoudre les erreurs avec des limitations pour la requête avancée AWS Config ?

Dernière mise à jour : 02/02/2021

Comment résoudre les erreurs avec limitations pour les requêtes avancées AWS Config avec des ressources agrégées ou de compte ?

Résolution

Utilisez les solutions de contournement suivantes pour votre cas d'utilisation avec une requête avancée.

Remarque : vous devez avoir l'autorisation pour les API SelectResourceConfig et SelectAggregateResourceConfig pour utiliser la requête avancée. Pour plus d'informations, voir Requête à l'aide de l'éditeur SQL (Console).

Versions du système d'exploitation de l'instance Amazon EC2

La requête avancée ne peut pas obtenir la liste de tous les systèmes d'exploitation exécutés dans les instances Amazon Elastic Compute Cloud (Amazon EC2) dans toutes les régions AWS. Pour vérifier le système d'exploitation, consultez Comment trouver la plate-forme ou la version du système d'exploitation que mon instance EC2 utilise ?

Interrogation des ressources supprimées

Vous ne pouvez pas utiliser de requête avancée pour les ressources supprimées. Pour rechercher des ressources supprimées, consultez Recherche de ressources découvertes par AWS Config.

Requêtes Amazon S3

La requête avancée ne peut pas obtenir les résultats pour les compartiments Amazon Simple Storage Service (Amazon S3) si l'accès public est bloqué. En effet, le type de ressource AWS Config AWS::S3::AccountPublicAccessBlock renvoie des résultats uniquement si Amazon S3 Block Public Access est activé au niveau du compte. Vous pouvez utiliser une requête SQL pour renvoyer le nom et les attributs d'un compartiment S3 à l'aide d'une requête similaire à la suivante :

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

Valeurs null SQL

La requête avancée ne prend pas en charge les valeurs null SQL : vous devez explicitement inclure des valeurs.

Vous pouvez récupérer une liste d'instances Amazon EC2 avec une adresse IP publique associée à l'utilisation de l'opérateur SQL BETWEEN semblable à ce qui suit :

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'
  )

Requêtes de tableau imbriquées

La requête avancée ne prend pas en charge les requêtes de tableau imbriqué. Pour plus d'informations, consultez Limitations des requêtes avancées.

1.    Comme solution de contournement, vous pouvez utiliser une requête personnalisée semblable à la suivante :

SELECT
  configuration.targetResourceId,
  configuration.targetResourceType,
  configuration.complianceType,
  configuration.configRuleList
WHERE
  configuration.complianceType = 'NON_COMPLIANT'
  AND configuration.configRuleList.configRuleName = 'required-tags'

2.    Ensuite, suivez les instructions pour exporter la sortie en format JSON.

Vous pouvez ensuite utiliser le processeur JSON de ligne de commande jq pour filtrer et interroger le tableau imbriqué. Pour plus d'informations et pour télécharger jq, reportez-vous au format de sortie JSON.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?