

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Variáveis de política de certificado AWS IoT Core X.509
<a name="cert-policy-variables"></a>

As variáveis de política de certificado X.509 ajudam na criação AWS IoT Core de políticas. Essas políticas concedem permissões com base nos atributos do certificado X.509. As seções a seguir descrevem como usar essas variáveis de política de certificado.

**Importante**  
Se seu certificado X.509 não incluir um atributo de certificado específico, mas a variável de política de certificado correspondente for usada em seu documento de política, a avaliação da política poderá levar a um comportamento inesperado.

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

Na [RegisterCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCertificate.html)API, o `certificateId` aparece no corpo da resposta. Para obter informações sobre seu certificado, use o `certificateId` in [DescribeCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeCertificate.html).

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

As variáveis AWS IoT Core de política a seguir oferecem suporte à permissão ou negação de permissões, com base nos atributos do certificado definidos pelo emissor do 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 assunto
<a name="subject-attributes"></a>

As variáveis AWS IoT Core de política a seguir oferecem suporte à concessão ou negação de permissões, com base nos atributos do titular do certificado definidos pelo emissor do 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` 

Os certificados X.509 dão a esses atributos a opção de conter um ou mais valores. Por padrão, as variáveis de política para cada atributo multivalor retornam o primeiro valor. Por exemplo, o atributo `Certificate.Subject.Country` pode conter uma lista de nomes de países, mas, quando avaliado em uma política, `iot:Certificate.Subject.Country` é substituído pelo primeiro nome do país.

É possível solicitar um valor de atributo específico diferente do primeiro valor usando um índice baseado em um. Por exemplo, `iot:Certificate.Subject.Country.1` é substituído pelo segundo nome de país no atributo `Certificate.Subject.Country`. Se você especificar um valor de índice que não existe (por exemplo, se você solicitar um terceiro valor quando há apenas dois valores atribuídos ao atributo), nenhuma substituição será feita e haverá falha na autorização. Você pode usar o sufixo `.List` no nome da variável de política para especificar todos os valores do atributo.

## Atributos de nome alternativo do emissor
<a name="issuer-alternate-name-attributes"></a>

As variáveis AWS IoT Core de política a seguir oferecem suporte à concessão ou negação de permissões, com base nos atributos de nome alternativo do emissor definidos pelo emissor do 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 nome alternativo do assunto
<a name="subject-alternate-name-attributes"></a>

As variáveis AWS IoT Core de política a seguir oferecem suporte à concessão ou negação de permissões, com base nos atributos de nome alternativo do sujeito definidos pelo emissor do 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`

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

Você pode usar `iot:Certificate.SerialNumber` para permitir ou negar acesso aos AWS IoT Core recursos, com base no número de série de um certificado. A variável de política `iot:Certificate.AvailableKeys` contém o nome de todas as variáveis de política de certificado que contenham valores.

# Usar variáveis de política do certificado X.509
<a name="use-policy-variables"></a>

Este tópico fornece detalhes sobre como usar variáveis de política de certificados. As variáveis de política do certificado X.509 são essenciais quando você cria políticas do AWS IoT Core que dão permissões com base em atributos do certificado X.509. Se seu certificado X.509 não incluir um atributo de certificado específico, mas a variável de política de certificado correspondente for usada em seu documento de política, a avaliação da política poderá levar a um comportamento inesperado. Isso ocorre porque a variável de política ausente não é avaliada na declaração de política.

