

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# AWS IoT Core Richtlinienvariablen
<a name="iot-policy-variables"></a>

AWS IoT Core definiert Richtlinienvariablen, die in AWS IoT Core Richtlinien im `Condition` Block `Resource` oder verwendet werden können. Bei Anwendung der Richtlinien werden die Variablen durch tatsächliche Werte ersetzt. Wenn beispielsweise ein Gerät mit der Client-ID 100-234-3456 mit dem AWS IoT Core Message Broker verbunden ist, wird die `iot:ClientId` Richtlinienvariable im Richtliniendokument durch 100-234-3456 ersetzt.

AWS IoT Core Richtlinien können Platzhalterzeichen verwenden und folgen einer ähnlichen Konvention wie IAM-Richtlinien. Ein in die Zeichenfolge eingefügtes `*` (Sternchen) kann als Platzhalter behandelt werden, der mit beliebigen Zeichen übereinstimmt. Sie können beispielsweise `*` verwenden, um mehrere MQTT-Topic-Namen im `Resource`-Attribut einer Richtlinie zu beschreiben. Die Zeichen `+` und `#` werden in einer Richtlinie als Literalzeichenfolgen behandelt. Ein Beispiel für eine Richtlinie, die die Verwendung von Platzhaltern veranschaulicht, finden Sie unter [Verwendung von Platzhalterzeichen in MQTT und Richtlinien AWS IoT Core](pub-sub-policy.md#pub-sub-policy-cert).

Sie können auch vordefinierte Richtlinienvariablen mit festen Werten verwenden, um Zeichen darzustellen, die andernfalls eine besondere Bedeutung haben. Zu diesen Sonderzeichen gehören `$(*)`, `$(?)` und `$($)`. Weitere Informationen zu Richtlinienvariablen und Sonderzeichen finden Sie unter [IAM-Richtlinienelemente: Variablen und Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html) und [Erstellen einer Bedingung mit mehreren Schlüsseln oder Werten](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html).

**Topics**
+ [Grundlegende Richtlinienvariablen AWS IoT Core](basic-policy-variables.md)
+ [Objektrichtlinienvariablen](thing-policy-variables.md)
+ [AWS IoT Core Richtlinienvariablen für X.509-Zertifikate](cert-policy-variables.md)

# Grundlegende Richtlinienvariablen AWS IoT Core
<a name="basic-policy-variables"></a>

AWS IoT Core definiert die folgenden grundlegenden Richtlinienvariablen:
+ `aws:SourceIp`: Die IP-Adresse des Clients, der mit dem AWS IoT Core Message Broker verbunden ist.
+ `iot:ClientId`: Die Client-ID für die Verbindung zum AWS IoT Core Message Broker.
+ `iot:DomainName`: Der Domainname des Clients, mit dem eine Verbindung hergestellt wurde AWS IoT Core.

**Topics**
+ [Beispiele für `ClientId` und `SourceIp` Richtlinienvariablen](#basic-policy-variables-example)
+ [Beispiele für `iot:DomainName` Richtlinienvariablen](#basic-policy-variables-example-domain)

## Beispiele für `ClientId` und `SourceIp` Richtlinienvariablen
<a name="basic-policy-variables-example"></a>

Die folgende AWS IoT Core Richtlinie zeigt eine Richtlinie, die Richtlinienvariablen verwendet. `aws:SourceIp`kann im Condition-Element Ihrer Richtlinie verwendet werden, um es Prinzipalen zu ermöglichen, API-Anfragen nur innerhalb eines bestimmten Adressbereichs zu stellen. Beispiele finden Sie unter [Autorisieren von Benutzern und Cloud-Diensten zur Nutzung von Jobs AWS IoT](iam-policy-users-jobs.md).

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"iot:Connect"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:client/clientid1"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"iot:Publish"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:ClientId}"
			],
			"Condition": {
				"IpAddress": {
					"aws:SourceIp": "123.45.167.89"
				}
			}
		}
	]
}
```

In diesen Beispielen `${iot:ClientId}` wird bei der Auswertung der Richtlinie durch die ID des Clients ersetzt, der mit dem AWS IoT Core Message Broker verbunden ist. Wenn Sie Richtlinienvariablen wie beispielsweise `${iot:ClientId}` verwenden, können Sie versehentlich den Zugriff auf Themen ermöglichen. Wenn Sie beispielsweise eine Richtlinie nutzen, in der mit `${iot:ClientId}` ein bestimmter Topic-Filter angegeben wird:

```
{
	"Effect": "Allow",
	"Action": [
		"iot:Subscribe"
	],
	"Resource": [
		"arn:aws:iot:us-east-1:123456789012:topicfilter/my/${iot:ClientId}/topic"
	]
}
```

... kann ein Client mit der Client-ID `+` eine Verbindung zum &IoT; Message Broker herstellen. Damit könnte der Benutzer jedes Thema abonnieren, das dem Themenfilter `my/+/topic` entspricht. Um sich vor solchen Sicherheitslücken zu schützen, verwenden Sie die `iot:Connect` Richtlinienaktion, um zu kontrollieren, welcher Client eine Verbindung herstellen IDs kann. Mit dieser Richtlinie zum Beispiel dürfen nur die Clients mit der Client-ID `clientid1` eine Verbindung herstellen:

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"iot:Connect"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:client/clientid"
			]
		}
	]
}
```

