

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.

# Variables de AWS IoT Core politique de certificat X.509
<a name="cert-policy-variables"></a>

Les variables de politique de certificat X.509 facilitent l'écriture des AWS IoT Core politiques. Ces politiques accordent des autorisations en fonction des attributs du certificat X.509. Les sections suivantes décrivent comment utiliser ces variables de politique de certificat.

**Important**  
Si votre certificat X.509 n'inclut aucun attribut de certificat particulier mais que la variable de politique de certificat correspondante est utilisée dans votre document de stratégie, l'évaluation de la politique peut entraîner un comportement inattendu.

## CertificateId
<a name="cert-policy-variables-certid"></a>

Dans l'[RegisterCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCertificate.html)API, le `certificateId` apparaît dans le corps de la réponse. Pour obtenir des informations sur votre certificat, utilisez le `certificateId` in [DescribeCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeCertificate.html).

## Attributs de l'émetteur
<a name="issuer-attributes"></a>

Les variables AWS IoT Core de politique suivantes permettent d'autoriser ou de refuser des autorisations, en fonction des attributs de certificat définis par l'émetteur du certificat.
+ `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` 

## Attributs de l'objet
<a name="subject-attributes"></a>

Les variables AWS IoT Core de politique suivantes prennent en charge l'octroi ou le refus d'autorisations, en fonction des attributs du sujet du certificat définis par l'émetteur du certificat.
+ `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` 

Les certificats X.509 fournissent à ces attributs la possibilité de contenir une ou plusieurs valeurs. Par défaut, les variables de stratégie de chaque attribut à valeurs multiples renvoient la première valeur. Par exemple, l'attribut `Certificate.Subject.Country` peut contenir une liste de noms de pays, mais `iot:Certificate.Subject.Country` est remplacé par le nom du premier pays lorsqu'il est évalué dans une stratégie.

