

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.

# Cross-service verwirrter Stellvertreter, Prävention
<a name="cross-service-confused-deputy-prevention"></a>

Das *Confused-Deputy-Problem* ist ein Sicherheitsproblem, bei dem eine Entität, die nicht über die Berechtigung zum Ausführen einer Aktion verfügt, eine Entität mit größeren Rechten zwingen kann, die Aktion auszuführen. Im AWS Fall eines dienststellenübergreifenden Identitätswechsels kann es zu einem Problem mit verwirrten Stellvertretern kommen. Cross-service *Ein Identitätswechsel kann auftreten, wenn ein Dienst (der *anrufende Dienst) einen anderen Dienst* (den angerufenen Dienst) aufruft.* Der Anruf-Service kann so manipuliert werden, dass er seine Berechtigungen verwendet, um auf die Ressourcen eines anderen Kunden zu reagieren, auf die er sonst nicht zugreifen dürfte. Um dies zu verhindern, bietet AWS Tools, mit denen Sie Ihre Daten für alle Services mit Serviceprinzipalen schützen können, die Zugriff auf Ressourcen in Ihrem Konto erhalten haben. 

Um die Berechtigungen einzuschränken, die AWS IoT der Ressource einen anderen Dienst gewähren, empfehlen wir die Verwendung der Kontextschlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)und der [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)globalen Bedingungsschlüssel in Ressourcenrichtlinien. Wenn Sie beide globalen Bedingungskontextschlüssel verwenden, müssen der `aws:SourceAccount`-Wert und das Konto im `aws:SourceArn`-Wert dieselbe Konto-ID verwenden, wenn sie in derselben Richtlinienanweisung verwendet werden.

Der effektivste Weg, um sich vor dem Verwirrter-Stellvertreter-Problem zu schützen, ist die Verwendung des `aws:SourceArn` globalen Bedingungskontextschlüssels mit dem vollständigen Amazon-Ressourcenname (ARN) der Ressource. Für AWS IoT`aws:SourceArn` müssen Sie das Format einhalten: `arn:{{aws}}:iot:{{region}}:{{account-id}}:{{resource-type/resource-id}}` für ressourcenspezifische Berechtigungen oder`arn:{{aws}}:iot:{{region}}:{{account-id}}:{{*}}`. Die Ressourcen-ID kann der Name oder die ID der zulässigen Ressource oder eine Platzhalterangabe der zulässigen Ressourcen-IDs sein. Stellen Sie sicher, dass das {{region}} mit Ihrer AWS IoT Region und das mit Ihrer {{account-id}} Kundenkonto-ID übereinstimmt. 

