Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Interrogation de l'état de configuration actuel des ressources AWS
Présentation d'une fonctionnalité d'aperçu pour les requêtes avancées qui vous permet d'utiliser les fonctionnalités de l'intelligence artificielle générative (IA générative) pour saisir des instructions dans un anglais simple et les convertir dans un format de ready-to-use requête. Pour plus d’informations, consultez Processeur de requêtes en langage naturel pour les requêtes avancées. |
Vous pouvez l'utiliser AWS Config pour interroger l'état de configuration actuel des AWS ressources en fonction des propriétés de configuration d'un seul compte et d'une seule région ou de plusieurs comptes et régions. Vous pouvez effectuer des requêtes basées sur les propriétés par rapport aux métadonnées de l'état actuel des AWS ressources dans une liste de ressources prises en charge. AWS Config Pour plus d'informations sur la liste des types de ressources pris en charge, consultez Types de ressources pris en charge pour les requêtes avancées
Les requêtes avancées fournissent un point de terminaison de requête unique et un langage de requête pour obtenir les métadonnées de l'état actuel des ressources sans effectuer d'appels d'API de description spécifiques au service. Vous pouvez utiliser des agrégateurs de configuration pour exécuter les mêmes requêtes à partir d'un compte central sur plusieurs comptes et AWS régions.
Rubriques
- Fonctionnalités
- Composants d'une requête
- Exemples de requêtes
- Exemples de requêtes relationnelles
- Limites
- Prise en charge de la région
- Interrogation à l'aide de l'éditeur de requête SQL (console)
- Requête à l'aide de l'éditeur de requête SQL (AWS CLI)
- Processeur de requêtes en langage naturel pour les requêtes avancées
Fonctionnalités
AWS Config utilise un sous-ensemble de la SELECT
syntaxe du langage de requête structuré (SQL) pour effectuer des requêtes basées sur les propriétés et des agrégations sur les données des éléments de configuration (CI) actuels. La complexité des requêtes varie, allant de correspondances avec des identifiants de balises et/ou de ressources à des requêtes plus complexes, telles que l'affichage de tous les compartiments Amazon S3 dont le versionnement est désactivé. Cela vous permet d'obtenir exactement l'état actuel de la ressource dont vous avez besoin sans effectuer d'appels d'API spécifiques au service AWS .
Il prend en charge les fonctions d'agrégation telles que AVG
, COUNT
, MAX
, MIN
et SUM
.
Vous pouvez utiliser une requête avancée pour :
-
la gestion des stocks : par exemple, pour récupérer la liste des instances Amazon EC2 d'une taille particulière.
-
la sécurité et l'intelligence opérationnelle : par exemple, pour récupérer la liste des ressources dont une propriété de configuration spécifique est activée ou désactivée.
-
l'optimisation des coûts : par exemple, pour dresser la liste des volumes Amazon EBS qui ne sont attachés à aucune instance EC2.
-
Données de conformité ; par exemple, pour récupérer une liste de tous vos packs de conformité et de leur statut de conformité.
Pour plus d'informations sur l'utilisation du langage de requête AWS SQL, voir Qu'est-ce que le langage SQL (langage de requête structuré) ?
Composants d'une requête
Les composants de la requête SQL SELECT
sont les suivants.
Résumé
SELECT property [, ...]
[ WHERE condition ]
[ GROUP BY property ]
[ ORDER BY property [ ASC | DESC ] [, property [ ASC | DESC ] ...] ]
Paramètres
- [ Condition WHERE ]
-
Filtre les résultats en fonction de la
condition
que vous spécifiez. - [ GROUP BY property ]
-
Agrège le jeu de résultats en groupes de lignes avec des valeurs correspondantes pour la propriété donnée.
La clause GROUP BY s'applique aux agrégations.
- [ ORDER BY property [ ASC | DESC ] [, property [ ASC | DESC ] ...] ]
-
Trie un jeu de résultats par une ou
properties
de sortie.Lorsque la clause contient plusieurs propriétés, le jeu de résultats est trié selon le premier élément
property
, puis selon le deuxième élémentproperty
pour les lignes ayant des valeurs correspondantes pour la première propriété, et ainsi de suite.
Exemples
SELECT resourceId WHERE resourceType='AWS::EC2::Instance'
SELECT configuration.complianceType, COUNT(*) WHERE resourceType = 'AWS::Config::ResourceCompliance' GROUP BY configuration.complianceType
Exemples de requêtes
Exemples de requêtes relationnelles
Limites
Note
La requête avancée ne prend pas en charge l'interrogation de ressources qui n'ont pas été configurées pour être enregistrées par l'enregistreur de configuration. AWS Config crée des éléments de configuration (CI) ResourceNotRecorded
dans le configurationItemStatus
lorsqu'une ressource a été découverte mais n'est pas configurée pour être enregistrée par l'enregistreur de configuration. Bien qu'un agrégateur agrège ces CI, les requêtes avancées ne permettent pas d'interroger les CI avec ResourceNotRecorded
. Mettez à jour les paramètres de votre enregistreur afin d'activer l'enregistrement des types de ressources que vous souhaitez interroger.
En tant que sous-ensemble de la commande SQL SELECT
, la syntaxe de requête présente les limitations suivantes :
-
Pas de prise en charge pour les mots clés
ALL
,AS
,DISTINCT
,FROM
,HAVING
,JOIN
etUNION
mots clés dans une requête. Les requêtes de valeurNULL
ne sont pas prises en charge. -
Pas de prise en charge des requêtes sur des ressources tierces. Les ressources tierces récupérées à l'aide de requêtes avancées auront le champ de configuration défini comme
NULL
. -
Pas de prise en charge des structures imbriquées (comme les balises) à décompresser avec des requêtes SQL.
-
La notation CIDR est convertie en plages d'adresses IP pour la recherche. Cela signifie que
"="
et"BETWEEN"
recherchent toute plage qui inclut l'adresse IP fournie, plutôt qu'une adresse exacte. Pour rechercher une plage exacte d'adresses IP, vous devez ajouter des conditions supplémentaires afin d'exclure les adresses IP situées en dehors de cette plage. Par exemple, pour rechercher 10.0.0.0/24 et uniquement ce bloc d'adresses IP, vous pouvez procéder comme suit :SELECT * WHERE resourceType = 'AWS::EC2::SecurityGroup' AND configuration.ipPermissions.ipRanges BETWEEN '10.0.0.0' AND '10.0.0.255' AND NOT configuration.ipPermissions.ipRanges < '10.0.0.0' AND NOT configuration.ipPermissions.ipRanges > '10.0.0.255'
Pour 192.168.0.2/32, vous pouvez effectuer une recherche similaire :
SELECT * WHERE resourceType = 'AWS::EC2::SecurityGroup' AND configuration.ipPermissions.ipRanges = '192.168.0.2' AND NOT configuration.ipPermissions.ipRanges > '192.168.0.2' AND NOT configuration.ipPermissions.ipRanges < '192.168.0.2'
-
Lors de l'interrogation de plusieurs propriétés dans un tableau d'objets, les correspondances sont calculées sur les éléments de tableau. Par exemple, pour une ressource R avec des règles A et B, la ressource est conforme à la règle A, mais non conforme à la règle B. La ressource R est stockée sous la forme suivante :
{ configRuleList: [ { configRuleName: 'A', complianceType: 'compliant' }, { configRuleName: 'B', complianceType: 'non_compliant' } ] }
R sera renvoyée par cette requête :
SELECT configuration WHERE configuration.configRuleList.complianceType = 'non_compliant' AND configuration.configRuleList.configRuleName = 'A'
La première condition
configuration.configRuleList.complianceType = 'non_compliant'
est appliquée à TOUS les éléments de R.configRuleList, car R possède une règle (règle B) avec ComplianceType = 'non_compliant', la condition est évaluée comme vraie. La deuxième conditionconfiguration.configRuleList.configRuleName
est appliquée à TOUS les éléments de R.configRuleList, car R a une règle (règle A) avec configRuleName = « A », la condition est évaluée comme vraie. Comme les deux conditions sont vraies, R sera renvoyée. -
La commande
SELECT
raccourcie permettant de sélectionner toutes les colonnes (à savoirSELECT *
) sélectionne uniquement les propriétés scalaires de niveau supérieur d'un élément de configuration. Les propriétés scalaires renvoyées sontaccountId
,awsRegion
,arn
,availabilityZone
,configurationItemCaptureTime
,resourceCreationTime
,resourceId
,resourceName
,resourceType
etversion
. -
Limitations propres aux caractères génériques :
-
Les caractères génériques sont pris en charge uniquement pour les valeurs de propriété et non pour les clés de propriété (par exemple,
...WHERE someKey LIKE 'someValue%'
est pris en charge, mais...WHERE 'someKey%' LIKE 'someValue%'
n'est pas pris en charge). -
Prise en charge uniquement des caractères génériques en suffixe (par exemple,
...LIKE 'AWS::EC2::%'
et...LIKE 'AWS::EC2::_'
sont pris en charge, mais...LIKE '%::EC2::Instance'
et...LIKE '_::EC2::Instance'
ne sont pas pris en charge). -
Les correspondances d'un caractère générique doivent compter au moins trois caractères (par exemple,
...LIKE 'ab%'
et...LIKE 'ab_'
ne sont pas autorisés, alors que...LIKE 'abc%'
et...LIKE 'abc_'
le sont).
Note
Le «
_
» (tiret du bas simple) est également traité comme un caractère générique. -
-
Limitations propres aux agrégations :
-
Les fonctions d'agrégation peuvent accepter un seul argument ou une seule propriété.
-
Les fonctions d'agrégation ne peuvent pas accepter d'autres fonctions comme arguments.
-
GROUP BY
avec une clauseORDER BY
faisant référence à des fonctions d'agrégation ne peut contenir qu'une seule propriété. -
Pour toutes les autres agrégations, les clauses
GROUP BY
peuvent contenir jusqu'à trois propriétés. -
La pagination est prise en charge pour toutes les requêtes agrégées, sauf lorsque la clause
ORDER BY
comporte une fonction d'agrégation. Par exemple,GROUP BY X, ORDER BY Y
ne fonctionne pas siY
est une fonction d'agrégation. -
Pas de prise en charge des clauses
HAVING
dans les agrégations.
-
-
Limites des identifiants non concordants :
Les identifiants non concordants sont des propriétés qui ont la même orthographe mais une casse différente (majuscules et minuscules). La requête avancée ne permet pas de traiter les requêtes qui contiennent des identifiants non concordants. Par exemple :
-
Deux propriétés qui ont exactement la même orthographe, mais une casse différente (
configuration.dbclusterIdentifier
etconfiguration.dBClusterIdentifier
). -
Deux propriétés où l'une est un sous-ensemble de l'autre et qui ont une casse différente (
configuration.ipAddress
etconfiguration.ipaddressPermissions
).
-
Prise en charge de la région
Les requêtes avancées sont prises en charge dans les régions suivantes :
Nom de la région | Région | Point de terminaison | Protocole |
---|---|---|---|
US East (Ohio) | us-east-2 | config.us-east-2.amazonaws.com | HTTPS |
US East (N. Virginia) | us-east-1 | config.us-east-1.amazonaws.com | HTTPS |
USA Ouest (Californie du Nord) | us-west-1 | config.us-west-1.amazonaws.com | HTTPS |
US West (Oregon) | us-west-2 | config.us-west-2.amazonaws.com | HTTPS |
Afrique (Le Cap) | af-south-1 | config.af-south-1.amazonaws.com | HTTPS |
Asie-Pacifique (Hong Kong) | ap-east-1 | config.ap-east-1.amazonaws.com | HTTPS |
Asie-Pacifique (Hyderabad) | ap-south-2 | config.ap-south-2.amazonaws.com | HTTPS |
Asie-Pacifique (Jakarta) | ap-southeast-3 | config.ap-southeast-3.amazonaws.com | HTTPS |
Asie-Pacifique (Melbourne) | ap-southeast-4 | config.ap-southeast-4.amazonaws.com | HTTPS |
Asia Pacific (Mumbai) | ap-south-1 | config.ap-south-1.amazonaws.com | HTTPS |
Asie-Pacifique (Osaka) | ap-northeast-3 | config.ap-northeast-3.amazonaws.com | HTTPS |
Asia Pacific (Seoul) | ap-northeast-2 | config.ap-northeast-2.amazonaws.com | HTTPS |
Asie-Pacifique (Singapour) | ap-southeast-1 | config.ap-southeast-1.amazonaws.com | HTTPS |
Asia Pacific (Sydney) | ap-southeast-2 | config.ap-southeast-2.amazonaws.com | HTTPS |
Asia Pacific (Tokyo) | ap-northeast-1 | config.ap-northeast-1.amazonaws.com | HTTPS |
Canada (Central) | ca-central-1 | config.ca-central-1.amazonaws.com | HTTPS |
Canada Ouest (Calgary) | ca-west-1 | config.ca-west-1.amazonaws.com | HTTPS |
Europe (Francfort) | eu-central-1 | config.eu-central-1.amazonaws.com | HTTPS |
Europe (Irlande) | eu-west-1 | config.eu-west-1.amazonaws.com | HTTPS |
Europe (Londres) | eu-west-2 | config.eu-west-2.amazonaws.com | HTTPS |
Europe (Milan) | eu-south-1 | config.eu-south-1.amazonaws.com | HTTPS |
Europe (Paris) | eu-west-3 | config.eu-west-3.amazonaws.com | HTTPS |
Europe (Espagne) | eu-south-2 | config.eu-south-2.amazonaws.com | HTTPS |
Europe (Stockholm) | eu-north-1 | config.eu-north-1.amazonaws.com | HTTPS |
Europe (Zurich) | eu-central-2 | config.eu-central-2.amazonaws.com | HTTPS |
Israël (Tel Aviv) | il-central-1 | config.il-central-1.amazonaws.com | HTTPS |
Moyen-Orient (Bahreïn) | me-south-1 | config.me-south-1.amazonaws.com | HTTPS |
Moyen-Orient (EAU) | me-central-1 | config.me-central-1.amazonaws.com | HTTPS |
Amérique du Sud (São Paulo) | sa-east-1 | config.sa-east-1.amazonaws.com | HTTPS |
AWS GovCloud (USA Est) | us-gov-east-1 | config.us-gov-east-1.amazonaws.com | HTTPS |
AWS GovCloud (US-Ouest) | us-gov-west-1 | config.us-gov-west-1.amazonaws.com | HTTPS |