Vous pouvez demander une valeur d'attribut spécifique autre que la première valeur en utilisant un index de base un. Par exemple, `iot:Certificate.Subject.Country.1` est remplacé par le deuxième nom de pays dans l'attribut `Certificate.Subject.Country`. Si vous spécifiez une valeur d'index qui n'existe pas (par exemple, si vous demandez une troisième valeur alors qu'il n'y a que deux valeurs affectées à l'attribut), aucune substitution n'est effectuée et l'autorisation échoue. Vous pouvez utiliser le suffixe `.List` dans le nom de la variable de stratégie pour spécifier l'ensemble des valeurs de l'attribut.

## Attributs de nom alternatif d'émetteur
<a name="issuer-alternate-name-attributes"></a>

Les variables de AWS IoT Core politique suivantes prennent en charge l'octroi ou le refus d'autorisations, en fonction des attributs de nom alternatif de l'émetteur définis par l'émetteur du certificat.
+ `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`

## Attributs de nom alternatif d'objet
<a name="subject-alternate-name-attributes"></a>

Les variables AWS IoT Core de politique suivantes prennent en charge l'octroi ou le refus d'autorisations, en fonction des attributs de nom alternatif du sujet définis par l'émetteur du certificat.
+ `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`

## Autres attributs
<a name="other-attributes"></a>

Vous pouvez l'utiliser `iot:Certificate.SerialNumber` pour autoriser ou refuser l'accès aux AWS IoT Core ressources, en fonction du numéro de série d'un certificat. La variable de stratégie `iot:Certificate.AvailableKeys` contient le nom de toutes les variables de stratégie de certificat contenant des valeurs.

# Utilisation de variables de politique de certificat X.509
<a name="use-policy-variables"></a>

Cette rubrique explique en détail comment utiliser les variables de politique de certificat. Les variables de politique de certificat X.509 sont essentielles lorsque vous créez des AWS IoT Core politiques qui accordent des autorisations basées sur les attributs du certificat X.509. Si votre certificat X.509 n'inclut aucun attribut de certificat particulier mais que la variable de politique de certificat correspondante est utilisée dans votre document de stratégie, l'évaluation de la politique peut entraîner un comportement inattendu. Cela est dû au fait que la variable de stratégie manquante n'est pas évaluée dans la déclaration de stratégie.

**Topics**
+ [Exemple de certificat X.509](#certificate-example)
+ [Utilisation des attributs de l'émetteur de certificats comme variables de politique de certificat](#issuer-attributes-policy)
+ [Utilisation des attributs du sujet du certificat comme variables de politique de certificat](#subject-attributes-policy)
+ [Utilisation des attributs de nom alternatif de l'émetteur du certificat comme variables de politique de certificat](#issuer-alternate-name-attributes-policy)
+ [Utilisation des attributs de nom alternatif du sujet du certificat comme variables de politique de certificat](#subject-alternate-name-attributes-policy)
+ [Utilisation d'un autre attribut de certificat comme variable de politique de certificat](#other-attributes-policy)
+ [Limitations applicables aux variables de stratégie de certificat X.509](#policy-limits)
+ [Exemples de politiques utilisant des variables de politique de certificat](#example-attributes-policy)

## Exemple de certificat X.509
<a name="certificate-example"></a>

Un certificat X.509 typique peut apparaître comme suit. Cet exemple de certificat inclut des attributs de certificat. Lors de l'évaluation des AWS IoT Core politiques, les attributs de certificat suivants seront renseignés sous forme de variables de politique de certificat : `Serial Number` `Issuer``Subject`,`X509v3 Issuer Alternative Name`,, et`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 >>
```

## Utilisation des attributs de l'émetteur de certificats comme variables de politique de certificat
<a name="issuer-attributes-policy"></a>

Le tableau suivant fournit des informations détaillées sur la manière dont les attributs de l'émetteur du certificat seront renseignés dans une AWS IoT Core politique.


**Attributs de l'émetteur à renseigner dans une politique**  

| Attributs de l'émetteur du certificat | Variables de politique de certificat | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/use-policy-variables.html)  | 

## Utilisation des attributs du sujet du certificat comme variables de politique de certificat
<a name="subject-attributes-policy"></a>

Le tableau suivant fournit des informations détaillées sur la manière dont les attributs du sujet du certificat seront renseignés dans une AWS IoT Core politique.


**Attributs du sujet à renseigner dans une politique**  

| Attributs du sujet du certificat | Variables de politique de certificat | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/use-policy-variables.html)  | 

## Utilisation des attributs de nom alternatif de l'émetteur du certificat comme variables de politique de certificat
<a name="issuer-alternate-name-attributes-policy"></a>

Le tableau suivant fournit des informations détaillées sur la manière dont les attributs de nom alternatif de l'émetteur du certificat seront renseignés dans une AWS IoT Core politique.


**Attributs du nom alternatif de l'émetteur à renseigner dans une politique**  

| Nom alternatif de l'émetteur X509v3 | Attribut dans une politique | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/use-policy-variables.html)  | 

## Utilisation des attributs de nom alternatif du sujet du certificat comme variables de politique de certificat
<a name="subject-alternate-name-attributes-policy"></a>

Le tableau suivant fournit des informations détaillées sur la manière dont les attributs du nom alternatif du sujet du certificat seront renseignés dans une AWS IoT Core politique.


**Attributs du nom alternatif du sujet à renseigner dans une politique**  

| Nom alternatif du sujet X509v3 | Attribut dans une politique | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/use-policy-variables.html)  | 

## Utilisation d'un autre attribut de certificat comme variable de politique de certificat
<a name="other-attributes-policy"></a>

Le tableau suivant fournit des informations détaillées sur la manière dont les autres attributs de certificat seront renseignés dans une AWS IoT Core politique.


**Autres attributs à renseigner dans une politique**  

| Autre attribut de certificat | Variable de politique de certificat | 
| --- | --- | 
|  `Serial Number: 92:12:85:cb:b7:a5:e0:86`  |  `iot:Certificate.SerialNumber = 10525622389124227206`  | 

## Limitations applicables aux variables de stratégie de certificat X.509
<a name="policy-limits"></a>

Les limitations suivantes s'appliquent aux variables de stratégie de certificat X.509 :

Variables de stratégie manquantes  
Si votre certificat X.509 n'inclut aucun attribut de certificat particulier mais que la variable de politique de certificat correspondante est utilisée dans votre document de stratégie, l'évaluation de la politique peut entraîner un comportement inattendu. Cela est dû au fait que la variable de stratégie manquante n'est pas évaluée dans la déclaration de stratégie.

 SerialNumber Format du certificat  
AWS IoT Core traite le numéro de série du certificat comme la représentation sous forme de chaîne d'un entier décimal. Par exemple, si une politique autorise uniquement les connexions dont l'ID client correspond au numéro de série du certificat, l'ID client doit être le numéro de série au format décimal.

Caractères génériques  
Si des caractères génériques sont présents dans les attributs du certificat, la variable de politique n'est pas remplacée par la valeur de l'attribut du certificat. Cela laissera le `${policy-variable}` texte dans le document de politique. Cela risque de provoquer un échec d'autorisation. Les caractères génériques suivants peuvent être utilisés : `*`, `$`, `+`, `?` et `#`.

Champs de tableau  
Les attributs de certificats qui contiennent des tableaux sont limités à cinq éléments. Les autres éléments sont ignorés.

String length  
Toutes les valeurs de chaîne sont limitées à 1 024 caractères. Si un attribut de certificat contient une chaîne de plus de 1024 caractères, la variable de politique n'est pas remplacée par la valeur de l'attribut de certificat. Cela les conservera `${policy-variable}` dans le document de politique. Cela risque de provoquer un échec d'autorisation.

Caractères spéciaux  
Tout caractère spécial, tel que `,`, `"`, `\`, `+`, `=`, `<`, `>` et `;` doit être préfixé par une barre oblique inverse (`\`) lorsqu'il est utilisé dans une variable de stratégie. Par exemple, `Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=US` devient `Amazon Web Service O\=Amazon.com Inc. L\=Seattle ST\=Washington C\=US`.

## Exemples de politiques utilisant des variables de politique de certificat
<a name="example-attributes-policy"></a>

Le document de politique suivant autorise les connexions avec un ID client correspondant au numéro de série du certificat et la publication sur le sujet correspondant au modèle :`${iot:Certificate.Subject.Organization}/device-stats/${iot:ClientId}/*`. 

**Important**  
Si votre certificat X.509 n'inclut aucun attribut de certificat particulier mais que la variable de politique de certificat correspondante est utilisée dans votre document de stratégie, l'évaluation de la politique peut entraîner un comportement inattendu. Cela est dû au fait que la variable de stratégie manquante n'est pas évaluée dans la déclaration de stratégie. Par exemple, si vous joignez le document de politique suivant à un certificat qui ne contient pas l'`iot:Certificate.Subject.Organization`attribut, les variables de politique de `iot:Certificate.Subject.Organization` certificat ne seront pas renseignées lors de l'évaluation de la politique.

****  

```
{
	"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}/*"
			]
		}
	]
}
```

Vous pouvez également utiliser l'[opérateur de condition nulle](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) pour vous assurer que les variables de politique de certificat utilisées dans une politique sont renseignées lors de l'évaluation de la politique. Le document de politique suivant autorise `iot:Connect` les certificats uniquement lorsque les attributs du numéro de série du certificat et du nom commun de l'objet du certificat sont présents.

Toutes les variables de politique de certificat ont des valeurs de chaîne, de sorte que tous les [opérateurs de condition de chaîne](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String) sont pris en charge.

****  

```
{
	"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"
				}
			}
		}
	]
}
```