

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

# AWS IoT Core variabili politiche


AWS IoT Core definisce le variabili di policy che possono essere utilizzate nelle AWS IoT Core politiche del `Condition` blocco `Resource` or. Quando una policy viene valutata, le variabili vengono sostituite dai valori effettivi. Ad esempio, se un dispositivo è connesso al broker di AWS IoT Core messaggi con un ID client di 100-234-3456, la variabile di policy viene sostituita nel documento di `iot:ClientId` policy da 100-234-3456.

AWS IoT Core le policy possono utilizzare caratteri jolly e seguire una convenzione simile alle policy IAM. L'inserimento di un `*` (asterisco) nella stringa può essere considerato come carattere jolly corrispondente a qualsiasi carattere. Puoi ad esempio usare `*` per descrivere più nomi di argomenti MQTT nell'attributo `Resource` di una policy. I caratteri `+` e `#` sono trattati come stringhe letterali in una policy. Per una policy di esempio che illustra come utilizzare i caratteri jolly, consulta[Utilizzo di caratteri jolly in MQTT e nelle policy AWS IoT Core](pub-sub-policy.md#pub-sub-policy-cert).

È inoltre possibile utilizzare variabili di policy predefinite con valori fissi per rappresentare caratteri che altrimenti hanno un significato speciale. Questi caratteri speciali sono `$(*)`, `$(?)` e `$($)`. Per ulteriori informazioni sulle variabili di policy e sui caratteri speciali, consulta [Elementi delle policy IAM: variabili e tag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html) e [Creazione di una condizione con più chiavi o valori](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html).

**Topics**
+ [

# Variabili AWS IoT Core politiche di base
](basic-policy-variables.md)
+ [

# Variabili delle policy di oggetto
](thing-policy-variables.md)
+ [

# Variabili della politica del certificato AWS IoT Core X.509
](cert-policy-variables.md)

# Variabili AWS IoT Core politiche di base


AWS IoT Core definisce le seguenti variabili politiche di base:
+ `aws:SourceIp`: l'indirizzo IP del client connesso al broker di AWS IoT Core messaggi.
+ `iot:ClientId`: ID client usato per la connessione al broker di messaggi AWS IoT Core .
+ `iot:DomainName`: il nome di dominio del client a cui è connesso AWS IoT Core.

**Topics**
+ [

## Esempi `ClientId` di variabili `SourceIp` politiche
](#basic-policy-variables-example)
+ [

## Esempi di variabili `iot:DomainName` politiche
](#basic-policy-variables-example-domain)

## Esempi `ClientId` di variabili `SourceIp` politiche


La seguente AWS IoT Core politica mostra una politica che utilizza variabili di politica. `aws:SourceIp`può essere utilizzato nell'elemento Condition della politica per consentire ai responsabili di effettuare richieste API solo all'interno di un intervallo di indirizzi specifico. Per alcuni esempi, consulta [Autorizzazione di utenti e servizi cloud a utilizzare Jobs AWS IoT](iam-policy-users-jobs.md).

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"iot:Connect"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:client/clientid1"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"iot:Publish"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:ClientId}"
			],
			"Condition": {
				"IpAddress": {
					"aws:SourceIp": "123.45.167.89"
				}
			}
		}
	]
}
```

In questi esempi, `${iot:ClientId}` viene sostituito dall'ID del client connesso al broker di AWS IoT Core messaggi quando viene valutata la politica. Quando usi variabili delle policy come `${iot:ClientId}`, puoi aprire inavvertitamente l'accesso ad argomenti indesiderati. Ad esempio, se usi una policy che usa `${iot:ClientId}` per specificare un filtro di argomenti:

```
{
	"Effect": "Allow",
	"Action": [
		"iot:Subscribe"
	],
	"Resource": [
		"arn:aws:iot:us-east-1:123456789012:topicfilter/my/${iot:ClientId}/topic"
	]
}
```

Un client può connettersi usando `+` come ID client. Questo permette all'utente di sottoscrivere qualsiasi argomento corrispondente al filtro di argomenti `my/+/topic`. Per proteggerti da tali lacune di sicurezza, utilizza l'azione `iot:Connect` politica per controllare quale client IDs può connettersi. Ad esempio, questa policy permette di connettersi solo a quei client il cui ID client è `clientid1`:

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"iot:Connect"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:client/clientid"
			]
		}
	]
}
```