**Anmerkung**  
Die Verwendung der Richtlinienvariable `${iot:ClientId}` mit `Connect` wird nicht empfohlen. Der `ClientId`-Wert wird nicht überprüft, sodass eine Anfügung mit einer anderen Client-ID die Validierung zwar bestehen, aber einen Verbindungsabbruch verursachen kann. Da jede `ClientId` erlaubt ist, können mit einer zufälligen Client-ID die Richtlinien für Objektgruppen umgangen werden.

## Beispiele für `iot:DomainName` Richtlinienvariablen
<a name="basic-policy-variables-example-domain"></a>

Sie können die `iot:DomainName` Richtlinienvariable hinzufügen, um einzuschränken, welche Domänen verwendet werden dürfen. Durch das Hinzufügen der `iot:DomainName` Richtlinienvariablen können Geräte nur eine Verbindung zu bestimmten konfigurierten Endpunkten herstellen.

Die folgende Richtlinie ermöglicht es Geräten, eine Verbindung mit der angegebenen Domäne herzustellen.

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": {
		"Sid": "AllowConnectionsToSpecifiedDomain",
		"Effect": "Allow",
		"Action": [
			"iot:Connect"
		],
		"Resource": "arn:aws:iot:us-east-1:123456789012:client/clientid",
		"Condition": {
			"StringEquals": {
				"iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com"
			}
		}
	}
}
```

Die folgende Richtlinie verweigert Geräten die Verbindung mit der angegebenen Domäne.

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": {
		"Sid": "DenyConnectionsToSpecifiedDomain",
		"Effect": "Deny",
		"Action": [
			"iot:Connect"
		],
		"Resource": "arn:aws:iot:us-east-1:123456789012:client/clientid",
		"Condition": {
			"StringEquals": {
				"iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com"
			}
		}
	}
}
```