Das folgende Beispiel zeigt, wie Sie das Problem mit dem verwirrten Stellvertreter verhindern können, indem Sie die Kontextschlüssel `aws:SourceArn` und die `aws:SourceAccount` globale Bedingung in der AWS IoT Rollenvertrauensrichtlinie verwenden. Weitere Beispiele finden Sie unter [Ausführliche Beispiele für die Prävention verwirrter Stellvertreter](#cross-service-confused-deputy-prevention-examples).

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "Service":"iot.amazonaws.com"
         },
         "Action":"sts:AssumeRole",
         "Condition":{
            "StringEquals":{
               "aws:SourceAccount":"{{123456789012}}"
        },
            "ArnLike":{
               "aws:SourceArn":"arn:{{aws}}:iot:{{us-east-1}}:{{123456789012}}:{{*}}"
        }
         }
      }
   ]
}
```

**Anmerkung**  
Wenn Sie die Fehlermeldung „Zugriff verweigert“ erhalten, kann dies daran liegen, dass die Dienstintegration mit AWS Security Token Service (STS) die Kontextschlüssel `aws:SourceArn` und die `aws:SourceAccount` Kontextschlüssel nicht unterstützt.

## Ausführliche Beispiele für die Prävention verwirrter Stellvertreter
<a name="cross-service-confused-deputy-prevention-examples"></a>

**Dieser Abschnitt enthält ausführliche Beispiele dafür, wie das Problem der verwirrten Stellvertreter verhindert werden kann, indem die Kontextschlüssel `aws:SourceArn` und die `aws:SourceAccount` globalen Bedingungsschlüssel in der AWS IoT Rollenvertrauensrichtlinie verwendet werden.**
+ [Flottenbereitstellung](#cross-service-confused-deputy-prevention-fleet-provision)
+ [JITP](#cross-service-confused-deputy-prevention-JITP)
+ [Anbieter von Anmeldeinformationen](#cross-service-confused-deputy-prevention-credential-provider)

### Flottenbereitstellung
<a name="cross-service-confused-deputy-prevention-fleet-provision"></a>

Sie können die [Flottenbereitstellung mithilfe einer Provisioning-Vorlagenressource](https://docs.aws.amazon.com/iot/latest/developerguide/iot-provision.html) konfigurieren. Wenn eine Bereitstellungsvorlage auf eine Bereitstellungsrolle verweist, kann die Vertrauensrichtlinie dieser Rolle die Bedingungsschlüssel und die `aws:SourceArn` Bedingungsschlüssel enthalten. `aws:SourceAccount` Diese Schlüssel begrenzen die Ressourcen, für die die Konfiguration die Anforderung aufrufen kann. `sts:AssumeRole`

Die Rolle mit der folgenden Vertrauensrichtlinie kann nur vom IoT-Prinzipal (`iot.amazonaws.com`) für die in der `SourceArn` angegebene Bereitstellungsvorlage übernommen werden.

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "Service":"iot.amazonaws.com"
         },
         "Action":"sts:AssumeRole",
         "Condition":{
            "StringEquals":{
               "aws:SourceAccount":"{{123456789012}}"
        },
            "ArnLike":{
               "aws:SourceArn":"arn:{{aws}}:iot:{{us-east-1}}:{{123456789012}}:provisioningtemplate/{{example_template}}"
        }
         }
      }
   ]
}
```

### JITP
<a name="cross-service-confused-deputy-prevention-JITP"></a>