**Nota**  
L'utilizzo della variabile di policy `${iot:ClientId}` con `Connect` non è consigliato. Non esiste alcun controllo sul valore di `ClientId`, quindi un collegamento con un ID client diverso può superare la convalida ma causare la disconnessione. Poiché qualsiasi `ClientId` è consentito, l'impostazione di un ID client casuale può aggirare le policy del gruppo di oggetti.

## Esempi di variabili `iot:DomainName` politiche


È possibile aggiungere la variabile di `iot:DomainName` policy per limitare i domini che possono essere utilizzati. L'aggiunta della variabile di `iot:DomainName` policy consente ai dispositivi di connettersi solo a endpoint configurati specifici.

La seguente politica consente ai dispositivi di connettersi al dominio specificato.

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": {
		"Sid": "AllowConnectionsToSpecifiedDomain",
		"Effect": "Allow",
		"Action": [
			"iot:Connect"
		],
		"Resource": "arn:aws:iot:us-east-1:123456789012:client/clientid",
		"Condition": {
			"StringEquals": {
				"iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com"
			}
		}
	}
}
```

La seguente politica impedisce ai dispositivi di connettersi al dominio specificato.

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": {
		"Sid": "DenyConnectionsToSpecifiedDomain",
		"Effect": "Deny",
		"Action": [
			"iot:Connect"
		],
		"Resource": "arn:aws:iot:us-east-1:123456789012:client/clientid",
		"Condition": {
			"StringEquals": {
				"iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com"
			}
		}
	}
}
```