Weitere Informationen zum Bedingungsoperator für Richtlinien finden Sie unter [IAM-JSON-Richtlinienelemente: Bedingungsoperatoren](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html). Weitere Informationen zu Domänenkonfigurationen finden Sie unter [Was ist eine Domänenkonfiguration](https://docs.aws.amazon.com//iot/latest/developerguide/iot-custom-endpoints-configurable.html)? .

# Objektrichtlinienvariablen
<a name="thing-policy-variables"></a>

Mithilfe von Dingrichtlinienvariablen können Sie AWS IoT Core Richtlinien schreiben, die Berechtigungen auf der Grundlage von Dingeigenschaften wie Dingnamen, Dingtypen und Dingattributwerten gewähren oder verweigern. Sie können Ding-Richtlinienvariablen verwenden, um dieselbe Richtlinie auf die Steuerung vieler AWS IoT Core Geräte anzuwenden. Weitere Informationen zur Gerätebereitstellung finden Sie unter [Gerätebereitstellung](iot-provision.html).

Wenn Sie eine nicht ausschließliche Zuordnung von Dingen verwenden, kann dasselbe Zertifikat an mehrere Dinge angehängt werden. Um eine klare Zuordnung aufrechtzuerhalten und mögliche Konflikte zu vermeiden, müssen Sie Ihre Client-ID mit dem Namen des Dings abgleichen. In diesem Fall erhalten Sie den Namen des Dings aus der Client-ID in der `Connect` MQTT-Nachricht, die gesendet wird, wenn ein Ding eine Verbindung AWS IoT Core herstellt.

Beachten Sie Folgendes, wenn Sie Objektrichtlinienvariablen in AWS IoT Core -Richtlinien verwenden.
+ Verwenden Sie die [AttachThingPrincipal](https://docs.aws.amazon.com/iot/latest/apireference/API_AttachThingPrincipal.html)API, um Zertifikate oder Principals (authentifizierte Amazon Cognito Cognito-Identitäten) an eine Sache anzuhängen.
+ Wenn eine nicht ausschließliche Ding-Assoziation vorhanden ist und Sie Ding-Namen durch Ding-Richtlinienvariablen ersetzen, muss der Wert von `clientId` in der MQTT-Verbindungsnachricht oder der TLS-Verbindung exakt mit dem Ding-Namen übereinstimmen.

Folgende Thing-Richtlinienvariablen stehen zur Verfügung:
+ `iot:Connection.Thing.ThingName`

  Dies ergibt den Namen der Sache in der AWS IoT Core Registrierung, für die die Richtlinie ausgewertet wird. AWS IoT Core verwendet das Zertifikat, das das Gerät bei der Authentifizierung vorlegt, um zu ermitteln, welches Objekt zur Überprüfung der Verbindung verwendet werden soll. Diese Richtlinienvariable ist nur verfügbar, wenn ein Gerät eine Verbindung über MQTT oder MQTT über das Protokoll herstellt. WebSocket 
+ `iot:Connection.Thing.ThingTypeName`

  Dies wird in den Objekttyp aufgelöst, auf das die Richtlinie angewendet wurde. Die Client-ID der WebSocket MQTT/-Verbindung muss mit dem Namen der Sache identisch sein. Diese Richtlinienvariable ist nur verfügbar, wenn eine Verbindung über MQTT oder MQTT über das Protokoll hergestellt wird. WebSocket
+ `iot:Connection.Thing.Attributes[attributeName]`

  Dies wird in den Wert des angegebenen Attributs aufgelöst, das mit dem Thing verknüpft ist, auf das die Richtlinie angewendet wurde. Ein Thing kann bis zu 50 Attribute aufweisen. Jedes Attribut ist als Richtlinienvariable verfügbar: `iot:Connection.Thing.Attributes[attributeName]` wo *attributeName* ist der Name des Attributs. Die Client-ID der MQTT/WebSocket Verbindung muss mit dem Namen des Dings identisch sein. Diese Richtlinienvariable ist nur verfügbar, wenn eine Verbindung über MQTT oder MQTT über das WebSocket Protokoll hergestellt wird.
+ `iot:Connection.Thing.IsAttached`

  `iot:Connection.Thing.IsAttached: ["true"]`erzwingt, dass nur die Geräte, die sowohl im AWS IoT Principal registriert als auch mit diesem verbunden sind, auf die in der Richtlinie enthaltenen Berechtigungen zugreifen können. Sie können diese Variable verwenden, um zu verhindern, dass ein Gerät eine Verbindung herstellt, AWS IoT Core wenn es ein Zertifikat vorlegt, das nicht an ein IoT-Ding in der AWS IoT Core Registrierung angehängt ist. Diese Variable hat Werte `true` oder `false` gibt an, dass das verbindende Ding über die API an das Zertifikat oder die Amazon Cognito Cognito-Identität in der Registrierung angehängt ist. [AttachThingPrincipal](https://docs.aws.amazon.com/iot/latest/apireference/API_AttachThingPrincipal.html) Der Objektname wird als Client-ID verwendet. 

Wenn Ihre Client-ID mit Ihrem Ding-Namen übereinstimmt oder wenn Sie Ihr Zertifikat ausschließlich an eine Sache anhängen, kann die Verwendung von Richtlinienvariablen in der Richtliniendefinition die Richtlinienverwaltung vereinfachen. Anstatt individuelle Richtlinien für jedes IoT-Ding zu erstellen, können Sie mithilfe der Ding-Richtlinienvariablen eine einzelne Richtlinie definieren. Diese Richtlinie kann dynamisch auf alle Geräte angewendet werden. Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die zeigt, wie sie funktioniert. Weitere Informationen finden Sie unter [Einer AWS IoT MQTT-Clientverbindung ein Ding zuordnen](exclusive-thing.md).

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Condition": {
				"StringLike": {
					"iot:ClientId": "*${iot:Connection.Thing.Attributes[envType]}"
				}
			},
			"Effect": "Allow",
			"Action": "iot:Connect",
			"Resource": "arn:aws:iot:us-east-1:123456789012:client/*"
		}
	]
}
```

In diesem Richtlinienbeispiel können Dinge eine Verbindung herstellen, AWS IoT Core wenn ihre Client-ID mit dem Wert ihres `envType` Attributs endet. Nur Dinge mit einem passenden Client-ID-Muster dürfen eine Verbindung herstellen.

# AWS IoT Core Richtlinienvariablen für X.509-Zertifikate
<a name="cert-policy-variables"></a>

X.509-Zertifikatsrichtlinienvariablen helfen beim Schreiben AWS IoT Core von Richtlinien. Diese Richtlinien gewähren Berechtigungen auf der Grundlage von X.509-Zertifikatsattributen. In den folgenden Abschnitten wird beschrieben, wie diese Zertifikatsrichtlinienvariablen verwendet werden.

**Wichtig**  
Wenn Ihr X.509-Zertifikat kein bestimmtes Zertifikatattribut enthält, aber die entsprechende Zertifikatsrichtlinienvariable in Ihrem Richtliniendokument verwendet wird, kann die Richtlinienbewertung zu unerwartetem Verhalten führen.

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

In der [RegisterCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCertificate.html)API `certificateId` erscheint das im Antworttext. Um Informationen zu Ihrem Zertifikat zu erhalten, verwenden Sie das `certificateId` in [DescribeCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeCertificate.html).

## Ausstellerattribute
<a name="issuer-attributes"></a>

Die folgenden AWS IoT Core Richtlinienvariablen unterstützen das Zulassen oder Verweigern von Berechtigungen auf der Grundlage von Zertifikatsattributen, die vom Zertifikataussteller festgelegt wurden.
+ `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` 

## Subject-Attribute
<a name="subject-attributes"></a>

Die folgenden AWS IoT Core Richtlinienvariablen unterstützen das Erteilen oder Verweigern von Berechtigungen auf der Grundlage der vom Zertifikatsaussteller festgelegten Attributen des Zertifikatsinhabers.
+ `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-Zertifikate bieten diesen Attributen die Möglichkeit, einen oder mehrere Werte zu enthalten. Standardmäßig wird bei Attributen mit mehreren Werten der erste Wert zurückgegeben. So kann beispielsweise das Attribut `Certificate.Subject.Country` eine Liste von Ländernamen enthalten, aber wenn es in einer Richtlinie ausgewertet wird, wird `iot:Certificate.Subject.Country` durch den ersten Ländernamen ersetzt.

