

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# X.509 证书策略变量 AWS IoT Core
<a name="cert-policy-variables"></a>

X.509 证书策略变量有助于编写策略。 AWS IoT Core 这些策略根据 X.509 证书属性授予权限。以下部分介绍如何使用这些证书策略变量。

**重要**  
如果您的 X.509 证书不包含特定的证书属性，但在策略文档中使用了相应的证书策略变量，则策略评估可能会导致意外行为。

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

在 [RegisterCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCertificate.html)API 中，`certificateId`显示在响应正文中。要获取有关您的证书的信息，请使用`certificateId`中的[DescribeCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeCertificate.html)。

## 颁发者属性
<a name="issuer-attributes"></a>

根据证书颁发者设置的证书属性，以下 AWS IoT Core 策略变量支持允许或拒绝权限。
+ `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` 

## 使用者属性
<a name="subject-attributes"></a>

以下 AWS IoT Core 策略变量支持根据证书颁发者设置的证书主题属性授予或拒绝权限。
+ `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` 

X.509 证书为这些属性提供了包含一个或多个值的选项。默认情况下，每个多值属性的策略变量会返回第一个值。例如，`Certificate.Subject.Country` 属性可能包含国家/地区名称列表，但在策略中进行评估时，`iot:Certificate.Subject.Country` 会替换为第一个国家/地区名称。

您可以使用从 1 开始的索引请求第一个值以外的特定属性值。例如，`iot:Certificate.Subject.Country.1` 由 `Certificate.Subject.Country` 属性中第二个国家/地区名称替换。如果您指定不存在的索引值（例如，如果您在只有两个值分配到属性时请求第三个值），则不会执行替换功能，并且授权将失败。您可以在策略变量名称中使用 `.List` 后缀指定属性的所有值。

## 颁发者备用名称属性
<a name="issuer-alternate-name-attributes"></a>

以下 AWS IoT Core 策略变量支持根据证书颁发者设置的颁发者备用名称属性授予或拒绝权限。
+ `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`

## 使用者备用名称属性
<a name="subject-alternate-name-attributes"></a>

以下 AWS IoT Core 策略变量支持根据证书颁发者设置的主题备用名称属性授予或拒绝权限。
+ `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`

## 其它属性
<a name="other-attributes"></a>

根据证书`iot:Certificate.SerialNumber`的序列号，您可以使用来允许或拒绝对 AWS IoT Core 资源的访问。`iot:Certificate.AvailableKeys` 策略变量包含具有值的所有证书策略变量的名称。