Bei der [Just-in-Time-Bereitstellung (JITP)](https://docs.aws.amazon.com//iot/latest/developerguide/jit-provisioning.html) können Sie entweder die Bereitstellungsvorlage als von der CA getrennte Ressource verwenden oder den Vorlagentext und die Rolle als Teil der CA-Zertifikatskonfiguration definieren. Der Wert von `aws:SourceArn` in der AWS IoT Rollenvertrauensrichtlinie hängt davon ab, wie Sie die Bereitstellungsvorlage definieren.

#### Definieren Sie die Bereitstellungsvorlage als separate Ressource
<a name="cross-service-confused-deputy-prevention-JITP-template"></a>

Wenn Sie Ihre Bereitstellungsvorlage als separate Ressource definieren, `aws:SourceArn` kann der Wert von sein. `"arn:aws:iot:{{region}}:{{account-id}}:provisioningtemplate/{{example_template}}"` Sie können dasselbe Richtlinienbeispiel in [Flottenbereitstellung](#cross-service-confused-deputy-prevention-fleet-provision) verwenden.

#### Definieren einer Bereitstellungsvorlage in einem CA-Zertifikat
<a name="cross-service-confused-deputy-prevention-JITP-CA"></a>

Wenn Sie Ihre Bereitstellungsvorlage innerhalb einer CA-Zertifikatsressource definieren, `aws:SourceArn` kann der Wert von oder sein`"arn:aws:iot:{{region}}:{{account-id}}:cacert/{{cert_id}}"`. `"arn:aws:iot:{{region}}:{{account-id}}:cacert/{{*}}"` Sie können einen Platzhalter verwenden, wenn die Ressourcenkennung, z. B. die ID eines CA-Zertifikats, zum Zeitpunkt der Erstellung unbekannt ist.

Die Rolle mit der folgenden Vertrauensrichtlinie kann nur vom IoT-Prinzipal (`iot.amazonaws.com`) für das in der angegebene CA-Zertifikat übernommen werden`SourceArn`.

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "Service":"iot.amazonaws.com"
         },
         "Action":"sts:AssumeRole",
         "Condition":{
            "StringEquals":{
               "aws:SourceAccount":"{{123456789012}}"
        },
            "ArnLike":{
               "aws:SourceArn":"arn:{{aws}}:iot:{{us-east-1}}:{{123456789012}}:cacert/{{8ecde6884f3d87b1125ba31ac3fcb13d7016de7f57cc904fe1cb97c6ae98196e}}"
        }
         }
      }
   ]
}
```

Beim Erstellen eines CA-Zertifikats können Sie in der Registrierungskonfiguration auf eine Bereitstellungsrolle verweisen. Die Vertrauensrichtlinie der Bereitstellungsrolle kann verwendet werden`aws:SourceArn`, um einzuschränken, für welche Ressourcen die Rolle verwendet werden kann. Beim ersten [RegisterCACertificate-Aufruf](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCACertificate.html) zur Registrierung des CA-Zertifikats müssten Sie jedoch nicht den ARN des CA-Zertifikats in der Bedingung angeben. `aws:SourceArn`

Um dieses Problem zu umgehen, d. h. um die Vertrauensrichtlinie der Bereitstellungsrolle für das spezifische CA-Zertifikat anzugeben, mit dem registriert ist AWS IoT Core, können Sie wie folgt vorgehen:
+ Rufen Sie zunächst [RegisterCACertificate auf, ohne den Parameter anzugeben](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCACertificate.html). `RegistrationConfig`
+ Nachdem das CA-Zertifikat bei registriert wurde AWS IoT Core, rufen Sie [UpdateCACertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateCACertificate.html) auf.

  Geben Sie im updateCACertificate-Aufruf eine an, `RegistrationConfig` die die Vertrauensrichtlinie für die Bereitstellungsrolle enthält, die auf den ARN des neu registrierten CA-Zertifikats `aws:SourceArn` festgelegt ist.

### Anbieter von Anmeldeinformationen
<a name="cross-service-confused-deputy-prevention-credential-provider"></a>

Verwenden Sie für [AWS IoT Core Credential Provider](https://docs.aws.amazon.com//iot/latest/developerguide/authorizing-direct-aws.html) dasselbe, das AWS-Konto Sie zum Erstellen des Rollenalias in verwenden`aws:SourceAccount`, und geben Sie eine Anweisung an, die dem Ressourcen-ARN des Rolealias-Ressourcentyps in entspricht. `aws:SourceArn` Wenn Sie eine IAM-Rolle für die Verwendung mit dem AWS IoT Core Anmeldeinformationsanbieter erstellen, müssen Sie die ARNs aller Rollenaliase, die möglicherweise die Rolle übernehmen müssen, in die `aws:SourceArn` Bedingung aufnehmen, um so die dienstübergreifende Anfrage zu autorisieren. `sts:AssumeRole`

Die Rolle mit der folgenden Vertrauensrichtlinie kann nur vom Principal von AWS IoT Core Credential Provider (`credentials.iot.amazonaws.com`) für den in der angegebenen roleAlias übernommen werden. `SourceArn` Wenn ein Principal versucht, Anmeldeinformationen für einen anderen Rollenalias als den in der `aws:SourceArn` Bedingung angegebenen abzurufen, wird die Anfrage abgelehnt, auch wenn dieser andere Rollenalias auf dieselbe IAM-Rolle verweist.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "credentials.iot.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{123456789012}}"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:{{aws}}:iot:{{us-east-1}}:{{123456789012}}:rolealias/{{example_rolealias}}"
        }
      }
    }
  ]
}
```