Einen spezifischen Attributwert, der nicht dem ersten Wert entspricht, können Sie unter Verwendung eines 1-basierten Indexes anfordern. `iot:Certificate.Subject.Country.1` wird z. B. durch den zweiten Ländernamen im Attribut `Certificate.Subject.Country` ersetzt. Wenn Sie einen Index angeben, der nicht vorhanden ist (wenn Sie zum Beispiel einen dritten Wert anfordern, obwohl dem Attribut nur zwei Werte zugeordnet sind), findet keine Ersetzung statt und die Autorisierung schlägt fehl. Sie können das Suffix `.List` verwenden, um alle Werte des Attributs anzugeben.

## Attribute des alternativen Ausstellernamens
<a name="issuer-alternate-name-attributes"></a>

Die folgenden AWS IoT Core Richtlinienvariablen unterstützen die Erteilung oder Verweigerung von Berechtigungen auf der Grundlage von Attributen mit alternativen Namen des Ausstellers, die vom Zertifikataussteller festgelegt wurden.
+ `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`

## Attribute des alternativen Subjektnamens
<a name="subject-alternate-name-attributes"></a>

Die folgenden AWS IoT Core Richtlinienvariablen unterstützen die Erteilung oder Verweigerung von Berechtigungen auf der Grundlage von Attributen mit alternativen Namen, die vom Zertifikataussteller festgelegt wurden.
+ `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`

