

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Interrogazione dello stato di configurazione corrente delle AWS risorse con AWS Config
<a name="querying-AWS-resources"></a>


|  | 
| --- |
| Presentazione di una funzionalità di anteprima per le query avanzate che consente di utilizzare le funzionalità di intelligenza artificiale generativa (AI generativa) per inserire istruzioni in un inglese semplice e convertirle in un formato di query. ready-to-use Per ulteriori informazioni, consulta [Natural language interrogation processor for advanced query](https://docs.aws.amazon.com/config/latest/developerguide/query-assistant.html). | 

È possibile utilizzarle AWS Config per interrogare lo stato di configurazione corrente delle AWS risorse in base alle proprietà di configurazione per un singolo account e regione o per più account e regioni. È possibile eseguire query basate sulle proprietà sui metadati dello stato AWS delle risorse correnti su un elenco di risorse che supportano. AWS Config Per ulteriori risorse sull'elenco di tipi di risorsa supportati, consulta [Tipi di risorsa supportati per query avanzate](https://github.com/awslabs/aws-config-resource-schema/tree/master/config/properties/resource-types).

*Le query avanzate* forniscono un unico endpoint di query e un linguaggio di query per ottenere i metadati correnti sullo stato delle risorse senza eseguire chiamate API di descrizione specifiche del servizio. Puoi utilizzare gli aggregatori di configurazione per eseguire le stesse query da un account centrale su più account e regioni. AWS 

**Topics**
+ [Funzionalità](#query-features)
+ [Componenti della query](query-components.md)
+ [Editor di query (console)](query-using-sql-editor-console.md)
+ [Editor di query (AWS CLI)](query-using-sql-editor-cli.md)
+ [Processore di interrogazioni in linguaggio naturale](query-assistant.md)
+ [Esempi di domande](example-query.md)
+ [Esempi di query sulle relazioni](examplerelationshipqueries.md)
+ [Limitazioni](#query-limitations)
+ [Intervallo CIDR notation/IP](#query-cidr-notation)
+ [Proprietà multiple all'interno di un array](#array-property-query-behavior)
+ [Supporto nelle regioni](#query-regionsupport)

## Funzionalità
<a name="query-features"></a>

AWS Config utilizza un sottoinsieme della `SELECT` sintassi SQL (Structured Query Language) per eseguire query e aggregazioni basate sulle proprietà sui dati degli elementi di configurazione (CI) correnti. Le query variano in termini di complessità, dalle corrispondenze con gli identificatori di and/or risorse dei tag a query più complesse, come la visualizzazione di tutti i bucket Amazon S3 con il controllo delle versioni disabilitato. Ciò ti consente di interrogare esattamente lo stato attuale delle risorse di cui hai bisogno senza eseguire chiamate API specifiche del servizio. AWS 

Supporta le funzioni di aggregazione, ad esempio `AVG`, `COUNT`, `MAX`, `MIN` e `SUM`.

È possibile utilizzare le query avanzate per:
+ Gestione dell'inventario, ad esempio per recuperare un elenco di istanze Amazon EC2 di dimensioni specifiche.
+ Sicurezza e intelligenza operativa, ad esempio per recuperare un elenco di risorse che hanno una specifica proprietà di configurazione abilitata o disabilitata.
+ Ottimizzazione dei costi, ad esempio per identificare un elenco di volumi Amazon EBS che non sono collegati a nessuna istanza EC2.
+ Dati di conformità, ad esempio per recuperare un elenco di tutti i pacchetti di conformità e il relativo stato di conformità.

Per informazioni su come utilizzare AWS SQL Query Language, vedi [What Is SQL (Structured Query Language](https://aws.amazon.com/what-is/sql/))? .

# Componenti di interrogazione per AWS Config
<a name="query-components"></a>

I componenti delle `SELECT` query SQL per le query AWS Config avanzate sono i seguenti.

## Riepilogo
<a name="synopsis"></a>

```
SELECT property [, ...]
[ WHERE condition ]
[ GROUP BY property ]
[ ORDER BY property [ ASC | DESC ] [, property [ ASC | DESC ] ...] ]
```

## Parametri
<a name="parameters"></a>

**[ condizione WHERE ]**  
I filtri restituiscono risultati in base alla `condition` specificata.  
**Operatori di confronto**  
+ `=`(è uguale a)
+ `IN`(elenco di appartenenza)
+ `BETWEEN`(controllo dell'intervallo)
**Operatori logici**  
+ `AND`
+ `OR`
+ `NOT`

**[ GROUP BY property ]**  
Aggrega il set di risultati in gruppi di righe con valori corrispondenti per la proprietà specificata.  
La clausola GROUP BY è applicabile alle aggregazioni.

**[ ORDER BY property [ ASC \$1 DESC ] [, property [ ASC \$1 DESC ] ...] ]**  
Ordina un set di risultati da uno o più output `properties`.  
Quando la clausola contiene più proprietà, il set di risultati viene ordinato in base alla prima `property`, quindi in base alla seconda `property` per le righe che hanno valori corrispondenti per la prima proprietà e così via. 

## Esempi
<a name="examples"></a>

```
SELECT resourceId WHERE resourceType='AWS::EC2::Instance'
```

```
SELECT configuration.complianceType, COUNT(*) WHERE resourceType = 'AWS::Config::ResourceCompliance' GROUP BY configuration.complianceType  
```

# Interrogazione tramite SQL Query Editor per AWS Config (console)
<a name="query-using-sql-editor-console"></a>


|  | 
| --- |
| Presentazione di una funzionalità di anteprima per le query avanzate che consente di utilizzare le funzionalità di intelligenza artificiale generativa (AI generativa) per inserire istruzioni in un inglese semplice e convertirle in un formato di query. ready-to-use Per ulteriori informazioni, consulta [Natural language interrogation processor for advanced query](https://docs.aws.amazon.com/config/latest/developerguide/query-assistant.html). | 

È possibile utilizzare query di AWS esempio oppure creare query personalizzate denominate query personalizzate.

## Considerazioni
<a name="query-using-sql-editor-console-considerations"></a>

**Prerequisiti**

[Se si utilizza una delle seguenti politiche AWS gestite, si disporrà delle autorizzazioni necessarie per eseguire e salvare una query: [AWSServiceRoleForConfig](https://docs.aws.amazon.com/config/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWSServiceRoleForConfig)(ruolo collegato al servizio) o onfiGROLE. AWS\$1C](https://docs.aws.amazon.com/config/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWS_ConfigRole)

Altrimenti, è necessario che le autorizzazioni siano incluse nella politica gestita. [AWSConfigUserAccess](https://docs.aws.amazon.com/config/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWSConfigUserAccess) AWS 

**Elenco di proprietà su cui è possibile interrogare**

Un elenco aggiornato delle proprietà e dei relativi tipi di dati è disponibile in [GitHub](https://github.com/awslabs/aws-config-resource-schema).

**Interrogazioni e aggregatori avanzati**

Per eseguire una query su un aggregatore, creare un aggregatore. Per ulteriori informazioni, consulta [Creazione di aggregatori per AWS Config](aggregated-create.md).

Se si dispone già di un aggregatore configurato, nell'ambito della query, scegliere l'aggregatore per eseguire una query avanzata su tale aggregatore. Quando selezioni un aggregatore, valuta la possibilità di aggiungere l' Account AWS ID e la AWS regione nell'istruzione di query per visualizzare tali informazioni nei risultati.

## Usa una query di AWS esempio
<a name="use-a-sample-query"></a>

1. Accedi a Console di gestione AWS e apri la AWS Config console a [https://console.aws.amazon.com/config/casa](https://console.aws.amazon.com/config/home).

1. Scegliere **Query avanzate** dalla navigazione a sinistra per eseguire query sulle configurazioni delle risorse per un singolo account e regione o per più account e regioni.

1. Nella pagina **Query avanzate**, scegli una query appropriata dall'elenco delle query. Puoi filtrare l’elenco di query in base al nome, alla descrizione, all'autore o ai tag. Per filtrare le query AWS , scegli **Creator** e inserisci **AWS**. La query selezionata viene visualizzata nell'editor di query SQL. È possibile modificare la query selezionata in base alle proprie esigenze.

1. Per salvare questa query in una nuova, scegli **Salva con nome**.
   + Nel campo **Nome della query**, aggiorna il nome della query.
   + Nel campo **Descrizione**, aggiorna la descrizione della query.
   + Inserisci fino a 50 tag univoci per questa query.
   + Scegli **Save** (Salva).

1. Scegli **Esegui**. I risultati della query vengono visualizzati nella tabella sotto l'editor di query.

1. Scegliere **Esporta come** per esportare i risultati della query in formato CSV o JSON.

## Creazione di una query personalizzata
<a name="create-you-custom-use-query"></a>

1. Accedi a Console di gestione AWS e apri la AWS Config console a [https://console.aws.amazon.com/config/casa](https://console.aws.amazon.com/config/home).

1. Scegliere **Query avanzate** dalla navigazione a sinistra per eseguire query sulle configurazioni delle risorse per un singolo account e regione o per più account e regioni.

1. Per creare una query personalizzata, scegli **Nuova query**.

   Puoi visualizzare o modificare una query personalizzata in base al nome, alla descrizione, all'autore o ai tag. Per filtrare le query personalizzate, scegli **Crea** e inserisci **Personalizzata**.

1. Nella pagina **Editor di query**, crea la query personalizzata per l'account e l'area geografica. È inoltre possibile selezionare un aggregatore appropriato per creare una query per più account e regioni.

1. Scegli Modifica se vuoi apportare modifiche a questa query. Per salvare questa query, scegli **Salva**.
   + Nel campo **Nome della query**, aggiorna il nome della query.
   + Nel campo **Descrizione**, aggiorna la descrizione della query.
   + Inserisci fino a 50 tag univoci per questa query.
   + Scegli **Save** (Salva).

1. Scegli **Esegui**. I risultati della query vengono visualizzati nella tabella sotto l'editor di query.

1. Scegliere **Esporta come** per esportare i risultati della query in formato CSV o JSON.

# Interrogazione tramite SQL Query Editor per AWS Config (AWS CLI)
<a name="query-using-sql-editor-cli"></a>

 AWS CLI È uno strumento unificato per gestire i tuoi AWS servizi. Con un solo strumento da scaricare e configurare, puoi controllare più AWS servizi dalla riga di comando e utilizzare script per automatizzarli. Per ulteriori informazioni sugli strumenti AWS CLI e per istruzioni sull'installazione degli AWS CLI strumenti, vedere quanto segue nella Guida per l'*AWS Command Line Interface utente*.
+ [AWS Command Line Interface Guida per l'utente](https://docs.aws.amazon.com/cli/latest/userguide/)
+ [Come configurare la AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) 

Se necessario, accedi `aws configure` per configurare l'utilizzo AWS CLI di una AWS regione in cui sono disponibili interrogazioni avanzate.

## Considerazioni
<a name="query-using-sql-editor-cli-considerations"></a>

**Prerequisiti**

[Se utilizzi una delle seguenti politiche AWS gestite, disporrai delle autorizzazioni necessarie per eseguire e salvare una query: [AWSServiceRoleForConfig](https://docs.aws.amazon.com/config/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWSServiceRoleForConfig)(ruolo collegato al servizio) o onfiGROLE. AWS\$1C](https://docs.aws.amazon.com/config/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWS_ConfigRole)

Altrimenti, è necessario che le autorizzazioni siano incluse nella politica gestita. [AWSConfigUserAccess](https://docs.aws.amazon.com/config/latest/developerguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWSConfigUserAccess) AWS 

**Elenco di proprietà su cui è possibile interrogare**

Un elenco aggiornato delle proprietà e dei relativi tipi di dati è disponibile in [GitHub](https://github.com/awslabs/aws-config-resource-schema).

**Interrogazioni e aggregatori avanzati**

Per eseguire una query su un aggregatore, creare un aggregatore. Per ulteriori informazioni, consulta [Creazione di aggregatori per AWS Config](aggregated-create.md).

Se si dispone già di un aggregatore configurato, nell'ambito della query, scegliere l'aggregatore per eseguire una query avanzata su tale aggregatore. Quando selezioni un aggregatore, valuta la possibilità di aggiungere l' Account AWS ID e la AWS regione nell'istruzione di query per visualizzare tali informazioni nei risultati.

## Query sui dati di configurazione delle risorse
<a name="query-resource-configuration-data"></a>

**Per eseguire query sui dati di configurazione delle risorse utilizzando l'editor di query (AWS CLI) per un singolo account e regione**

1. Apri un prompt dei comandi o una finestra del terminale.

1. Immettete il comando seguente per interrogare i dati di configurazione delle risorse.

   ```
   aws configservice select-resource-config --expression "SELECT resourceId WHERE resourceType='AWS::EC2::Instance'"
   ```

   A seconda della query, l'output ha il seguente aspetto:

   ```
   {
       "QueryInfo": {
           "SelectFields": [
               {
                   "Name": "resourceId"
               }
           ]
       },
       "Results": [
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}"
       ]
   }
   ```

**Per eseguire query sui dati di configurazione delle risorse utilizzando l'editor di query (AWS CLI) per più account e aree geografiche**

1. Apri un prompt dei comandi o una finestra del terminale.

1. Immettete il comando seguente per interrogare i dati di configurazione delle risorse.

   ```
   aws configservice select-aggregate-resource-config --expression "SELECT resourceId WHERE resourceType='AWS::EC2::Instance'" --configuration-aggregator-name my-aggregator
   ```

   A seconda della query, l'output ha il seguente aspetto:

   ```
   {
       "QueryInfo": {
           "SelectFields": [
               {
                   "Name": "resourceId"
               }
           ]
       },
       "Results": [
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}",
           "{\"resourceId\":\"ResourceId\"}"
       ]
   }
   ```
**Nota**  
Durante l'utilizzo dei tipi di `AWS::IAM::Policy` risorse `AWS::IAM::User` `AWS::IAM::Group``AWS::IAM::Role`,, e in una query avanzata, utilizzare`awsRegion = 'global'`. 

## Salvataggio di una query
<a name="put-saved-query"></a>

1. Apri un prompt dei comandi o una finestra del terminale.

1. Immettete il seguente comando per salvare una query.

   ```
   aws configservice put-stored-query --stored-query "{\"QueryName\": \"cli-test\", \"Expression\": \"SELECT *\", \"Description\": \"cli test query\" }" 
           --tags "[{ \"Key\": \"first-tag\", \"Value\": \"\" }, { \"Key\": \"second-tag\", \"Value\": \"non-empty-tag-value\" }]"
   ```

1. A seconda della query, l'output ha il seguente aspetto:

   ```
   {
       "QueryArn": "arn:aws:config:eu-central-1:Account ID:stored-query/cli-test/query-e65mijt4rmam5pab"
   }
   ```
**Nota**  
`--tags` è facoltativo. Quando passi i tag, i tag salvati non vengono restituiti né da `list-stored-queries` né da `get-stored-query`. Per recuperare i tag associati a una query salvata, è necessario utilizzare `list-tag-for-resources`.  
`--description` è facoltativo durante la creazione o l'aggiornamento di una query.

## Visualizzazione di tutte le query salvate
<a name="list-saved-queries"></a>

1. Immettere il comando seguente per visualizzare l'elenco di tutte le interrogazioni salvate.

   ```
   aws configservice list-stored-queries
   ```

1. A seconda della query, l'output ha il seguente aspetto:

   ```
   {
       "StoredQueryMetadata": [
           {
               "QueryId": "query-e65mijt4rmam5pab",
               "QueryArn": "arn:aws:config:eu-central-1:Account ID:stored-query/cli-test/query-e65mijt4rmam5pab",
               "QueryName": "cli-test"
           },
           {
               "QueryId": "query-rltwlewlqfivadxq",
               "QueryArn": "arn:aws:config:eu-central-1:Account ID:stored-query/cli-test-2/query-rltwlewlqfivadxq",
               "QueryName": "cli-test-2",
               "Description": "cli test query"
           }
       ]
   }
   }
   ```

## Recupero dei dettagli di una query salvata
<a name="get-saved-query"></a>

1. Immettete il seguente comando per ottenere i dettagli di una specifica interrogazione salvata.

   ```
   aws configservice get-stored-query --query-name cli-test
   ```

1. A seconda della query, l'output ha il seguente aspetto:

   ```
   {
       "StoredQuery": {
           "QueryId": "query-e65mijt4rmam5pab",
           "QueryArn": "arn:aws:config:eu-central-1:Account ID:stored-query/cli-test/query-e65mijt4rmam5pab",
           "QueryName": "cli-test",
           "Description": "cli test query",
           "Expression": "SELECT *"
       }
   }
   ```

## Eliminazione di una query salvata
<a name="delete-saved-query"></a>
+ Immettete il seguente comando per eliminare l'interrogazione salvata.

  ```
  aws configservice delete-stored-query --query-name cli-test
  ```

In caso di esito positivo, il comando viene eseguito senza ulteriore output.

# Processore di query in linguaggio naturale per interrogazioni AWS Config avanzate
<a name="query-assistant"></a>

**Nota**  
L'anteprima pubblica di AWS Config Natural Language Query Processor verrà interrotta entro il 15 gennaio 2026. Inoltre, puoi parlare AWS delle tue risorse utilizzando istruzioni in linguaggio naturale con Amazon Q Developer. Per ulteriori informazioni, consulta [Conversazione delle risorse con Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/chat-actions.html).

Il processore di query in linguaggio naturale per query avanzate utilizza [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html), una tecnologia di intelligenza artificiale generativa (AI generativa) che consente di inserire istruzioni in un inglese semplice e convertirle in un formato di query. ready-to-use Con il processore di interrogazioni in linguaggio naturale, puoi interrogare la tua o l'intera organizzazione. Account AWS AWS 

Un prompt può essere una domanda o una dichiarazione. Ad esempio, puoi inserire richieste come «Quali sistemi di bilanciamento del carico vengono creati dopo il 1° gennaio 2024?» e «Elenca tutte le mie funzioni lambda che esegue node js 16".

## Considerazioni
<a name="query-assistant-considerations"></a>

Il processore di query in linguaggio naturale non può eseguire le seguenti azioni:
+ Genera interrogazioni da lingue diverse dall'inglese.
+ Genera interrogazioni da prompt che non si riferiscono a interrogazioni avanzate.
+ Genera interrogazioni da prompt con più di 1000 caratteri.
+ Genera domande a partire da correzioni successive o da sessioni precedenti.
+ Spiega il codice che è stato generato.

## Esegui query utilizzando il processore di query in linguaggio naturale
<a name="use-a-sample-query"></a>

1. Accedi a Console di gestione AWS e apri la AWS Config console a [https://console.aws.amazon.com/config/casa](https://console.aws.amazon.com/config/home).

1. Scegliere **Query avanzate** dalla navigazione a sinistra per eseguire query sulle configurazioni delle risorse per un singolo account e regione o per più account e regioni.

1. Nella pagina **Interrogazioni avanzate**, scegli **Nuova query** per accedere all'editor di  query.
   + (Facoltativo) Per eseguire una query su un aggregatore, crea un aggregatore. Per ulteriori informazioni, consulta [Creazione di aggregatori per AWS Config](aggregated-create.md).
   + Se si dispone già di un aggregatore configurato, nell'ambito della query, scegliere l'aggregatore per eseguire una query avanzata su tale aggregatore. Quando selezioni un aggregatore, valuta la possibilità di aggiungere l' Account AWS ID e la AWS regione nell'istruzione della query per visualizzare tali informazioni nei risultati.

1. Nell'editor di Query, vai alla sezione **Natural language Query Processor**. **Inserisci un prompt in un inglese semplice, quindi scegli Genera.** Per alcuni esempi, consulta [Prompt di esempio](https://docs.aws.amazon.com/config/latest/developerguide/query-assistant.html#example-prompts).

1. Dopo aver generato una query, puoi scegliere **Copia** (funzionalmente equivalente a Ctrl\$1C) per copiare la query negli appunti oppure scegliere **Compila nell'editor**. Se inserita nell'editor, è possibile modificare la query generata in base alle proprie esigenze.

1. Per salvare questa query in una nuova, scegli **Salva con nome**.
   + Nel campo **Nome della query**, aggiorna il nome della query.
   + Nel campo **Descrizione**, aggiorna la descrizione della query.
   + Inserisci fino a 50 tag univoci per questa query.
   + Scegli **Save** (Salva).

1. Scegli **Esegui**. I risultati della query vengono visualizzati nella tabella sotto l'editor di query.

1. Scegliere **Esporta come** per esportare i risultati della query in formato CSV o JSON.
**Nota**  
I risultati della query sono impaginati. Quando si sceglie l'esportazione, vengono esportati fino a 500 risultati.   
Puoi anche usare il APIs per recuperare tutti i risultati. I risultati sono impaginati ed è possibile recuperare 100 risultati alla volta.

## Prompt di esempio
<a name="query-assistant-example-prompts"></a>

Di seguito sono riportati i prompt e le query di generazione che è possibile utilizzare come esempi.

------
#### [ Example: Quali sistemi di bilanciamento del carico sono stati creati dopo il 1° gennaio 2024? ]

**Prompt**: What load balancers were created after January 1, 2024?

**Interrogazione generata:**

```
SELECT
    resourceId,
    resourceType,
    resourceCreationTime
WHERE
    resourceType IN ('AWS::ElasticLoadBalancing::LoadBalancer', 'AWS::ElasticLoadBalancingV2::LoadBalancer')
AND
    resourceCreationTime > '2024-01-01T00:00:00.0Z'
ORDER BY
    resourceCreationTime
DESC
```

------
#### [ Example: Quali delle mie istanze di database RDS sono accessibili pubblicamente? ]

**Prompt**: Which of my RDS database instances are publicly accessible?

Interrogazione **generata**:

```
SELECT
    resourceId,
    resourceType,
    configuration.publiclyAccessible
WHERE 
    resourceType = 'AWS::RDS::DBInstance'
AND
    configuration.publiclyAccessible = true
```

------
#### [ Example: Quante istanze EC2 sono state create nell'ultimo anno? ]

**Prompt**: How many EC2 instances were created in last one year?

**Query generata**:

```
SELECT
    COUNT(*)
WHERE
    resourceType = 'AWS::EC2::Instance'
AND
    resourceCreationTime
BETWEEN
    '2023-05-10T16:56:25.000Z'
AND
    '2024-05-10T16:56:25.000Z'
```

------
#### [ Example: Quante istanze EC2 ho in ognuna delle mie? Account AWS ]

**Prompt**: How many EC2 instances do I have in each of my Account AWS?

**Query generata**:

```
SELECT
    accountId,
    COUNT(*)
WHERE
    resourceType = 'AWS::EC2::Instance'
GROUP BY
    accountId'
```

------
#### [ Example: A quali ruoli IAM è AdministratorAccess allegata la policy gestita? ]

**Prompt**: Which IAM roles have the managed policy AdministratorAccess attached?

**Interrogazione generata**:

```
SELECT
    resourceId,
    resourceName,
    resourceType
WHERE
    resourceType = 'AWS::IAM::Role'
AND
    configuration.attachedManagedPolicies.policyName = 'AdministratorAccess'
```

------
#### [ Example: Volumi EBS senza crittografia ]

**Prompt**: EBS volumes without encryption 

**Interrogazione generata**:

```
SELECT
    accountId
WHERE
    resourceType = 'AWS::EC2::Volume'
AND
    configuration.encrypted = false
```

------
#### [ Example:  Ottieni risorse non conformi ]

**Prompt**: Get noncompliant resources

**Interrogazione generata:**

```
SELECT
    resourceId,
    resourceType
WHERE
    resourceType = 'AWS::Config::ResourceCompliance'
AND
    configuration.complianceType = 'NON_COMPLIANT'
```

------
#### [ Example: Elenca tutte le mie funzioni lambda che esegue il nodo js 16 ]

**Prompt**: List all my lambda function that is running node js 16

**Interrogazione generata**:

```
SELECT
    accountId,
    resourceName
WHERE
    resourceType = 'AWS::Lambda::Function'
AND
    configuration.runtime = 'nodejs16.x'
```

------
#### [ Example: Quali certificati ACM scadono nei prossimi 30 giorni? ]

**Prompt**: What ACM certificates expire the next 30 days? 

Interrogazione **generata**:

```
SELECT
    resourceId,
    configuration.domainName,
    configuration.notAfter
WHERE
    resourceType = 'AWS::ACM::Certificate'
AND
    configuration.notAfter
BETWEEN
    '2024-05-10 16:59:53'
AND
    '2024-06-10 16:59:53’
```

**Nota**  
I tempi della query generata dipendono dall'ora in cui si immette il prompt.

------

## Fornire un feedback
<a name="query-assistant-feedback"></a>

È possibile fornire un feedback generale sul processore di query in linguaggio naturale o un feedback su una specifica query generata.

**Fornire feedback sul processore di interrogazioni in linguaggio naturale**

Scegli il pulsante **Fornisci feedback** che appare sopra il processore di interrogazioni in linguaggio naturale a destra. Puoi inserire la tua soddisfazione o insoddisfazione e fornire un feedback su come AWS Config rendere più utile la query in linguaggio naturale.

**Nota**  
Non divulgate informazioni personali, commercialmente sensibili o riservate.

**Fornire feedback su una specifica richiesta generata**

Puoi fornire il tuo feedback su una query generata scegliendo il pulsante pollice su o pollice giù che appare sotto la query generata.

## Supporto nelle regioni
<a name="query-assistant-region-support"></a>

Il processore di interrogazione in linguaggio naturale è supportato nelle seguenti regioni.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/config/latest/developerguide/query-assistant.html)

# Domande di esempio per AWS Config
<a name="example-query"></a>

Visualizza i seguenti esempi di interrogazioni.

------
#### [ Query to list all EC2 instances with AMI ID ami-12345 ]

Query:

```
SELECT
    resourceId,
    resourceType,
    configuration.instanceType,
    configuration.placement.tenancy,
    configuration.imageId,
    availabilityZone
WHERE
    resourceType = 'AWS::EC2::Instance'
AND
    configuration.imageId = 'ami-12345'
```

Risultati:

```
{
    "QueryInfo": {
        "SelectFields": [
            {
                "Name": "resourceId"
            },
            {
                "Name": "resourceType"
            },
            {
                "Name": "configuration.instanceType"
            },
            {
                "Name": "configuration.placement.tenancy"
            },
            {
                "Name": "configuration.imageId"
            },
            {
                "Name": "availabilityZone"
            }
        ]
    },
    "Results": [
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2a\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t1.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2a\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}"
    ]
}
```

------
#### [ Query for count of resources grouped by their AWS Config rules compliance status ]

Query:

```
SELECT
    configuration.complianceType,
    COUNT(*)
WHERE
    resourceType = 'AWS::Config::ResourceCompliance'
GROUP BY
    configuration.complianceType
```

Risultati:

```
{
    "QueryInfo": {
        "SelectFields": [
            {
                "Name": "configuration.complianceType"
            },
            {
                "Name": "COUNT(*)"
            }
        ]
    },
    "Results": [
        "{\"COUNT(*)\":163,\"configuration\":{\"complianceType\":\"NON_COMPLIANT\"}}",
        "{\"COUNT(*)\":2,\"configuration\":{\"complianceType\":\"COMPLIANT\"}}"
    ]
}
```

------
#### [ Query for the compliance status of AWS Conformance packs ]

Query:

```
SELECT
    resourceId,
    resourceName,
    resourceType,
    configuration.complianceType
WHERE
    resourceType = 'AWS::Config::ConformancePackCompliance'
```

Risultati:

```
{
    "QueryInfo": {
        "SelectFields": [
            {
                "Name": "resourceId"
            }, 
            {
                "Name": "resourceName"
            }, 
            {
                "Name": "resourceType"
            }, 
            {
                "Name": "configuration.complianceType"
            }
        ]
    }, 
    "Results": [
        "{\"resourceId\":\"conformance-pack-conformance-pack-ID\",\"configuration\":{\"complianceType\":\"COMPLIANT\"},\"resourceName\":\"MyConformancePack1\",\"resourceType\":\"AWS::Config::ConformancePackCompliance\"}", 
        "{\"resourceId\":\"conformance-pack-conformance-pack-ID\",\"configuration\":{\"complianceType\":\"NON_COMPLIANT\"},\"resourceName\":\"MyConformancePack2\",\"resourceType\":\"AWS::Config::ConformancePackCompliance\"}", 
        "{\"resourceId\":\"conformance-pack-conformance-pack-ID\",\"configuration\":{\"complianceType\":\"NON_COMPLIANT\"},\"resourceName\":\"MyConformancePack3\",\"resourceType\":\"AWS::Config::ConformancePackCompliance\"}"
    ]
}
```

------
#### [ Query to get counts of AWS resources grouped by account ID ]

Query:

```
aws configservice select-aggregate-resource-config --expression "SELECT COUNT(*), accountId group by accountId" --configuration-aggregator-name my-aggregator
```

Risultati:

```
{
    "Results": [
        "{\"COUNT(*)\":2407,\"accountId\":\"accountId\"}",
        "{\"COUNT(*)\":726,\"accountId\":\"accountId\"}"
    ],
    "QueryInfo": {
        "SelectFields": [
            {
                "Name": "COUNT(*)"
            },
            {
                "Name": "accountId"
            }
        ]
    }
}
```

------
#### [ Query to list all EC2 volumes that are not in use ]

Query:

```
SELECT 
    resourceId, 
    accountId,
    awsRegion, 
    resourceType, 
    configuration.volumeType,
    configuration.size, 
    resourceCreationTime,
    tags,
    configuration.encrypted, 
    configuration.availabilityZone,
    configuration.state.value 
WHERE
    resourceType = 'AWS::EC2::Volume' 
AND 
    configuration.state.value = 'available'
```

Risultati:

```
{
    "Results": [
        "{\"accountId\":\"accountId\",\"resourceId\":\"vol-0174de9c962f6581c\",\"awsRegion\":\"us-west-2\",\"configuration\":{\"volumeType\":\"gp2\",\"encrypted\":false,\"size\":100.0,\"state\":{\"value\":\"available\"},\"availabilityZone\":\"us-west-2a\"},\"resourceCreationTime\":\"2020-02-21T07:39:43.771Z\",\"tags\":[],\"resourceType\":\"AWS::EC2::Volume\"}",
        "{\"accountId\":\"accountId\",\"resourceId\":\"vol-0cbeb652a74af2f8f\",\"awsRegion\":\"us-east-1\",\"configuration\":{\"volumeType\":\"gp2\",\"encrypted\":false,\"size\":100.0,\"state\":{\"value\":\"available\"},\"availabilityZone\":\"us-east-1a\"},\"resourceCreationTime\":\"2020-02-21T07:28:40.639Z\",\"tags\":[],\"resourceType\":\"AWS::EC2::Volume\"}"
        "{\"accountId\":\"accountId\",\"resourceId\":\"vol-0a49952d528ec8ba2\",\"awsRegion\":\"ap-south-1\",\"configuration\":{\"volumeType\":\"gp2\",\"encrypted\":false,\"size\":100.0,\"state\":{\"value\":\"available\"},\"availabilityZone\":\"ap-south-1a\"},\"resourceCreationTime\":\"2020-02-21T07:39:31.800Z\",\"tags\":[],\"resourceType\":\"AWS::EC2::Volume\"}",
    ],
    "QueryInfo": {
        "SelectFields": [
            {
                "Name": "resourceId"
            },
            {
                "Name": "accountId"
            },
            {
                "Name": "awsRegion"
            },
            {
                "Name": "resourceType"
            },
            {
                "Name": "configuration.volumeType"
            },
            {
                "Name": "configuration.size"
            },
            {
                "Name": "resourceCreationTime"
            },
            {
                "Name": "tags"
            },
            {
                "Name": "configuration.encrypted"
            },
            {
                "Name": "configuration.availabilityZone"
            },
            {
                "Name": "configuration.state.value"
            }
        ]
    }
}
```

------

# Esempi di domande relazionali per AWS Config
<a name="examplerelationshipqueries"></a>

Visualizza i seguenti esempi di interrogazioni relazionali.

------
#### [ Find EIPs related to an EC2 instance ]

```
SELECT 
    resourceId 
WHERE 
    resourceType = 'AWS::EC2::EIP'
    AND relationships.resourceId = 'i-abcd1234'
```

------
#### [ Find EIPs related to an EC2 network interface ]

```
SELECT 
    resourceId 
WHERE 
    resourceType = 'AWS::EC2::EIP' 
    AND relationships.resourceId = 'eni-abcd1234'
```

------
#### [ Find EC2 instances and network interfaces related to a security group ]

```
SELECT 
    resourceId 
WHERE 
    resourceType IN ('AWS::EC2::Instance', 'AWS::EC2::NetworkInterface') 
    AND relationships.resourceId = 'sg-abcd1234'
```

O

```
SELECT 
    resourceId 
WHERE 
    resourceType = 'AWS::EC2::Instance' 
    AND relationships.resourceId = 'sg-abcd1234'

SELECT 
    resourceId 
WHERE 
    resourceType = 'AWS::EC2::NetworkInterface' 
    AND relationships.resourceId = 'sg-abcd1234'
```

------
#### [ Find EC2 instances, network ACLs, network interfaces and route tables related to a subnet ]

```
SELECT 
    resourceId 
WHERE 
    resourceType IN ('AWS::EC2::Instance', 'AWS::EC2::NetworkACL', 'AWS::EC2::NetworkInterface', 'AWS::EC2::RouteTable') 
    AND relationships.resourceId = 'subnet-abcd1234'
```

------
#### [ Find EC2 instances, internet gateways, network ACLs, network interfaces, route tables, subnets and security groups related to a VPC ]

```
SELECT 
    resourceId 
WHERE 
    resourceType IN ('AWS::EC2::Instance', 'AWS::EC2::InternetGateway', 'AWS::EC2::NetworkACL', 'AWS::EC2::NetworkInterface', 'AWS::EC2::RouteTable', 'AWS::EC2::Subnet', 'AWS::EC2::SecurityGroup') 
    AND relationships.resourceId = 'vpc-abcd1234'
```

------
#### [ Find EC2 route tables related to a VPN gateway ]

```
SELECT 
    resourceId 
WHERE 
    resourceType = 'AWS::EC2::RouteTable' 
    AND relationships.resourceId = 'vgw-abcd1234'
```

------

## Limitazioni
<a name="query-limitations"></a>

**Nota**  
L'interrogazione avanzata non supporta l'interrogazione di risorse che non sono state configurate per essere registrate dal registratore di configurazione. AWS Config crea Configuration Items (CIs) con `ResourceNotRecorded` in `configurationItemStatus` quando una risorsa è stata scoperta ma non è configurata per essere registrata dal registratore di configurazione. Sebbene un aggregatore li aggreghi CIs, la query avanzata non supporta l'interrogazione con. CIs `ResourceNotRecorded` Aggiorna le impostazioni del registratore per abilitare la registrazione dei tipi di risorse su cui eseguire le query.

Come sottoinsieme di SQL `SELECT`, la sintassi di query ha le limitazioni seguenti:
+ In una query non sono supportate le parole chiave `ALL`, `AS`, `DISTINCT`, `FROM`, `HAVING`, `JOIN` e `UNION`. Le query con valore `NULL` non sono supportate.
+ Nessun supporto per `CASE` istruzioni complesse per la creazione di un campo prioritario direttamente nella query.
+ Non sono supportate query su risorse di terze parti. Per le risorse di terze parti recuperate utilizzando query avanzate, il campo di configurazione sarà impostato su `NULL`.
+ Non sono supportate strutture annidate (come i tag) da decomprimere con le query SQL.
+ Nessun supporto per l'interrogazione delle risorse eliminate. Per scoprire le risorse eliminate, vedi [Ricerca delle risorse scoperte da AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/looking-up-discovered-resources.html).
+ Il formato abbreviato `SELECT` per tutte le colonne (cioè `SELECT *`) seleziona solo le proprietà scalari di livello superiore di un elemento di configurazione. Le proprietà scalari restituite sono `accountId`, `awsRegion`, `arn`, `availabilityZone`, `configurationItemCaptureTime`, `resourceCreationTime`, `resourceId`, `resourceName`, `resourceType` e `version`.
+ Limitazioni dei caratteri jolly:
  + I caratteri jolly sono supportati solo per i valori di proprietà e non per le chiavi di proprietà (ad esempio, `...WHERE someKey LIKE 'someValue%'` è supportato, mentre `...WHERE 'someKey%' LIKE 'someValue%'` non è supportato).
  + Supporto solo per caratteri jolly suffisso (ad esempio, `...LIKE 'AWS::EC2::%'` e `...LIKE 'AWS::EC2::_'` sono supportati, mentre `...LIKE '%::EC2::Instance'` e `...LIKE '_::EC2::Instance'` non sono supportati).
  + Le corrispondenze con caratteri jolly devono contenere almeno tre caratteri (ad esempio, `...LIKE 'ab%'` e `...LIKE 'ab_'` non sono consentiti, mentre `...LIKE 'abc%'` e `...LIKE 'abc_'` sono consentiti). 
**Nota**  
Anche il carattere "`_`" (trattino basso singolo) viene considerato come un carattere jolly.
+ Limitazioni delle aggregazioni:
  + Le funzioni di aggregazione possono accettare un solo argomento o una sola proprietà.
  + Le funzioni di aggregazione non possono accettare altre funzioni come argomenti.
  + `GROUP BY` con una clausola `ORDER BY` che fa riferimento a funzioni aggregate può contenere una sola proprietà.
  + Per tutte le altre aggregazioni, le clausole `GROUP BY` possono contenere fino a tre proprietà.
  + L'impaginazione è supportata per tutte le query aggregate tranne quando la clausola `ORDER BY` ha una funzione di aggregazione. Ad esempio, `GROUP BY X, ORDER BY Y` non funziona se `Y` è una funzione di aggregazione.
  + Nessun supporto per le clausole `HAVING` nelle aggregazioni.
+ Limitazioni degli identificatori non corrispondenti:

  Gli identificatori non corrispondenti sono proprietà che hanno la stessa ortografia ma lettere maiuscole e minuscole diverse. La query avanzata non supporta l'elaborazione di query che contengono identificatori non corrispondenti. Esempio:
  + Due proprietà con la stessa ortografia ma con lettere maiuscole e minuscole diverse (`configuration.dbclusterIdentifier` e `configuration.dBClusterIdentifier`).
  + Due proprietà in cui una proprietà è un sottoinsieme dell'altra e hanno lettere maiuscole e minuscole diverse (`configuration.ipAddress` e `configuration.ipaddressPermissions`).

## Comportamento dell' notation/IP intervallo CIDR per interrogazioni avanzate
<a name="query-cidr-notation"></a>

La notazione CIDR viene convertita in intervalli IP per la ricerca.

Ciò significa che `"="` e `"BETWEEN"` cercano qualsiasi intervallo che includa l'IP fornito, anziché uno esatto.

Per cercare un intervallo IP esatto, è necessario aggiungere condizioni aggiuntive da escludere al di IPs fuori dell'intervallo.

**Example Ricerca del blocco CIDR esatto 10.0.0.0/24**  

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

**Example Ricerca dell'indirizzo IP esatto 192.168.0.2/32**  

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

## Comportamento di più proprietà all'interno di un array per interrogazioni avanzate
<a name="array-property-query-behavior"></a>

Quando si esegue una query su più proprietà all'interno di una matrice di oggetti, le corrispondenze vengono calcolate rispetto a *tutti gli elementi dell'array*.

Ad esempio, per una risorsa R con le regole A e B, la risorsa è conforme alla regola A ma non conforme alla regola B. La risorsa R viene archiviata come:

```
{ 
    configRuleList: [ 
        {
            configRuleName: 'A', complianceType: 'compliant'
        }, 
        {   
            configRuleName: 'B', complianceType: 'non_compliant'
        } 
    ]
}
```

La risorsa R verrà restituita da questa query:

```
SELECT configuration WHERE configuration.configRuleList.complianceType = 'non_compliant' 
AND configuration.configRuleList.configRuleName = 'A'
```

La prima condizione `configuration.configRuleList.complianceType = 'non_compliant'` viene applicata a TUTTI gli elementi in R.configRuleList, poiché R ha una regola (regola B) con complianceType = 'non\$1compliant', la condizione viene valutata come vera.

La seconda condizione `configuration.configRuleList.configRuleName` viene applicata a TUTTI gli elementi in R.configRuleList, poiché R ha una regola (regola A) con configRuleName = 'A', la condizione viene valutata come vera. Poiché entrambe le condizioni sono true, verrà restituita la risorsa R.

## Supporto nelle regioni
<a name="query-regionsupport"></a>

Le query avanzate sono supportate nelle seguenti regioni geografiche:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/config/latest/developerguide/querying-AWS-resources.html)