本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
X.509 证书策略变量 Amazon IoT Core
X.509 证书策略变量有助于编写策略。 Amazon IoT Core 这些策略根据 X.509 证书属性授予权限。以下各节介绍如何使用这些证书策略变量。
CertificateId
在 RegisterCertificateAPI 中,certificateId
显示在响应正文中。要获取有关您的证书的信息,请使用certificateId
中的DescribeCertificate。
颁发者属性
根据证书颁发者设置的证书属性,以下 Amazon 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
使用者属性
以下 Amazon 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
后缀指定属性的所有值。
颁发者备用名称属性
以下 Amazon 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
使用者备用名称属性
以下 Amazon 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
其它属性
根据证书iot:Certificate.SerialNumber
的序列号,您可以使用来允许或拒绝对 Amazon IoT Core 资源的访问。iot:Certificate.AvailableKeys
策略变量包含具有值的所有证书策略变量的名称。
X.509 证书策略变量限制
以下限制适用于 X.509 证书策略变量:
- 通配符
-
如果证书属性中存在通配符,则策略变量不会被证书属性值所取代。这会将
${policy-variable}
文本留在政策文件中。这可能会导致授权失败。可以使用以下通配符:*
、$
、+
、?
和#
。 - 数组字段
-
包含数组的证书属性限制为五项。其它的项将被忽略。
- 字符串长度
-
所有字符串值的长度限制为 1024 个字符。如果证书属性包含长度超过 1024 个字符的字符串,则该策略变量不会被证书属性值所取代。这将保留
${policy-variable}
在政策文件中。这可能会导致授权失败。 - 特殊字符
-
在策略变量中使用时,任何特殊字符(例如
,
、"
、\
、+
、=
、<
、>
和;
)都必须使用反斜杠 (\
) 作为前缀。例如,Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=US
改为Amazon Web Service O\=Amazon.com Inc. L\=Seattle ST\=Washington C\=US
。