Per ulteriori informazioni sull'operatore condizionale della policy, consulta [IAM JSON Policy elements:](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) Condition operators. Per ulteriori informazioni sulle configurazioni dei domini, consulta [Cos'è una](https://docs.aws.amazon.com//iot/latest/developerguide/iot-custom-endpoints-configurable.html) configurazione di dominio? .

# Variabili delle policy di oggetto


Le variabili Thing Policy consentono AWS IoT Core di scrivere policy che concedono o negano le autorizzazioni in base alle proprietà degli oggetti, come i nomi degli oggetti, i tipi di oggetti e i valori degli attributi degli oggetti. È possibile utilizzare le variabili Thing Policy per applicare la stessa policy per controllare più dispositivi. AWS IoT Core Per ulteriori informazioni sul provisioning dei dispositivi, consulta [Provisioning dei dispositivi](iot-provision.html).

Se si utilizza un'associazione di oggetti non esclusiva, è possibile allegare lo stesso certificato a più elementi. Per mantenere un'associazione chiara ed evitare potenziali conflitti, è necessario abbinare l'ID cliente al nome dell'oggetto. In questo caso, si ottiene il nome dell'oggetto dall'ID client nel `Connect` messaggio MQTT inviato quando un oggetto si connette a AWS IoT Core.

Tenere presente quanto segue quando si utilizzano le variabili delle policy dell'oggetto nelle policy AWS IoT Core .
+ Usa l'[AttachThingPrincipal](https://docs.aws.amazon.com/iot/latest/apireference/API_AttachThingPrincipal.html)API per allegare certificati o principali (identità autenticate di Amazon Cognito) a un oggetto.
+ Se è attiva un'associazione di oggetti non esclusiva, quando sostituisci i nomi degli oggetti con variabili di policy degli oggetti, il valore di contenuto nel messaggio di connessione MQTT o `clientId` nella connessione TLS deve corrispondere esattamente al nome dell'oggetto.

Sono disponibili le variabili delle policy di oggetto seguenti:
+ `iot:Connection.Thing.ThingName`

  Si risolve nel nome dell'elemento nel AWS IoT Core registro per il quale viene valutata la policy. AWS IoT Core utilizza il certificato che il dispositivo presenta al momento dell'autenticazione per determinare quale elemento utilizzare per verificare la connessione. Questa variabile di policy è disponibile solo quando un dispositivo si connette tramite MQTT o MQTT tramite il protocollo. WebSocket 
+ `iot:Connection.Thing.ThingTypeName`

  Questa variabile restituisce il tipo di oggetto associato all'oggetto per cui viene valutata la policy. L'ID client della WebSocket connessione MQTT/ deve essere lo stesso del nome dell'oggetto. Questa variabile di policy è disponibile solo quando ci si connette tramite MQTT o MQTT tramite il protocollo. WebSocket
+ `iot:Connection.Thing.Attributes[attributeName]`

  Questa variabile restituisce il valore dell'attributo specificato associato all'oggetto per cui viene valutata la policy. A un oggetto possono essere associati fino a 50 attributi. Ogni attributo è disponibile come variabile di politica: `iot:Connection.Thing.Attributes[attributeName]` dove *attributeName* è il nome dell'attributo. L'ID client della MQTT/WebSocket connessione deve essere lo stesso del nome dell'oggetto. Questa variabile di policy è disponibile solo quando ci si connette tramite MQTT o MQTT tramite il WebSocket protocollo.
+ `iot:Connection.Thing.IsAttached`

  `iot:Connection.Thing.IsAttached: ["true"]`impone che solo i dispositivi registrati AWS IoT e collegati al principale possano accedere alle autorizzazioni previste dalla policy. Puoi utilizzare questa variabile per impedire la connessione a un dispositivo AWS IoT Core se presenta un certificato che non è collegato a un elemento IoT nel AWS IoT Core registro. Questa variabile ha dei valori `true` o `false` indica che l'elemento di connessione è collegato al certificato o all'identità di Amazon Cognito nel registro utilizzando l'API. [AttachThingPrincipal](https://docs.aws.amazon.com/iot/latest/apireference/API_AttachThingPrincipal.html) Il nome dell'oggetto è preso come ID client. 

Se l'ID client corrisponde al nome dell'oggetto o se alleghi il certificato esclusivamente a un oggetto, l'utilizzo di variabili di policy nella definizione della policy può semplificare la gestione delle policy. Invece di creare policy individuali per ogni elemento IoT, puoi definire una singola policy utilizzando le variabili della policy del thing. Questa policy può essere applicata a tutti i dispositivi in modo dinamico. Di seguito è riportato un esempio di policy per mostrarne il funzionamento. Per ulteriori informazioni, consulta [Associazione di qualsiasi AWS IoT cosa a una connessione client MQTT](exclusive-thing.md).

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Condition": {
				"StringLike": {
					"iot:ClientId": "*${iot:Connection.Thing.Attributes[envType]}"
				}
			},
			"Effect": "Allow",
			"Action": "iot:Connect",
			"Resource": "arn:aws:iot:us-east-1:123456789012:client/*"
		}
	]
}
```

Questo esempio di policy consente agli elementi a cui connettersi AWS IoT Core se il loro ID client termina con il valore del loro `envType` attributo. Potranno connettersi solo gli elementi con un modello di ID client corrispondente.

# Variabili della politica del certificato AWS IoT Core X.509


Le variabili delle politiche dei certificati X.509 aiutano a scrivere le politiche. AWS IoT Core Queste politiche concedono autorizzazioni basate sugli attributi del certificato X.509. Le seguenti sezioni descrivono come utilizzare queste variabili della politica dei certificati.

**Importante**  
Se il certificato X.509 non include un particolare attributo di certificato ma nel documento di policy viene utilizzata la corrispondente variabile di politica del certificato, la valutazione della politica potrebbe portare a un comportamento imprevisto.

## CertificateId


Nell'[RegisterCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCertificate.html)API, `certificateId` viene visualizzato nel corpo della risposta. Per ottenere informazioni sul certificato, utilizza il comando `certificateId` in [DescribeCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeCertificate.html).

## Attributi dell'autorità emittente


Le seguenti variabili di AWS IoT Core policy supportano l'autorizzazione o la negazione delle autorizzazioni, in base agli attributi del certificato impostati dall'emittente del certificato.
+ `iot:Certificate.Issuer.DistinguishedNameQualifier`
+ `iot:Certificate.Issuer.Country`
+ `iot:Certificate.Issuer.Organization`
+ `iot:Certificate.Issuer.OrganizationalUnit`
+ `iot:Certificate.Issuer.State`
+ `iot:Certificate.Issuer.CommonName`
+ `iot:Certificate.Issuer.SerialNumber`
+ `iot:Certificate.Issuer.Title`
+ `iot:Certificate.Issuer.Surname`
+ `iot:Certificate.Issuer.GivenName`
+ `iot:Certificate.Issuer.Initials`
+ `iot:Certificate.Issuer.Pseudonym`
+ `iot:Certificate.Issuer.GenerationQualifier` 

## Attributi soggetto


Le seguenti variabili di AWS IoT Core policy supportano la concessione o la negazione delle autorizzazioni, in base agli attributi dell'oggetto del certificato impostati dall'emittente del certificato.
+ `iot:Certificate.Subject.DistinguishedNameQualifier`
+ `iot:Certificate.Subject.Country`
+ `iot:Certificate.Subject.Organization`
+ `iot:Certificate.Subject.OrganizationalUnit`
+ `iot:Certificate.Subject.State`
+ `iot:Certificate.Subject.CommonName`
+ `iot:Certificate.Subject.SerialNumber`
+ `iot:Certificate.Subject.Title`
+ `iot:Certificate.Subject.Surname`
+ `iot:Certificate.Subject.GivenName`
+ `iot:Certificate.Subject.Initials`
+ `iot:Certificate.Subject.Pseudonym`
+ `iot:Certificate.Subject.GenerationQualifier` 

I certificati X.509 offrono a questi attributi la possibilità di contenere uno o più valori. Per impostazione predefinita, le variabili delle policy per ogni attributo con più valori restituiscono il primo valore. Ad esempio, l'attributo `Certificate.Subject.Country` potrebbe contenere un elenco di nomi di paese, ma quando viene valutato in una policy, `iot:Certificate.Subject.Country` viene sostituito con il nome del primo paese.

Puoi richiedere un valore di attributo specifico diverso dal primo usando un indice a base uno. Ad esempio, `iot:Certificate.Subject.Country.1` viene sostituito dal secondo nome di paese nell'attributo `Certificate.Subject.Country`. Se specifichi un valore di indice che non esiste, ad esempio se richiedi un terzo valore quando all'attributo ne sono assegnati solo due, non viene eseguita alcuna sostituzione e l'autorizzazione non riesce. Puoi anche usare il suffisso `.List` nel nome di variabile della policy per specificare tutti i valori dell'attributo.

## Attributi dei nomi alternativi dell'autorità emittente


Le seguenti variabili di AWS IoT Core policy supportano la concessione o la negazione delle autorizzazioni, in base agli attributi alternativi del nome dell'emittente impostati dall'emittente del certificato.
+ `iot:Certificate.Issuer.AlternativeName.RFC822Name`
+ `iot:Certificate.Issuer.AlternativeName.DNSName`
+ `iot:Certificate.Issuer.AlternativeName.DirectoryName`
+ `iot:Certificate.Issuer.AlternativeName.UniformResourceIdentifier`
+ `iot:Certificate.Issuer.AlternativeName.IPAddress`

## Attributi dei nomi alternativi di oggetto


Le seguenti variabili di AWS IoT Core policy supportano la concessione o la negazione delle autorizzazioni, in base agli attributi del nome alternativo del soggetto impostati dall'emittente del certificato.
+ `iot:Certificate.Subject.AlternativeName.RFC822Name`
+ `iot:Certificate.Subject.AlternativeName.DNSName`
+ `iot:Certificate.Subject.AlternativeName.DirectoryName`
+ `iot:Certificate.Subject.AlternativeName.UniformResourceIdentifier`
+ `iot:Certificate.Subject.AlternativeName.IPAddress`

## Altri attributi


È possibile utilizzare `iot:Certificate.SerialNumber` per consentire o negare l'accesso alle AWS IoT Core risorse, in base al numero di serie di un certificato. La variabile di policy `iot:Certificate.AvailableKeys` contiene il nome di tutte le variabili delle policy di certificato che contengono valori.

# Utilizzo delle variabili di policy dei certificati X.509


Questo argomento fornisce dettagli su come utilizzare le variabili delle politiche dei certificati. Le variabili delle politiche di certificato X.509 sono essenziali quando si creano AWS IoT Core politiche che forniscono autorizzazioni basate sugli attributi del certificato X.509. Se il certificato X.509 non include un particolare attributo di certificato ma nel documento di policy viene utilizzata la corrispondente variabile di politica del certificato, la valutazione della politica potrebbe portare a un comportamento imprevisto. Questo perché la variabile di policy mancante non viene valutata nella dichiarazione politica.

**Topics**
+ [

## Esempio di certificato X.509
](#certificate-example)
+ [

## Utilizzo degli attributi dell'emittente del certificato come variabili della politica del certificato
](#issuer-attributes-policy)
+ [

## Utilizzo degli attributi dell'oggetto del certificato come variabili della politica del certificato
](#subject-attributes-policy)
+ [

## Utilizzo degli attributi di nome alternativi dell'emittente del certificato come variabili della politica del certificato
](#issuer-alternate-name-attributes-policy)
+ [

## Utilizzo degli attributi del nome alternativo del soggetto del certificato come variabili della politica del certificato
](#subject-alternate-name-attributes-policy)
+ [

## Utilizzo di un altro attributo di certificato come variabile di politica del certificato
](#other-attributes-policy)
+ [

## Limitazioni per le variabili delle policy di certificato X.509
](#policy-limits)
+ [

## Politiche di esempio che utilizzano variabili di policy relative ai certificati
](#example-attributes-policy)

## Esempio di certificato X.509


Un tipico certificato X.509 potrebbe apparire come segue. Questo certificato di esempio include gli attributi del certificato. Durante la valutazione delle AWS IoT Core politiche, i seguenti attributi del certificato verranno compilati come variabili dei criteri di certificazione:`Serial Number`,`Issuer`, `Subject``X509v3 Issuer Alternative Name`, e`X509v3 Subject Alternative Name`.

```
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            92:12:85:cb:b7:a5:e0:86
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, O=IoT Devices, OU=SmartHome, ST=WA, CN=IoT Devices Primary CA, 
				GN=Primary CA1/initials=XY/dnQualifier=Example corp,
				SN=SmartHome/ title=CA1/pseudonym=Primary_CA/generationQualifier=2/serialNumber=987		
        Validity
            Not Before: Mar 26 03:25:40 2024 GMT
            Not After : Apr 28 03:25:40 2025 GMT
        Subject: C=US, O=IoT Devices, OU=LightBulb, ST=NY, CN=LightBulb Device Cert, 
				GN=Bulb/initials=ZZ/dnQualifier=Bulb001, 
				SN=Multi Color/title=RGB/pseudonym=RGB Device/generationQualifier=4/serialNumber=123
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    << REDACTED >>
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            X509v3 Key Usage: 
                Digital Signature, Non Repudiation, Key Encipherment
            X509v3 Subject Alternative Name: 
                DNS:example.com, IP Address:1.2.3.4, URI:ResourceIdentifier001, email:device1@example.com, DirName:/C=US/O=IoT/OU=SmartHome/CN=LightBulbCert
            X509v3 Issuer Alternative Name: 
                DNS:issuer.com, IP Address:5.6.7.8, URI:PrimarySignerCA, email:primary@issuer.com, DirName:/C=US/O=Issuer/OU=IoT Devices/CN=Primary Issuer CA
    Signature Algorithm: sha256WithRSAEncryption
         << REDACTED >>
