Come posso risolvere gli errori con limitazioni per le query avanzate di AWS Config?

3 minuti di lettura
0

Desidero risolvere gli errori con limitazioni per le query avanzate di AWS Config con risorse aggregate o di account.

Risoluzione

Usa le seguenti soluzioni alternative per il tuo caso d'uso con una query avanzata.

Nota: è necessario disporre dell'autorizzazione per le API SelectResourceConfig e SelectAggregateResourceConfig per utilizzare la query avanzata. Per ulteriori informazioni, consulta Invia query con SQL editor (Console).

Versioni del sistema operativo delle istanze Amazon EC2

La query avanzata non può ottenere l'elenco di tutti i sistemi operativi in esecuzione nelle istanze di Amazon Elastic Compute Cloud (Amazon EC2) in tutte le regioni AWS. Per verificare il sistema operativo, consulta Come posso trovare la piattaforma o la versione del sistema operativo utilizzata dalla mia istanza EC2 Linux?

Risorse eliminate

Non puoi utilizzare una query avanzata per le risorse eliminate. Questo perché la query avanzata può ottenere solo la configurazione corrente. Per cercare le risorse eliminate, consulta Ricerca delle risorse rilevate da AWS Config.

Query Amazon S3

La query avanzata non può ottenere i risultati per i bucket Amazon Simple Storage Service (Amazon S3) se l'accesso pubblico è bloccato. Questo perché il tipo di risorsa AWS Config AWS::S3::AccountPublicAccessBlock restituisce risultati solo se il Blocco dell'accesso pubblico Amazon S3 è abilitato a livello di account. È possibile utilizzare una query SQL per restituire il nome e gli attributi di un bucket S3 utilizzando una query simile alla seguente:

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

valori SQL nulli

La query avanzata non supporta i valori SQL nulli: è necessario includere valori in modo esplicito. Puoi recuperare un elenco di istanze Amazon EC2 con un indirizzo IP pubblico associato all'uso dell'operatore SQL BETWEEN simile al seguente:

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

Query su array nidificati

La query avanzata non supporta le query su array nidificati. Per maggiori informazioni, consulta Limitazioni.

  1. Come soluzione alternativa, puoi utilizzare una query personalizzata simile alla seguente:

    SELECT  configuration.targetResourceId,
      configuration.targetResourceType,
      configuration.complianceType,
      configuration.configRuleList
    WHERE
      configuration.complianceType = 'NON_COMPLIANT'
      AND configuration.configRuleList.configRuleName = 'required-tags'
    
  2. Quindi, segui le istruzioni per esportare l'output come JSON.

A questo punto puoi utilizzare il processore JSON a riga di comando jq per filtrare e interrogare l'array nidificato. Per ulteriori informazioni e per scaricare jq, consulta Formato di output JSON.

Informazioni correlate

AWS Config lancia la funzionalità di salvataggio delle query avanzate

Eseguire query sullo stato di configurazione corrente delle risorse AWS

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa