

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Variables de AWS IoT Core política de certificados X.509
<a name="cert-policy-variables"></a>

Las variables de política de certificados X.509 ayudan a escribir AWS IoT Core políticas. Estas políticas conceden permisos en función de los atributos del certificado X.509. En las siguientes secciones se describe cómo se pueden utilizar estas variables de política de certificado.

**importante**  
Si el certificado X.509 no incluye un atributo de certificado concreto, pero la variable de política de certificados correspondiente se utiliza en el documento de política, la evaluación de la política podría provocar un comportamiento inesperado.

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

En la [RegisterCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCertificate.html)API, `certificateId` aparece en el cuerpo de la respuesta. Para obtener información sobre su certificado, utilice el formulario `certificateId` in [DescribeCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeCertificate.html).

## Atributos de emisor
<a name="issuer-attributes"></a>

Las siguientes variables AWS IoT Core de política permiten permitir o denegar permisos, en función de los atributos del certificado establecidos por el emisor del certificado.
+ `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` 

## Atributos de sujeto
<a name="subject-attributes"></a>

Las siguientes variables AWS IoT Core de política permiten conceder o denegar permisos, en función de los atributos del sujeto del certificado establecidos por el emisor del certificado.
+ `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` 

Los certificados X.509 permiten que estos atributos contengan uno o varios valores. De forma predeterminada, las variables de política de cada atributo de varios valores devuelven el primer valor. Por ejemplo, el atributo `Certificate.Subject.Country` podría contener una lista de nombres de países, pero cuando se evalúa en una política, `iot:Certificate.Subject.Country` se reemplaza por el nombre del primer país.

Puede solicitar un valor de atributo específico distinto del primero mediante un índice de base uno. Por ejemplo, `iot:Certificate.Subject.Country.1` se sustituye por el nombre del segundo país en el atributo `Certificate.Subject.Country`. Si especifica un valor de índice que no existe (por ejemplo, si pide un tercer valor cuando el atributo solo tiene dos valores asignados), no se realizará ninguna sustitución y la autorización dará un resultado erróneo. Puede utilizar el sufijo `.List` en el nombre de la variable de política para especificar todos los valores del atributo.

## Atributos de nombre alternativo del emisor
<a name="issuer-alternate-name-attributes"></a>

Las siguientes variables AWS IoT Core de política permiten conceder o denegar permisos, en función de los atributos de nombre alternativo del emisor establecidos por el emisor del certificado.
+ `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`

## Atributos de nombre alternativo de sujeto
<a name="subject-alternate-name-attributes"></a>

Las siguientes variables AWS IoT Core de política permiten conceder o denegar permisos, en función de los atributos del nombre alternativo del sujeto establecidos por el emisor del certificado.
+ `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`

## Otros atributos
<a name="other-attributes"></a>

Puede utilizarlas `iot:Certificate.SerialNumber` para permitir o denegar el acceso a AWS IoT Core los recursos, en función del número de serie de un certificado. La variable de política `iot:Certificate.AvailableKeys` contiene el nombre de todas las variables de política de certificado que contienen valores.

# Uso de variables de política de certificado X.509
<a name="use-policy-variables"></a>

En este tema se explica cómo utilizar las variables de política de certificados. Las variables de política de certificado X.509 son esenciales para crear políticas de AWS IoT Core que concedan permisos basados en los atributos de certificado X.509. Si el certificado X.509 no incluye un atributo de certificado concreto, pero la variable de política de certificados correspondiente se utiliza en el documento de política, la evaluación de la política podría provocar un comportamiento inesperado. Esto se debe a que la variable de política que falta no se evalúa en la instrucción de la política.