```

## Utilizzo degli attributi dell'emittente del certificato come variabili della politica del certificato


La tabella seguente fornisce dettagli su come gli attributi dell'emittente del certificato verranno inseriti in una politica. AWS IoT Core 


**Attributi dell'emittente da inserire in una politica**  

| Attributi dell'emittente del certificato | Variabili della politica dei certificati | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/use-policy-variables.html)  | 

## Utilizzo degli attributi dell'oggetto del certificato come variabili della politica del certificato


La tabella seguente fornisce dettagli su come gli attributi dell'oggetto del certificato verranno inseriti in una AWS IoT Core politica.


**Attributi del soggetto da inserire in una politica**  

| Attributi dell'oggetto del certificato | Variabili della politica dei certificati | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/use-policy-variables.html)  | 

## Utilizzo degli attributi di nome alternativi dell'emittente del certificato come variabili della politica del certificato


La tabella seguente fornisce dettagli su come gli attributi dei nomi alternativi dell'emittente del certificato verranno inseriti in una politica. AWS IoT Core 


**Attributi del nome alternativi dell'emittente da inserire in una policy**  

| Nome alternativo dell'emittente X509v3 | Attributo in una politica | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/use-policy-variables.html)  | 

## Utilizzo degli attributi del nome alternativo del soggetto del certificato come variabili della politica del certificato


La tabella seguente fornisce dettagli su come gli attributi del nome alternativo del soggetto del certificato verranno inseriti in una politica. AWS IoT Core 


**Attributi del nome alternativo del soggetto da inserire in una policy**  

| Nome alternativo del soggetto X509v3 | Attributo in una politica | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/use-policy-variables.html)  | 

## Utilizzo di un altro attributo di certificato come variabile di politica del certificato


La tabella seguente fornisce dettagli su come gli altri attributi del certificato verranno inseriti in una AWS IoT Core politica.


**Altri attributi da inserire in una policy**  

| Altro attributo del certificato | Variabile di politica del certificato | 
| --- | --- | 
|  `Serial Number: 92:12:85:cb:b7:a5:e0:86`  |  `iot:Certificate.SerialNumber = 10525622389124227206`  | 

## Limitazioni per le variabili delle policy di certificato X.509


Alle variabili delle policy di certificato X.509 si applicano le limitazioni seguenti:

Variabili di policy mancanti  
Se il certificato X.509 non include un particolare attributo di certificato ma nel documento di policy viene utilizzata la corrispondente variabile di policy del certificato, la valutazione della policy potrebbe portare a un comportamento imprevisto. Questo perché la variabile di policy mancante non viene valutata nella dichiarazione politica.

Formato del certificato SerialNumber   
AWS IoT Core considera il numero di serie del certificato come la rappresentazione in formato stringa di un numero intero decimale. Ad esempio, se una policy consente solo connessioni con ID client corrispondente al numero di serie del certificato, l'ID client deve essere il numero di serie in formato decimale.

Caratteri jolly  
Se negli attributi del certificato sono presenti caratteri jolly, la variabile policy non viene sostituita dal valore dell'attributo certificate. Questo lascerà il `${policy-variable}` testo nel documento di policy. Questo comportamento può provocare un errore di autenticazione. È possibile utilizzare i seguenti caratteri jolly: `*`, `$`, `+`, `?` e `#`.

