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.
Utilisation de variables de politique de certificat X.509
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.
Dans cette rubrique :
- Exemple de certificat X.509
- Utilisation des attributs de l'émetteur de certificats comme variables de politique de certificat
- Utilisation des attributs du sujet du certificat comme variables de politique de certificat
- Utilisation des attributs de nom alternatif de l'émetteur du certificat comme variables de politique de certificat
- Utilisation des attributs de nom alternatif du sujet du certificat comme variables de politique de certificat
- Utilisation d'un autre attribut de certificat comme variable de politique de certificat
- Limitations applicables aux variables de stratégie de certificat X.509
- Exemples de politiques utilisant des variables de politique de certificat
Exemple de certificat X.509
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
,, etX509v3 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
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 du certificat | Variables de politique de certificat |
---|---|
|
|
Utilisation des attributs du sujet du certificat comme variables de politique de certificat
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 du certificat | Variables de politique de certificat |
---|---|
|
|
Utilisation des attributs de nom alternatif de l'émetteur du certificat comme variables de politique de certificat
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.
Nom alternatif de l'émetteur X509v3 | Attribut dans une politique |
---|---|
|
|
Utilisation des attributs de nom alternatif du sujet du certificat comme variables de politique de certificat
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.
Nom alternatif du sujet X509v3 | Attribut dans une politique |
---|---|
|
|
Utilisation d'un autre attribut de certificat comme variable de politique de certificat
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.
Autre attribut de certificat | Variable de politique de certificat |
---|---|
|
|
Limitations applicables aux variables de stratégie de certificat X.509
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
devientAmazon Web Service O\=Amazon.com Inc. L\=Seattle ST\=Washington C\=US
.
Exemples de politiques utilisant des variables de politique de certificat
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 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 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" } } } ] }