**Topics**
+ [Ejemplo de certificado X.509](#certificate-example)
+ [Uso de los atributos del emisor del certificado como variables de política de certificados](#issuer-attributes-policy)
+ [Uso de los atributos del sujeto del certificado como variables de política de certificados](#subject-attributes-policy)
+ [Uso de los atributos del nombre alternativo del emisor del certificado como variables de la política de certificados](#issuer-alternate-name-attributes-policy)
+ [Uso de los atributos del nombre alternativo del sujeto del certificado como variables de la política de certificados](#subject-alternate-name-attributes-policy)
+ [Uso de otro atributo del certificado como variable de política de certificados](#other-attributes-policy)
+ [Limitaciones aplicables a las variables de política de certificado X.509](#policy-limits)
+ [Ejemplos de políticas que utilizan variables de política de certificados](#example-attributes-policy)

## Ejemplo de certificado X.509
<a name="certificate-example"></a>

Un certificado X.509 típico puede tener el siguiente aspecto. Este certificado de ejemplo incluye los atributos del certificado. Durante la evaluación de las políticas de AWS IoT Core , los siguientes atributos del certificado se rellenarán como variables de la política de certificado: `Serial Number`, `Issuer`, `Subject`, `X509v3 Issuer Alternative Name` y `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 >>
```

## Uso de los atributos del emisor del certificado como variables de política de certificados
<a name="issuer-attributes-policy"></a>

La siguiente tabla proporciona detalles sobre cómo se rellenarán los atributos del emisor del certificado en una AWS IoT Core política.


**Atributos del emisor que se deben rellenar en una política**  

| Atributos del emisor de certificados | Variables de política de certificados | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/use-policy-variables.html)  | 

## Uso de los atributos del sujeto del certificado como variables de política de certificados
<a name="subject-attributes-policy"></a>

La siguiente tabla proporciona detalles sobre cómo se rellenarán los atributos del sujeto del certificado en una AWS IoT Core política.


**Atributos del sujeto que se van a rellenar en una política**  

| Atributos del sujeto del certificado | Variables de política de certificados | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/use-policy-variables.html)  | 

## Uso de los atributos del nombre alternativo del emisor del certificado como variables de la política de certificados
<a name="issuer-alternate-name-attributes-policy"></a>

En la siguiente tabla se proporcionan detalles sobre cómo se rellenan los atributos del nombre alternativo del emisor de certificados en una política de AWS IoT Core .


**Atributos del nombre alternativo del emisor que se deben rellenar en una política**  

| Nombre alternativo del emisor de X509v3 | Atributo de una política | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/use-policy-variables.html)  | 

## Uso de los atributos del nombre alternativo del sujeto del certificado como variables de la política de certificados
<a name="subject-alternate-name-attributes-policy"></a>

En la siguiente tabla se proporcionan detalles sobre cómo se rellenan los atributos del nombre alternativo del sujeto de certificados en una política de AWS IoT Core .


**Atributos del nombre alternativo del sujeto que se deben rellenar en una política**  

| Nombre alternativo del sujeto de X509v3 | Atributo de una política | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/use-policy-variables.html)  | 

## Uso de otro atributo del certificado como variable de política de certificados
<a name="other-attributes-policy"></a>

La siguiente tabla proporciona detalles sobre cómo se rellenarán los demás atributos del certificado en una AWS IoT Core política.


**Otros atributos que se deben rellenar en una política**  

| Otro atributo de certificado | Variable de política de certificado | 
| --- | --- | 
|  `Serial Number: 92:12:85:cb:b7:a5:e0:86`  |  `iot:Certificate.SerialNumber = 10525622389124227206`  | 

## Limitaciones aplicables a las variables de política de certificado X.509
<a name="policy-limits"></a>

Las siguientes limitaciones se aplican a las variables de política de certificado X.509:

Variables de política que faltan  
Si el certificado X.509 no incluye un atributo de certificado concreto, pero la variable de política de certificados correspondiente se utiliza en el documento de política, la evaluación de la política podría provocar un comportamiento inesperado. Esto se debe a que la variable de política que falta no se evalúa en la instrucción de la política.

 SerialNumber Formato de certificado  
AWS IoT Core trata el número de serie del certificado como la representación en cadena de un entero decimal. Por ejemplo, si una política solo permite conexiones con un identificador de cliente que coincida con el número de serie del certificado, el identificador de cliente debe ser el número de serie en formato decimal.

Caracteres comodín  
Si los atributos de certificado contienen caracteres de certificado, la variable de política no se sustituirá por el valor de atributo del certificado. Esto dejará el texto `${policy-variable}` en el documento de política. Esto puede producir un error de autorización. Se pueden utilizar los siguientes caracteres comodín: `*`, `$`, `+`, `?` y `#`.

Campos de matriz  
Los atributos de certificado que contienen matrices se limitan a cinco elementos. No se tendrán en cuenta los elementos adicionales.

Longitud de cadena  
Todos los valores de cadena están limitados a 1024 caracteres. Si un atributo de certificado contiene una cadena de más de 1024 caracteres, la variable de política no se sustituirá por el valor de atributo del certificado. Esto dejará el texto `${policy-variable}` en el documento de política. Esto puede producir un error de autorización.

Caracteres especiales  
Cualquier carácter especial, como `,`, `"`, `\`, `+`, `=`, `<`, `>` y `;` debe tener el prefijo de una barra invertida (`\`) cuando se utiliza en una variable de política. Por ejemplo, `Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=US` se convierte en `Amazon Web Service O\=Amazon.com Inc. L\=Seattle ST\=Washington C\=US`.

## Ejemplos de políticas que utilizan variables de política de certificados
<a name="example-attributes-policy"></a>

El siguiente documento de política permite las conexiones con un ID de cliente que coincida con el número de serie del certificado y la publicación en el tema que coincida con el patrón `${iot:Certificate.Subject.Organization}/device-stats/${iot:ClientId}/*`. 

**importante**  
Si el certificado X.509 no incluye un atributo de certificado concreto, pero la variable de política de certificados correspondiente se utiliza en el documento de política, la evaluación de la política podría provocar un comportamiento inesperado. Esto se debe a que la variable de política que falta no se evalúa en la instrucción de la política. Por ejemplo, si asocia el siguiente documento de política a un certificado que no contiene el atributo `iot:Certificate.Subject.Organization`, las variables de la política de certificado `iot:Certificate.Subject.Organization` no se rellenarán durante la evaluación de la política.

****  

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

También puede usar el [operador de condición Null](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) para asegurarse de que las variables de política de certificados utilizadas en una política se rellenen durante la evaluación de la política. El siguiente documento de política permite `iot:Connect` con certificados solo cuando están presentes los atributos número de serie del certificado y nombre común del sujeto del certificado.

Todas las variables de la política de certificados tienen valores de cadena, por lo que se admiten todos [los operadores de condición de cadena](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String).

****  

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