**Topics**
+ [Exemplo de certificado X.509](#certificate-example)
+ [Usar atributos do emissor de certificados como variáveis de política de certificados](#issuer-attributes-policy)
+ [Usar atributos do sujeito do certificado como variáveis de política de certificados](#subject-attributes-policy)
+ [Usar atributos de nome alternativo do emissor de certificados como variáveis de política de certificados](#issuer-alternate-name-attributes-policy)
+ [Usar atributos de nome alternativo do sujeito do certificado como variáveis de política de certificados](#subject-alternate-name-attributes-policy)
+ [Usar outro atributo de certificado como uma variável de política de certificado](#other-attributes-policy)
+ [Limitações das variáveis de política de certificado X.509](#policy-limits)
+ [Exemplo de políticas usando variáveis de política de certificado](#example-attributes-policy)

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

Um certificado X.509 típico pode aparecer da seguinte forma. Este exemplo de certificado inclui atributos de certificado. Durante a avaliação das políticas do AWS IoT Core , os seguintes atributos de certificado serão preenchidos como variáveis de política de certificado: `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 >>
```

## Usar atributos do emissor de certificados como variáveis de política de certificados
<a name="issuer-attributes-policy"></a>

A tabela a seguir fornece detalhes de como os atributos do emissor do certificado serão preenchidos em uma AWS IoT Core política.


**Atributos do emissor a serem preenchidos em uma política**  

| Atributos do emissor do certificado | Variáveis de política do certificado | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/use-policy-variables.html)  | 

## Usar atributos do sujeito do certificado como variáveis de política de certificados
<a name="subject-attributes-policy"></a>

A tabela a seguir fornece detalhes de como os atributos do titular do certificado serão preenchidos em uma AWS IoT Core política.


**Atributos do sujeito a serem preenchidos em uma política**  

| Atributos do sujeito do certificado | Variáveis de política do certificado | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/use-policy-variables.html)  | 

## Usar atributos de nome alternativo do emissor de certificados como variáveis de política de certificados
<a name="issuer-alternate-name-attributes-policy"></a>

A tabela a seguir fornece detalhes de como os atributos de nome alternativo do emissor do certificado serão preenchidos em uma política do AWS IoT Core .


**Atributos de nome alternativo do emissor a serem preenchidos em uma política**  

| Nome alternativo do emissor X509v3 | Atributo em uma política | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/use-policy-variables.html)  | 

## Usar atributos de nome alternativo do sujeito do certificado como variáveis de política de certificados
<a name="subject-alternate-name-attributes-policy"></a>

A tabela a seguir fornece detalhes de como os atributos de nome alternativo do sujeito do certificado serão preenchidos em uma política do AWS IoT Core .


**Atributos de nome alternativo do sujeito a serem preenchidos em uma política**  

| Nome alternativo do assunto X509v3 | Atributo em uma política | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/use-policy-variables.html)  | 

## Usar outro atributo de certificado como uma variável de política de certificado
<a name="other-attributes-policy"></a>

A tabela a seguir fornece detalhes de como outros atributos do certificado serão preenchidos em uma AWS IoT Core política.


**Outros atributos a serem preenchidos em uma política**  

| Outro atributo do certificado | Variável de política do certificado | 
| --- | --- | 
|  `Serial Number: 92:12:85:cb:b7:a5:e0:86`  |  `iot:Certificate.SerialNumber = 10525622389124227206`  | 

## Limitações das variáveis de política de certificado X.509
<a name="policy-limits"></a>

As limitações a seguir se aplicam às variáveis de política de certificado X.509:

Variáveis de política ausentes  
Se seu certificado X.509 não incluir um atributo de certificado específico, mas a variável de política de certificado correspondente for usada em seu documento de política, a avaliação da política poderá levar a um comportamento inesperado. Isso ocorre porque a variável de política ausente não é avaliada na declaração de política.

 SerialNumber Formato do certificado  
AWS IoT Core trata o número de série do certificado como a representação em cadeia de um número inteiro decimal. Por exemplo, se uma política só permite conexões com a ID do cliente correspondente ao número de série do certificado, o ID do cliente deve ser o número de série em formato decimal.

Curingas  
Se caracteres curinga estiverem presentes em atributos de certificado, a variável de política não será substituída pelo valor do atributo do certificado. Isso deixará o texto `${policy-variable}` no documento de política. Isso pode causar falha de autorização. Os seguintes caracteres curinga podem ser usados: `*`, `$`, `+`, `?` e `#`.

Campos da matriz  
Os atributos de certificado que contêm matrizes estão limitados a cinco itens. Os itens adicionais são ignorados.

Tamanho da segmento  
Todos os valores de string são limitados a 1024 caracteres. Se um atributo de certificado tiver uma sequência com mais de 1024 caracteres, a variável de política não será substituída pelo valor do atributo do certificado. Isso deixará o `${policy-variable}` no documento de política. Isso pode causar falha de autorização.

Caracteres especiais  
Qualquer caractere especial, como `,`, `"`, `\`, `+`, `=`, `<`, `>` e `;`, deve ser prefixado com uma barra invertida (`\`) quando usado em uma variável de política. Por exemplo, `Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=US` torna-se `Amazon Web Service O\=Amazon.com Inc. L\=Seattle ST\=Washington C\=US`.

## Exemplo de políticas usando variáveis de política de certificado
<a name="example-attributes-policy"></a>

O documento de política a seguir permite conexões com o ID do cliente que corresponde ao número de série do certificado e a publicação no tópico que corresponde ao padrão: `${iot:Certificate.Subject.Organization}/device-stats/${iot:ClientId}/*`. 

**Importante**  
Se seu certificado X.509 não incluir um atributo de certificado específico, mas a variável de política de certificado correspondente for usada em seu documento de política, a avaliação da política poderá levar a um comportamento inesperado. Isso ocorre porque a variável de política ausente não é avaliada na declaração de política. Por exemplo, se você anexar o seguinte documento de política a um certificado que não contém o atributo `iot:Certificate.Subject.Organization`, as variáveis da política do certificado `iot:Certificate.Subject.Organization` não serão preenchidas durante a avaliação da 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}/*"
			]
		}
	]
}
```

Você também pode usar o [operador de condição Null](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) para garantir que as variáveis de política de certificado usadas em uma política sejam preenchidas durante a avaliação da política. O documento de política a seguir permite `iot:Connect` com certificados somente quando os atributos Número de Série do Certificado e Nome Comum do Assunto do Certificado estão presentes.

Todas as variáveis da política de certificado têm valores String, portanto, há suporte para todos os [Operadores de condição string](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"
				}
			}
		}
	]
}
```