## Weitere Attribute
<a name="other-attributes"></a>

Sie können sie verwenden`iot:Certificate.SerialNumber`, um den Zugriff auf AWS IoT Core Ressourcen auf der Grundlage der Seriennummer eines Zertifikats zu erlauben oder zu verweigern. Die Richtlinienvariable `iot:Certificate.AvailableKeys` enthält die Namen aller Zertifikat-Richtlinienvariablen, die Werte enthalten.

# Verwenden von X.509-Zertifikatsrichtlinienvariablen
<a name="use-policy-variables"></a>

Dieses Thema enthält Einzelheiten zur Verwendung von Zertifikatsrichtlinienvariablen. X.509-Zertifikatsrichtlinienvariablen sind wichtig, wenn Sie AWS IoT Core Richtlinien erstellen, die Berechtigungen auf der Grundlage von X.509-Zertifikatattributen gewähren. Wenn Ihr X.509-Zertifikat kein bestimmtes Zertifikatattribut enthält, aber die entsprechende Zertifikatsrichtlinienvariable in Ihrem Richtliniendokument verwendet wird, kann die Richtlinienbewertung zu unerwartetem Verhalten führen. Dies liegt daran, dass die fehlende Richtlinienvariable in der Richtlinienerklärung nicht bewertet wird.