Campi di matrice  
Gli attributi di certificato che contengono matrici sono limitati a cinque elementi. Gli elementi aggiuntivi vengono ignorati.

Lunghezza delle stringhe  
Tutti i valori di stringa sono limitati a 1024 caratteri. Se un attributo di certificato contiene una stringa più lunga di 1024 caratteri, la variabile policy non viene sostituita dal valore dell'attributo certificate. Questo lascerà il nome `${policy-variable}` nel documento relativo alla policy. Questo comportamento può provocare un errore di autenticazione.

Caratteri speciali  
Qualsiasi carattere speciale, ad esempio `,`, `"`, `\`, `+`, `=`, `<`, `>` e `;` deve essere preceduto da una barra rovesciata (`\`) quando viene utilizzato in una variabile di policy. Ad esempio `Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=US` diventa `Amazon Web Service O\=Amazon.com Inc. L\=Seattle ST\=Washington C\=US`.

## Politiche di esempio che utilizzano variabili di policy relative ai certificati


Il seguente documento di policy consente le connessioni con un ID client che corrisponde al numero di serie del certificato e la pubblicazione sull'argomento che corrisponde al modello:`${iot:Certificate.Subject.Organization}/device-stats/${iot:ClientId}/*`. 

**Importante**  
Se il certificato X.509 non include un particolare attributo di certificato ma nel documento di policy viene utilizzata la corrispondente variabile di policy del certificato, la valutazione della policy potrebbe portare a un comportamento imprevisto. Questo perché la variabile di policy mancante non viene valutata nella dichiarazione politica. Ad esempio, se alleghi il seguente documento di policy a un certificato che non contiene l'`iot:Certificate.Subject.Organization`attributo, le variabili di policy del `iot:Certificate.Subject.Organization` certificato non verranno compilate durante la valutazione della policy.

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"iot:Connect"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:client/${iot:Certificate.SerialNumber}"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"iot:Publish"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:topic/${iot:Certificate.Subject.Organization}/device-stats/${iot:ClientId}/*"
			]
		}
	]
}
```

È inoltre possibile utilizzare l'[operatore di condizione Null](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) per garantire che le variabili della politica dei certificati utilizzate in una politica vengano compilate durante la valutazione della politica. Il seguente documento di policy consente l'utilizzo `iot:Connect` di certificati solo quando sono presenti gli attributi Certificate Serial Number e Certificate Subject Common name.

Tutte le variabili della politica del certificato hanno valori String, quindi tutti [gli operatori di condizione String](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String) sono supportati.

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"iot:Connect"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:client/*"
			],
			"Condition": {
				"Null": {
					"iot:Certificate.SerialNumber": "false",
					"iot:Certificate.Subject.CommonName": "false"
				}
			}
		}
	]
}
```