**Topics**
+ [Beispiel für ein X.509-Zertifikat](#certificate-example)
+ [Verwendung von Zertifikatsausstellerattributen als Zertifikatsrichtlinienvariablen](#issuer-attributes-policy)
+ [Verwendung von Zertifikatsantragsattributen als Variablen für die Zertifikatsrichtlinie](#subject-attributes-policy)
+ [Verwendung von alternativen Namensattributen des Zertifikatausstellers als Variablen für die Zertifikatsrichtlinie](#issuer-alternate-name-attributes-policy)
+ [Verwendung von Attributen mit alternativen Namen für den Antragsteller des Zertifikats als Variablen für die Zertifikatsrichtlinie](#subject-alternate-name-attributes-policy)
+ [Verwendung eines anderen Zertifikatsattributs als Zertifikatsrichtlinienvariable](#other-attributes-policy)
+ [Einschränkungen bei Richtlinienvariablen für X.509-Zertifikate](#policy-limits)
+ [Beispielrichtlinien, die Zertifikatsrichtlinienvariablen verwenden](#example-attributes-policy)

## Beispiel für ein X.509-Zertifikat
<a name="certificate-example"></a>

Ein typisches X.509-Zertifikat könnte wie folgt aussehen. Dieses Beispielzertifikat enthält Zertifikatattribute. Bei der Bewertung von AWS IoT Core Richtlinien werden die folgenden Zertifikatsattribute als Zertifikatsrichtlinienvariablen aufgefüllt: `Serial Number``Issuer`,`Subject`,`X509v3 Issuer Alternative Name`, und`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 >>
```

## Verwendung von Zertifikatsausstellerattributen als Zertifikatsrichtlinienvariablen
<a name="issuer-attributes-policy"></a>

Die folgende Tabelle enthält Einzelheiten dazu, wie die Attribute des Zertifikatsausstellers in eine AWS IoT Core Richtlinie eingefügt werden.


**Ausstellerattribute, die in einer Richtlinie ausgefüllt werden sollen**  

| Attribute des Zertifikatsausstellers | Variablen für die Zertifikatsrichtlinie | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/use-policy-variables.html)  | 

## Verwendung von Zertifikatsantragsattributen als Variablen für die Zertifikatsrichtlinie
<a name="subject-attributes-policy"></a>

Die folgende Tabelle enthält Einzelheiten dazu, wie die Attribute des Zertifikatssubjekts in einer AWS IoT Core Richtlinie aufgefüllt werden.


**Betreff-Attribute, die in einer Richtlinie ausgefüllt werden sollen**  

| Betreff-Attribute des Zertifikats | Variablen für die Zertifikatsrichtlinie | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/use-policy-variables.html)  | 

## Verwendung von alternativen Namensattributen des Zertifikatausstellers als Variablen für die Zertifikatsrichtlinie
<a name="issuer-alternate-name-attributes-policy"></a>

Die folgende Tabelle enthält Einzelheiten darüber, wie alternative Namensattribute von Zertifikatsausstellern in eine AWS IoT Core Richtlinie eingefügt werden.


**Attribute für alternative Namen des Ausstellers, die in eine Richtlinie eingetragen werden sollen**  

| Alternativer Name des X509v3-Emittenten | Attribut in einer Richtlinie | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/use-policy-variables.html)  | 

## Verwendung von Attributen mit alternativen Namen für den Antragsteller des Zertifikats als Variablen für die Zertifikatsrichtlinie
<a name="subject-alternate-name-attributes-policy"></a>

Die folgende Tabelle enthält Einzelheiten dazu, wie die Attribute für alternative Namen von Zertifikatsempfängern in einer AWS IoT Core Richtlinie aufgefüllt werden.


**Attribute mit alternativen Namen für Antragsteller, die in einer Richtlinie ausgefüllt werden sollen**  

| X509v3 Alternativer Name des Betreffs | Attribut in einer Richtlinie | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/use-policy-variables.html)  | 

## Verwendung eines anderen Zertifikatsattributs als Zertifikatsrichtlinienvariable
<a name="other-attributes-policy"></a>

Die folgende Tabelle enthält Einzelheiten dazu, wie andere Zertifikatsattribute in eine AWS IoT Core Richtlinie aufgenommen werden.


**Andere Attribute, die in einer Richtlinie aufgefüllt werden sollen**  

| Anderes Zertifikatsattribut | Variable für die Zertifikatsrichtlinie | 
| --- | --- | 
|  `Serial Number: 92:12:85:cb:b7:a5:e0:86`  |  `iot:Certificate.SerialNumber = 10525622389124227206`  | 

## Einschränkungen bei Richtlinienvariablen für X.509-Zertifikate
<a name="policy-limits"></a>

Folgende Einschränkungen gelten bei den Richtlinienvariablen für X.509-Zertifikate:

Fehlende Richtlinienvariablen  
Wenn Ihr X.509-Zertifikat kein bestimmtes Zertifikatattribut enthält, aber die entsprechende Zertifikatsrichtlinienvariable in Ihrem Richtliniendokument verwendet wird, kann die Richtlinienbewertung zu unerwartetem Verhalten führen. Dies liegt daran, dass die fehlende Richtlinienvariable in der Richtlinienerklärung nicht bewertet wird.

 SerialNumber Format des Zertifikats  
AWS IoT Core behandelt die Seriennummer des Zertifikats als Zeichenkettendarstellung einer dezimalen Ganzzahl. Wenn eine Richtlinie beispielsweise nur Verbindungen zulässt, deren Client-ID mit der Seriennummer des Zertifikats übereinstimmt, muss die Client-ID die Seriennummer im Dezimalformat sein.

Platzhalter  
Wenn Platzhalterzeichen in Zertifikatattributen vorhanden sind, wird die Richtlinienvariable nicht durch den Wert des Zertifikatsattributs ersetzt. Dadurch bleibt der `${policy-variable}` Text im Richtliniendokument erhalten. Dies kann zu einem Autorisierungsfehler führen. Die folgenden Platzhalterzeichen können verwendet werden: `*`, `$`, `+`, `?` und `#`.

Array-Felder  
Arrays in Zertifikatattributen sind auf fünf Elemente beschränkt. Zusätzliche Elemente werden ignoriert.

Länge der Zeichenfolge  
Alle Zeichenfolgenwerte sind auf maximal 1.024 Zeichen beschränkt. Wenn ein Zertifikatsattribut eine Zeichenfolge enthält, die länger als 1024 Zeichen ist, wird die Richtlinienvariable nicht durch den Wert des Zertifikatsattributs ersetzt. Dadurch bleibt das `${policy-variable}` im Richtliniendokument. Dies kann zu einem Autorisierungsfehler führen.

Sonderzeichen  
Jedem Sonderzeichen, wie `,`, `"`, `\`, `+`, `=`, `<`, `>` und `;`, muss ein umgekehrter Schrägstrich (`\`) vorangestellt werden, wenn es in einer Richtlinienvariablen verwendet wird. Beispielsweise wird `Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=US` zu `Amazon Web Service O\=Amazon.com Inc. L\=Seattle ST\=Washington C\=US`.

## Beispielrichtlinien, die Zertifikatsrichtlinienvariablen verwenden
<a name="example-attributes-policy"></a>

Das folgende Richtliniendokument ermöglicht Verbindungen mit einer Client-ID, die der Seriennummer des Zertifikats entspricht, und das Veröffentlichen zu dem Thema, das dem Muster entspricht:`${iot:Certificate.Subject.Organization}/device-stats/${iot:ClientId}/*`. 

**Wichtig**  
Wenn Ihr X.509-Zertifikat kein bestimmtes Zertifikatattribut enthält, aber die entsprechende Zertifikatsrichtlinienvariable in Ihrem Richtliniendokument verwendet wird, kann die Richtlinienbewertung zu unerwartetem Verhalten führen. Dies liegt daran, dass die fehlende Richtlinienvariable in der Richtlinienerklärung nicht bewertet wird. Wenn Sie beispielsweise das folgende Richtliniendokument an ein Zertifikat anhängen, das das `iot:Certificate.Subject.Organization` Attribut nicht enthält, werden die `iot:Certificate.Subject.Organization` Zertifikatsrichtlinienvariablen bei der Richtlinienbewertung nicht aufgefüllt.

****  

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

Sie können auch den [Bedingungsoperator Null](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) verwenden, um sicherzustellen, dass die in einer Richtlinie verwendeten Zertifikatsrichtlinienvariablen bei der Richtlinienbewertung aufgefüllt werden. Im folgenden Richtliniendokument sind Zertifikate nur `iot:Connect` zulässig, wenn die Attribute Certificate Serial Number und Certificate Subject Common Name vorhanden sind.

Alle Variablen der Zertifikatsrichtlinie haben Zeichenkettenwerte, sodass alle [Bedingungsoperatoren vom Typ „Zeichenfolge](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)“ unterstützt werden.

****  

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