

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.

# Sicherheit in Amazon Kinesis Video Streams
<a name="security"></a>

Cloud-Sicherheit AWS hat höchste Priorität. Als AWS Kunde profitieren Sie von einer Rechenzentrums- und Netzwerkarchitektur, die auf die Anforderungen der sicherheitssensibelsten Unternehmen zugeschnitten sind.

Sicherheit ist eine gemeinsame Verantwortung von Ihnen AWS und Ihnen. Das [Modell der geteilten Verantwortung](https://aws.amazon.com/compliance/shared-responsibility-model/) beschreibt dies als Sicherheit *der* Cloud und Sicherheit *in* der Cloud:
+ **Sicherheit der Cloud** — AWS ist verantwortlich für den Schutz der Infrastruktur, die AWS Dienste in der AWS Cloud ausführt. AWS bietet Ihnen auch Dienste, die Sie sicher nutzen können. Die Wirksamkeit unserer Sicherheitsfunktionen wird regelmäßig von externen Prüfern im Rahmen des [AWS -Compliance-Programms getestet und überprüft](https://aws.amazon.com/compliance/programs/). Weitere Informationen zu den Compliance-Programmen, die für Kinesis Video Streams gelten, finden Sie unter [AWS Services im Umfang nach Compliance-Programmen](https://aws.amazon.com/compliance/services-in-scope/).
+ **Sicherheit in der Cloud** — Ihre Verantwortung richtet sich nach dem AWS Service, den Sie nutzen. In Ihre Verantwortung fallen außerdem weitere Faktoren, wie z. B. die Vertraulichkeit der Daten, die Anforderungen Ihrer Organisation sowie geltende Gesetze und Vorschriften. 

Diese Dokumentation hilft Ihnen zu verstehen, wie Sie das Modell der gemeinsamen Verantwortung bei der Verwendung von Kinesis Video Streams anwenden können. In den folgenden Themen erfahren Sie, wie Sie Kinesis Video Streams konfigurieren, um Ihre Sicherheits- und Compliance-Ziele zu erreichen. Sie erfahren auch, wie Sie andere AWS Dienste nutzen können, mit denen Sie Ihre Kinesis Video Streams Streams-Ressourcen überwachen und sichern können. 

**Topics**
+ [Datenschutz in Kinesis Video Streams](how-kms.md)
+ [Steuern des Zugriffs auf Kinesis Video Streams Streams-Ressourcen mithilfe von IAM](how-iam.md)
+ [Steuern des Zugriffs auf Kinesis Video Streams Streams-Ressourcen mithilfe von AWS IoT](how-iot.md)
+ [Konformitätsprüfung für Amazon Kinesis Video Streams](akda-java-compliance.md)
+ [Resilienz in Amazon Kinesis Video Streams](disaster-recovery-resiliency.md)
+ [Infrastruktursicherheit in Kinesis Video Streams](infrastructure-security.md)
+ [Bewährte Sicherheitsmethoden für Kinesis Video Streams](security-best-practices.md)

# Datenschutz in Kinesis Video Streams
<a name="how-kms"></a>

Sie können serverseitige Verschlüsselung (SSE) mit AWS Key Management Service (AWS KMS) -Schlüsseln verwenden, um strenge Datenverwaltungsanforderungen zu erfüllen, indem Sie Ihre ruhenden Daten in Amazon Kinesis Video Streams verschlüsseln.

**Topics**
+ [Was ist serverseitige Verschlüsselung für Kinesis Video Streams?](#what-is-sse-akvs)
+ [Überlegungen zu Kosten, Regionen und Leistung](#costs-performance-akvs)
+ [Wie fange ich mit der serverseitigen Verschlüsselung an?](#getting-started-with-sse-akvs)
+ [Einen vom Kunden verwalteten Schlüssel erstellen und verwenden](#creating-using-sse-master-keys-akvs)
+ [Berechtigungen zur Verwendung eines vom Kunden verwalteten Schlüssels](#permissions-user-key-KMS-akvs)

## Was ist serverseitige Verschlüsselung für Kinesis Video Streams?
<a name="what-is-sse-akvs"></a>

Die serverseitige Verschlüsselung ist eine Funktion in Kinesis Video Streams, mit der Daten automatisch mit einem von Ihnen angegebenen AWS KMS Schlüssel verschlüsselt werden, bevor sie im Ruhezustand gespeichert werden. Die Daten werden verschlüsselt, bevor sie in die Stream-Speicherschicht von Kinesis Video Streams geschrieben werden. Nach Abruf aus dem Speicher werden sie entschlüsselt. Dadurch werden Ihre Daten stets im Ruhezustand im Kinesis-Video-Streams-Service verschlüsselt.

Dank serverseitiger Verschlüsselung müssen Ihre Kinesis-Videostream-Produzenten und -Nutzer keine KMS-Schlüssel oder kryptografische Operationen verwalten. Wenn die Datenspeicherung aktiviert ist, werden Ihre Daten beim Ein- und Austritt aus Kinesis Video Streams automatisch verschlüsselt, sodass Ihre Daten im Ruhezustand verschlüsselt sind. AWS KMS stellt alle Schlüssel bereit, die von der serverseitigen Verschlüsselungsfunktion verwendet werden. AWS KMS optimiert die Verwendung eines KMS-Schlüssels für Kinesis Video Streams, der von einem benutzerdefinierten AWS KMS Schlüssel verwaltet wird AWS, der in den Service importiert wurde. AWS KMS 

## Überlegungen zu Kosten, Regionen und Leistung
<a name="costs-performance-akvs"></a>

Wenn Sie serverseitige Verschlüsselung anwenden, fallen Kosten für AWS KMS API-Nutzung und Schlüssel an. Im Gegensatz zu benutzerdefinierten AWS KMS Schlüsseln wird der `aws/kinesisvideo` Standard-KMS-Schlüssel kostenlos angeboten. Sie müssen jedoch weiterhin die API-Nutzungskosten bezahlen, die Kinesis Video Streams in Ihrem Namen entstehen.

API-Nutzungskosten fallen für jeden KMS-Schlüssel an, auch für benutzerdefinierte. Die AWS KMS Kosten hängen von der Anzahl der Benutzeranmeldedaten ab, die Sie bei Ihren Datenproduzenten und -verbrauchern verwenden, da für jeden Benutzeranmeldenachweis ein eindeutiger API-Aufruf erforderlich ist. AWS KMS

Im Folgenden werden die Kosten pro Ressource aufgeführt:

**Schlüssel**
+ Der KMS-Schlüssel für Kinesis Video Streams, der von AWS (alias =`aws/kinesisvideo`) verwaltet wird, ist kostenlos.
+ Benutzergenerierte KMS-Schlüssel sind kostenpflichtig AWS KMS key . Weitere Informationen finden Sie unter [AWS Key Management Service  – Preise](https://aws.amazon.com/kms/pricing/#Keys).

### AWS KMS API-Nutzung
<a name="api-usage"></a>

API-Anfragen zur Generierung neuer Datenverschlüsselungsschlüssel oder zum Abrufen vorhandener Verschlüsselungsschlüssel nehmen mit zunehmendem Datenverkehr zu und sind mit AWS KMS Nutzungskosten verbunden. Weitere Informationen finden Sie unter [AWS Key Management Service Preise: Nutzung](https://aws.amazon.com/kms/pricing/#Usage).

Kinesis Video Streams generiert wichtige Anfragen, auch wenn die Aufbewahrung auf 0 gesetzt ist (keine Aufbewahrung).

### Verfügbarkeit serverseitiger Verschlüsselung nach Regionen
<a name="sse-regions-akvs"></a>

Die serverseitige Verschlüsselung von Kinesis Video Streams ist überall verfügbar, AWS-Regionen wo Kinesis Video Streams verfügbar ist.

## Wie fange ich mit der serverseitigen Verschlüsselung an?
<a name="getting-started-with-sse-akvs"></a>

Die serverseitige Verschlüsselung ist bei Kinesis Video Streams immer aktiviert. Wenn bei der Erstellung des Streams kein vom Benutzer bereitgestellter Schlüssel angegeben wird, wird der Von AWS verwalteter Schlüssel (von Kinesis Video Streams bereitgestellt) verwendet.

Ein vom Benutzer bereitgestellter KMS-Schlüssel muss einem Kinesis-Videostream zugewiesen werden, wenn er erstellt wird. Sie können einem Stream später mithilfe der [UpdateStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_UpdateStream.html)API keinen anderen Schlüssel zuweisen.

Sie können einem Kinesis-Videostream auf zwei Arten einen vom Benutzer bereitgestellten KMS-Schlüssel zuweisen:
+ Geben Sie beim Erstellen eines Kinesis-Videostreams in den AWS-Managementkonsole den den KMS-Schlüssel auf der Registerkarte **Verschlüsselung** auf der Seite **Neuen Videostream erstellen** an.
+ Wenn Sie einen Kinesis-Videostream mithilfe der [CreateStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_CreateStream.html)API erstellen, geben Sie die Schlüssel-ID im `KmsKeyId` Parameter an.

## Einen vom Kunden verwalteten Schlüssel erstellen und verwenden
<a name="creating-using-sse-master-keys-akvs"></a>

In diesem Abschnitt wird beschrieben, wie Sie Ihre eigenen KMS-Schlüssel erstellen und verwenden können, anstatt den von Amazon Kinesis Video Streams verwalteten Schlüssel zu verwenden.

### Einen vom Kunden verwalteten Schlüssel erstellen
<a name="creating-sse-master-keys-akvs"></a>

Informationen zum Erstellen eigener Schlüssel finden Sie unter [Creating Keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) im *AWS Key Management Service Developer Guide*. Nachdem Sie Schlüssel für Ihr Konto erstellt haben, gibt der Kinesis Video Streams Streams-Dienst diese Schlüssel in der Liste der vom **Kunden verwalteten Schlüssel** zurück.

### Verwenden eines vom Kunden verwalteten Schlüssels
<a name="using-sse-master-keys-akvs"></a>

Nachdem Ihren Verbrauchern, Produzenten und Administratoren die richtigen Berechtigungen zugewiesen wurden, können Sie benutzerdefinierte KMS-Schlüssel in Ihrem eigenen AWS-Konto oder einem anderen System verwenden AWS-Konto. Alle KMS-Schlüssel in Ihrem Konto werden in der Liste der vom **Kunden verwalteten Schlüssel** auf der Konsole angezeigt.

Um benutzerdefinierte KMS-Schlüssel verwenden zu können, die sich in einem anderen Konto befinden, müssen Sie über die entsprechenden Berechtigungen verfügen. Sie müssen außerdem den Stream mithilfe der `CreateStream`-API erstellen. Sie können keine KMS-Schlüssel von verschiedenen Konten in Streams verwenden, die in der Konsole erstellt wurden.

**Anmerkung**  
Auf den KMS-Schlüssel wird erst zugegriffen, wenn der `GetMedia` Vorgang `PutMedia` oder ausgeführt wurde. Dies führt zu folgendem Ergebnis:  
Wenn der von Ihnen angegebene Schlüssel nicht existiert, ist der `CreateStream` Vorgang erfolgreich, aber `PutMedia` die `GetMedia` Operationen im Stream schlagen fehl.
Wenn Sie den bereitgestellten Schlüssel (`aws/kinesisvideo`) verwenden, ist der Schlüssel erst in Ihrem Konto vorhanden, wenn der erste `PutMedia` `GetMedia` OR-Vorgang ausgeführt wird.

## Berechtigungen zur Verwendung eines vom Kunden verwalteten Schlüssels
<a name="permissions-user-key-KMS-akvs"></a>

Bevor Sie serverseitige Verschlüsselung mit einem vom Kunden verwalteten Schlüssel verwenden können, müssen Sie KMS-Schlüsselrichtlinien konfigurieren, um die Verschlüsselung von Streams sowie die Verschlüsselung und Entschlüsselung von Stream-Datensätzen zu ermöglichen. Beispiele und weitere Informationen zu AWS KMS Berechtigungen finden Sie unter [AWS KMS API-Berechtigungen: Referenz zu Aktionen und Ressourcen](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html). 

**Anmerkung**  
Die Verwendung des Standard-Serviceschlüssels für die Verschlüsselung erfordert keine Anwendung benutzerdefinierter IAM-Berechtigungen.

Bevor Sie einen vom Kunden verwalteten Schlüssel verwenden, stellen Sie sicher, dass Ihre Kinesis-Videostream-Produzenten und -Verbraucher (IAM-Principals) Benutzer gemäß der AWS KMS Standardschlüsselrichtlinie sind. Andernfalls schlägt das Schreiben in und das Lesen aus dem Stream fehl. Dies kann zu einem Datenverlust, einer verspäteten Verarbeitung oder abgestürzten Anwendungen führen. Sie können Berechtigungen für KMS-Schlüssel mit IAM-Richtlinien verwalten. Weitere Informationen finden Sie unter [Verwenden von IAM-Richtlinien mit](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html). AWS KMS

### Beispiel für Produzentenberechtigungen
<a name="example-producer-permissions-akvs"></a>

Ihre Kinesis-Videostream-Produzenten müssen über die folgenden `kms:GenerateDataKey` Berechtigungen verfügen:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:GenerateDataKey"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesisvideo:PutMedia"
        ],
        "Resource": "arn:aws:kinesisvideo:*:123456789012:stream/MyStream/*"
    }
  ]
}
```

------

### Beispiel für Benutzerberechtigungen
<a name="example-consumer-permissions-akvs"></a>

Ihre Kinesis-Videostream-Nutzer müssen über die folgenden `kms:Decrypt` Berechtigungen verfügen:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesisvideo:GetMedia"
        ],
        "Resource": "arn:aws:kinesisvideo:*:123456789012:stream/MyStream/*"
    }
  ]
}
```

------

# Steuern des Zugriffs auf Kinesis Video Streams Streams-Ressourcen mithilfe von IAM
<a name="how-iam"></a>

Sie können AWS Identity and Access Management (IAM) mit Amazon Kinesis Video Streams verwenden, um zu kontrollieren, ob Benutzer in Ihrer Organisation eine Aufgabe mithilfe bestimmter Kinesis Video Streams-API-Operationen ausführen können und ob sie bestimmte Ressourcen verwenden können. AWS 

Weitere Informationen zu IAM finden Sie unter:
+ [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/)
+ [Erste Schritte mit IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)
+ [IAM Benutzerhandbuch](https://docs.aws.amazon.com/IAM/latest/UserGuide/)

**Topics**
+ [Richtliniensyntax](#policy-syntax)
+ [Aktionen für Kinesis Video Streams](#kinesis-using-iam-actions)
+ [Amazon-Ressourcennamen (ARNs) für Kinesis Video Streams](#kinesis-using-iam-arn-format)
+ [Anderen IAM-Konten Zugriff auf einen Kinesis-Videostream gewähren](#how-iam-crossaccount)
+ [Beispielrichtlinien für Kinesis Video Streams](#how-iam-policies)

## Richtliniensyntax
<a name="policy-syntax"></a>

Eine IAM-Richtlinie ist ein JSON-Dokument, das eine oder mehrere Anweisungen enthält. Jede Anweisung ist folgendermaßen strukturiert:

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"arn",
    "Condition":{
      "condition":{
        "key":"value"
        }
      }
    }
  ]
}
```

Eine Anweisung kann aus verschiedenen Elementen bestehen:
+ **Effekt** — Der *Effekt* kann `Allow` oder `Deny` sein. -Benutzer verfügen standardmäßig nicht über die Berechtigung zur Verwendung von Ressourcen und API-Aktionen. Daher werden alle Anfragen abgelehnt. Dieser Standardwert kann durch eine explizite Zugriffserlaubnis überschrieben werden. Eine explizite Zugriffsverweigerung überschreibt jedwede Zugriffserlaubnis.
+ **Aktion** — Die *Aktion* ist die spezifische API-Aktion, für die Sie die Erlaubnis erteilen oder verweigern.
+ **Ressource** — Die Ressource, die von der Aktion betroffen ist. Um eine Ressource in der Anweisung anzugeben, müssen Sie deren Amazon-Ressourcennamen (ARN) verwenden.
+ **Bedingung** — Bedingungen sind optional. Mit ihrer Hilfe können Sie bestimmen, wann Ihre Richtlinie wirksam ist.

Wir empfehlen Ihnen, bei der Erstellung und Verwaltung von IAM-Richtlinien den [IAM-Richtliniengenerator und den [IAM-Richtliniensimulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-generator) zu verwenden.

## Aktionen für Kinesis Video Streams
<a name="kinesis-using-iam-actions"></a>

In einer IAM-Richtlinienanweisung können Sie jede API-Aktion von jedem Service, der IAM unterstützt, angeben. Verwenden Sie für Kinesis Video Streams das folgende Präfix mit dem Namen der API-Aktion:`kinesisvideo:`. Beispiel: `kinesisvideo:CreateStream`, `kinesisvideo:ListStreams` und `kinesisvideo:DescribeStream`.

Um mehrere Aktionen in einer einzigen Anweisung anzugeben, trennen Sie sie wie folgt durch Kommata:

```
"Action": ["kinesisvideo:action1", "kinesisvideo:action2"]
```

Sie können auch mehrere Aktionen mittels Platzhaltern angeben. Beispielsweise können Sie alle Aktionen festlegen, deren Name mit dem Wort "Get" beginnt:

```
"Action": "kinesisvideo:Get*"
```

Um alle Kinesis Video Streams Streams-Operationen anzugeben, verwenden Sie das Sternchen (\$1) als Platzhalter wie folgt:

```
"Action": "kinesisvideo:*"
```

Eine vollständige Liste der Kinesis Video Streams Streams-API-Aktionen finden Sie in der [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html).

## Amazon-Ressourcennamen (ARNs) für Kinesis Video Streams
<a name="kinesis-using-iam-arn-format"></a>

Jede IAM-Richtlinienerklärung gilt für die Ressourcen, die Sie mithilfe ihrer angeben. ARNs

Verwenden Sie das folgende ARN-Ressourcenformat für Kinesis Video Streams:

```
arn:aws:kinesisvideo:region:account-id:stream/stream-name/code
```

Beispiel:

```
"Resource": arn:aws:kinesisvideo:*:111122223333:stream/my-stream/0123456789012
```

Sie können den ARN eines Streams mit abrufen [DescribeStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html).

## Anderen IAM-Konten Zugriff auf einen Kinesis-Videostream gewähren
<a name="how-iam-crossaccount"></a>

Möglicherweise müssen Sie anderen IAM-Konten die Erlaubnis erteilen, Operationen mit Streams in Kinesis Video Streams durchzuführen. Die folgende Übersicht beschreibt die allgemeinen Schritte, um den kontenübergreifenden Zugriff auf Videostreams zu gewähren:

1. Rufen Sie die 12-stellige Konto-ID des Kontos ab, dem Sie Berechtigungen zur Ausführung von Vorgängen mit der in Ihrem Konto erstellten Stream-Ressource gewähren möchten. 

   **Beispiel:** In den folgenden Schritten verwenden wir 111111111111 als Konto-ID für das Konto, dem Sie die Erlaubnis erteilen möchten, und 999999999999 als ID für Ihre Kinesis Video Streams.

1. Erstellen Sie eine IAM-verwaltete Richtlinie für das Konto, dem der Stream gehört (999999999999), die die Zugriffsebene ermöglicht, die Sie gewähren möchten. 

   **Beispielrichtlinie:**

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:GetDataEndpoint",
                   "kinesisvideo:DescribeStream",
                   "kinesisvideo:PutMedia"
               ],
               "Resource": "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179"
           }
       ]
   }
   ```

------

   Weitere Beispielrichtlinien für Kinesis Video Streams Streams-Ressourcen finden Sie [Beispielrichtlinien](#how-iam-policies) im nächsten Abschnitt.

1. Erstellen Sie eine Rolle in dem Konto, dem der Stream gehört (999999999999), und geben Sie das Konto an, für das Sie Berechtigungen gewähren möchten (111111111111). Dadurch wird der Rolle eine vertrauenswürdige Entität hinzugefügt. 

   **Beispiel für eine vertrauenswürdige Richtlinie:**

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111111111111:root"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   Hängen Sie die Richtlinie, die Sie im vorherigen Schritt erstellt haben, an diese Rolle an.

   Sie haben jetzt eine Rolle im Konto 999999999999 erstellt, die über die Berechtigung für Operationen wie `DescribeStream``GetDataEndpoint`, und für einen Stream-Ressourcen-ARN in `PutMedia` der verwalteten Richtlinie verfügt. Diese neue Rolle vertraut auch darauf, dass das andere Konto, 111111111111, diese Rolle übernimmt. 
**Wichtig**  
Notieren Sie sich den Rollen-ARN, Sie benötigen ihn im nächsten Schritt.

1. Erstellen Sie eine verwaltete Richtlinie für das andere Konto, 111111111111, die die `AssumeRole` Aktion für die Rolle ermöglicht, die Sie im vorherigen Schritt für das Konto 999999999999 erstellt haben. Sie müssen die Rolle ARN aus dem vorherigen Schritt erwähnen. 

   **Beispiel für eine Richtlinie:**

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::999999999999:role/CustomRoleName"
       }
   }
   ```

------

1. Ordnen Sie die im vorherigen Schritt erstellte Richtlinie einer IAM-Entität zu, z. B. einer Rolle oder einem Benutzer im Konto 111111111111. Dieser Benutzer hat jetzt die Berechtigung, die Rolle im Konto 999999999999 anzunehmen. `CustomRoleName` 

   Die Anmeldeinformationen dieses Benutzers rufen die AWS STS `AssumeRole` API auf, um die Sitzungsanmeldeinformationen abzurufen, die anschließend verwendet werden, um Kinesis Video Streams in dem Stream aufzurufen, der APIs im Konto 999999999999 erstellt wurde.

   ```
   aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/CustomRoleName" --role-session-name "kvs-cross-account-assume-role"
   {
       "Credentials": {
           "AccessKeyId": "",
           "SecretAccessKey": "",
           "SessionToken": "",
           "Expiration": ""
       },
       "AssumedRoleUser": {
           "AssumedRoleId": "",
           "Arn": ""
       }
   }
   ```

1. Legen Sie den Zugriffsschlüssel, den geheimen Schlüssel und die Sitzungsanmeldedaten auf der Grundlage der vorherigen Einstellungen in der Umgebung fest.

   ```
   set AWS_ACCESS_KEY_ID=
   set AWS_SECRET_ACCESS_KEY=
   set AWS_SESSION_TOKEN=
   ```

1. Führen Sie Kinesis Video Streams aus APIs , um den Datenendpunkt für den Stream im Konto 999999999999 zu beschreiben und abzurufen.

   ```
   aws kinesisvideo describe-stream --stream-arn "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179"
   {
       "StreamInfo": {
           "StreamName": "custom-stream-name",
           "StreamARN": "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179",
           "KmsKeyId": "arn:aws:kms:us-west-2:999999999999:alias/aws/kinesisvideo",
           "Version": "abcd",
           "Status": "ACTIVE",
           "CreationTime": "2018-02-19T10:56:58.179000+00:00",
           "DataRetentionInHours": 24
       }
   }
   
   aws kinesisvideo get-data-endpoint --stream-arn "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179" --api-name "PUT_MEDIA"
   {
       "DataEndpoint": "https://s-b12345.kinesisvideo.us-west-2.amazonaws.com"
   }
   ```

[Allgemeine step-by-step Anweisungen zur Gewährung von kontenübergreifendem Zugriff finden Sie unter Delegieren des Zugriffs für alle Benutzer mithilfe von IAM-Rollen. AWS-Konten](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html)

## Beispielrichtlinien für Kinesis Video Streams
<a name="how-iam-policies"></a>

Die folgenden Beispielrichtlinien zeigen, wie Sie den Benutzerzugriff auf Ihre Kinesis Video Streams kontrollieren können.

**Example 1: Erlauben Sie Benutzern, Daten aus jedem Kinesis-Videostream abzurufen**  
Diese Richtlinie ermöglicht es einem Benutzer oder einer Gruppe, die`DescribeStream`,, `GetDataEndpoint` `GetMedia``ListStreams`, und `ListTagsForStream` -Operationen für jeden Kinesis-Videostream auszuführen. Diese Richtlinie ist für Benutzer geeignet, die Daten aus beliebigen Videostreams abrufen können.     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:Describe*",
                "kinesisvideo:Get*",
                "kinesisvideo:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example 2: Erlauben Sie einem Benutzer, einen Kinesis-Videostream zu erstellen und Daten darauf zu schreiben**  
Diese Richtlinie erlaubt es einem Benutzer oder einer Gruppe, die Operationen `CreateStream` und `PutMedia` auszuführen. Diese Richtlinie ist für eine Überwachungskamera geeignet, die einen Videostream erstellen und Daten an diesen Stream senden kann.  

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:CreateStream",
                "kinesisvideo:PutMedia"            
            ],
            "Resource": "*"
        }
    ]
}
```

**Example 3: Erlauben Sie einem Benutzer vollen Zugriff auf alle Kinesis Video Streams Streams-Ressourcen**  
Diese Richtlinie ermöglicht es einem Benutzer oder einer Gruppe, jeden Kinesis Video Streams Streams-Vorgang auf einer beliebigen Ressource durchzuführen. Diese Richtlinie ist für Administratoren geeignet.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kinesisvideo:*",
            "Resource": "*"
        }
    ]
}
```

**Example 4: Erlauben Sie einem Benutzer, Daten in einen bestimmten Kinesis-Videostream zu schreiben**  
Diese Richtlinie erlaubt es einem Benutzer oder einer Gruppe, Daten in einen bestimmten Videostream zu schreiben. Diese Richtlinie ist für ein Gerät geeignet, das Daten an einen einzelnen Stream senden kann.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kinesisvideo:PutMedia",
            "Resource": "arn:aws:kinesisvideo:us-west-2:123456789012:stream/your_stream/0123456789012"
        }
    ]
}
```

# Steuern des Zugriffs auf Kinesis Video Streams Streams-Ressourcen mithilfe von AWS IoT
<a name="how-iot"></a>

In diesem Abschnitt wird beschrieben, wie Sie einem Gerät (z. B. einer Kamera) ermöglichen, Audio- und Videodaten nur an einen bestimmten Kinesis-Videostream zu senden. Sie können dies tun, indem Sie den Anbieter für AWS IoT Anmeldeinformationen und eine AWS Identity and Access Management (IAM-) Rolle verwenden.

Geräte können X.509-Zertifikate verwenden, um AWS IoT mithilfe von Protokollen für die gegenseitige TLS-Authentifizierung eine Verbindung herzustellen. Andere AWS-Services (z. B. Kinesis Video Streams) unterstützen keine zertifikatsbasierte Authentifizierung, können jedoch mithilfe von AWS Anmeldeinformationen im AWS Signature Version 4-Format aufgerufen werden. Der Signature Version 4-Algorithmus erfordert in der Regel, dass der Anrufer über eine Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel verfügt. AWS IoT verfügt über einen Anbieter für Anmeldeinformationen, mit dem Sie das integrierte X.509-Zertifikat als eindeutige Geräteidentität für die Authentifizierung von AWS Anfragen (z. B. Anfragen an Kinesis Video Streams) verwenden können. Dadurch müssen Sie keine Zugriffsschlüssel-ID und keinen geheimen Zugriffsschlüssel auf Ihrem Gerät speichern. 

Der Anbieter für Anmeldeinformationen authentifiziert einen Client (in diesem Fall ein Kinesis Video Streams Streams-SDK, das auf der Kamera läuft, die Sie Daten an einen Videostream senden möchten) mithilfe eines X.509-Zertifikats und stellt ein temporäres Sicherheitstoken mit eingeschränkten Rechten aus. Sie können das Token verwenden, um jede AWS Anfrage zu signieren und zu authentifizieren (in diesem Fall ein Aufruf der Kinesis Video Streams). Weitere Informationen finden Sie unter [Autorisieren von direkten Aufrufen](https://docs.aws.amazon.com//iot/latest/developerguide/authorizing-direct-aws.html) von Diensten. AWS 

Für diese Art der Authentifizierung der Anfragen Ihrer Kamera an Kinesis Video Streams müssen Sie eine IAM-Rolle erstellen und konfigurieren und der Rolle entsprechende IAM-Richtlinien zuordnen, damit der Anbieter der AWS IoT Anmeldeinformationen die Rolle in Ihrem Namen übernehmen kann. 

[Weitere Informationen AWS IoT dazu finden Sie in der Dokumentation.AWS IoT Core](https://docs.aws.amazon.com/iot/?id=docs_gateway) Weitere Informationen über IAM finden Sie unter [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/).

**Topics**
+ [AWS IoT ThingName als Streamname](#how-iot-thingnamestreamname)
+ [AWS IoT CertificateId als Streamname](#how-iot-iotcertstreamname)
+ [Verwenden Sie AWS IoT Anmeldeinformationen, um zu einem fest codierten Stream-Namen zu streamen](#how-iot-hard-coded-stream)

## AWS IoT ThingName als Streamname
<a name="how-iot-thingnamestreamname"></a>

**Topics**
+ [Schritt 1: Erstelle einen AWS IoT Ding-Typ und ein AWS IoT Ding](#how-iot-create-thing-type)
+ [Schritt 2: Erstellen Sie eine IAM-Rolle, die übernommen werden soll AWS IoT](#how-iot-add-iot-policy)
+ [Schritt 3: Erstellen und konfigurieren Sie das X.509-Zertifikat](#how-iot-create-cert-keys)
+ [Schritt 4: Testen Sie die AWS IoT Anmeldeinformationen mit Ihrem Kinesis-Videostream](#how-iot-test-it)
+ [Schritt 5: Bereitstellen von AWS IoT Zertifikaten und Anmeldeinformationen im Dateisystem Ihrer Kamera und Streamen von Daten in Ihren Videostream](#how-iot-deploy)

### Schritt 1: Erstelle einen AWS IoT Ding-Typ und ein AWS IoT Ding
<a name="how-iot-create-thing-type"></a>

 AWS IoT In ist ein Ding eine Repräsentation eines bestimmten Geräts oder einer logischen Entität. In diesem Fall steht ein AWS IoT Ding für Ihren Kinesis-Videostream, für den Sie die Zugriffskontrolle auf Ressourcenebene konfigurieren möchten. Um ein Ding zu erstellen, müssen Sie zunächst einen AWS IoT Dingtyp erstellen. Sie können Dingtypen verwenden AWS IoT , um Beschreibungs- und Konfigurationsinformationen zu speichern, die allen Dingen gemeinsam sind, die demselben Dingtyp zugeordnet sind.

1. Der folgende Beispielbefehl erstellt einen Objekttyp `kvs_example_camera`:

   ```
   aws --profile default iot create-thing-type --thing-type-name kvs_example_camera > iot-thing-type.json
   ```

1. Dieser Beispielbefehl erstellt das `kvs_example_camera_stream` Ding vom Typ `kvs_example_camera` Ding:

   ```
   aws --profile default  iot create-thing --thing-name kvs_example_camera_stream --thing-type-name kvs_example_camera > iot-thing.json
   ```

### Schritt 2: Erstellen Sie eine IAM-Rolle, die übernommen werden soll AWS IoT
<a name="how-iot-add-iot-policy"></a>

IAM-Rollen ähneln Benutzern, da es sich bei einer Rolle um eine AWS Identität mit Berechtigungsrichtlinien handelt, die festlegen, wofür die Identität zuständig ist und was nicht. AWS Eine Rolle kann von jedem übernommen werden, der sie benötigt. Wenn Sie eine Rolle annehmen, erhalten Sie temporäre Sicherheitsanmeldeinformationen für Ihre Rollensitzung.

Die Rolle, die Sie in diesem Schritt erstellen, kann verwendet werden, AWS IoT um temporäre Anmeldeinformationen vom Security Token Service (STS) abzurufen, wenn Autorisierungsanfragen von einem Client ausgeführt werden. In diesem Fall ist der Client das Kinesis Video Streams SDK, das auf Ihrer Kamera läuft. 

Führen Sie die folgenden Schritte aus, um diese IAM-Rolle zu erstellen und zu konfigurieren:

1. Erstellen Sie eine IAM-Rolle.

   Der folgende Beispielbefehl erstellt eine IAM-Rolle mit dem Namen `KVSCameraCertificateBasedIAMRole`:

   ```
   aws --profile default iam create-role --role-name KVSCameraCertificateBasedIAMRole --assume-role-policy-document 'file://iam-policy-document.json' > iam-role.json
   ```

   Sie können die folgende JSON-Datei für die Vertrauensrichtlinie `iam-policy-document.json` verwenden:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "credentials.iot.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Fügen Sie als Nächstes der IAM-Rolle, die Sie zuvor erstellt haben, eine Berechtigungsrichtlinie hinzu. Diese Berechtigungsrichtlinie ermöglicht die selektive Zugriffskontrolle (eine Teilmenge der unterstützten Operationen) für eine AWS Ressource. In diesem Fall ist die AWS Ressource der Videostream, den Ihre Kamera Daten senden soll. Mit anderen Worten, sobald alle Konfigurationsschritte abgeschlossen sind, kann diese Kamera Daten nur an diesen Videostream senden.

   ```
   aws --profile default iam put-role-policy --role-name KVSCameraCertificateBasedIAMRole --policy-name KVSCameraIAMPolicy --policy-document 'file://iam-permission-document.json' 
   ```

   Sie können den folgenden IAM-Richtlinien-JSON für Folgendes `iam-permission-document.json` verwenden:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:DescribeStream",
                   "kinesisvideo:PutMedia",
                   "kinesisvideo:TagStream",
                   "kinesisvideo:GetDataEndpoint"
               ],
               "Resource": "arn:aws:kinesisvideo:*:*:stream/${credentials-iot:ThingName}/*"
           }
       ]
   }
   ```

------

   Beachten Sie, dass diese Richtlinie die angegebenen Aktionen nur für einen Videostream (AWS Ressource) autorisiert, der durch den Platzhalter angegeben ist. `(${credentials-iot:ThingName})` Dieser Platzhalter nimmt den Wert des AWS IoT Thing-Attributs an, `ThingName` wenn der Anbieter für AWS IoT Anmeldeinformationen den Namen des Videostreams in der Anfrage sendet. 

1. Erstellen Sie als Nächstes einen Rollenalias für Ihre IAM-Rolle. Rollenalias ist ein alternatives Datenmodell, das auf die IAM-Rolle verweist. Eine Anfrage eines Anbieters für AWS IoT Anmeldeinformationen muss einen Rollenalias enthalten, der angibt, welche IAM-Rolle übernommen werden soll, um die temporären Anmeldeinformationen vom STS zu erhalten.

   Mit dem folgenden Beispielbefehl wird ein Rollenalias namens `KvsCameraIoTRoleAlias` erstellt:

   ```
   aws --profile default iot create-role-alias --role-alias KvsCameraIoTRoleAlias --role-arn $(jq --raw-output '.Role.Arn' iam-role.json) --credential-duration-seconds 3600 > iot-role-alias.json
   ```

1. Jetzt können Sie die Richtlinie erstellen, die es ermöglicht, mithilfe des Rollenalias die Rolle mit dem Zertifikat AWS IoT zu übernehmen (sobald es angehängt ist). 

   Mit dem folgenden Beispielbefehl wird eine Richtlinie für AWS IoT aufgerufen`KvsCameraIoTPolicy`.

   ```
   aws --profile default iot create-policy --policy-name KvsCameraIoTPolicy --policy-document 'file://iot-policy-document.json'
   ```

   Sie können den folgenden Befehl verwenden, um das `iot-policy-document.json` Dokument JSON zu erstellen:

   ```
   cat > iot-policy-document.json <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:AssumeRoleWithCertificate"
               ],
               "Resource": "$(jq --raw-output '.roleAliasArn' iot-role-alias.json)"
           }
       ]
   }
   EOF
   ```

### Schritt 3: Erstellen und konfigurieren Sie das X.509-Zertifikat
<a name="how-iot-create-cert-keys"></a>

Die Kommunikation zwischen einem Gerät (Ihrem Videostream) und AWS IoT wird durch die Verwendung von X.509-Zertifikaten geschützt. 

1. Erstellen Sie das Zertifikat, an das Sie die zuvor erstellte Richtlinie anhängen müssen. AWS IoT 

   ```
   aws --profile default iot create-keys-and-certificate --set-as-active --certificate-pem-outfile certificate.pem --public-key-outfile public.pem.key --private-key-outfile private.pem.key > certificate
   ```

1. Hängen Sie die Richtlinie für AWS IoT (zuvor `KvsCameraIoTPolicy` erstellt) an dieses Zertifikat an.

   ```
   aws --profile default iot attach-policy --policy-name KvsCameraIoTPolicy --target $(jq --raw-output '.certificateArn' certificate)
   ```

1. Hängen Sie Ihr AWS IoT Ding (`kvs_example_camera_stream`) an das Zertifikat an, das Sie gerade erstellt haben: 

   ```
   aws --profile default iot attach-thing-principal --thing-name kvs_example_camera_stream --principal $(jq --raw-output '.certificateArn' certificate)
   ```

1. Um Anfragen über den Anbieter für AWS IoT Anmeldeinformationen zu autorisieren, benötigen Sie den Endpunkt für AWS IoT Anmeldeinformationen, der für Ihre AWS-Konto ID eindeutig ist. Sie können den folgenden Befehl verwenden, um den Endpunkt der AWS IoT Anmeldeinformationen abzurufen.

   ```
   aws --profile default iot describe-endpoint --endpoint-type iot:CredentialProvider --output text > iot-credential-provider.txt
   ```

1. Zusätzlich zu dem zuvor erstellten X.509-Zertifikat benötigen Sie auch ein CA-Zertifikat, um über TLS eine Vertrauensstellung mit dem Back-End-Dienst aufzubauen. Sie können das CA-Zertifikat mit dem folgenden Befehl abrufen:

   ```
   curl --silent 'https://www.amazontrust.com/repository/SFSRootCAG2.pem' --output cacert.pem
   ```

### Schritt 4: Testen Sie die AWS IoT Anmeldeinformationen mit Ihrem Kinesis-Videostream
<a name="how-iot-test-it"></a>

Jetzt können Sie die AWS IoT Anmeldedaten testen, die Sie bisher eingerichtet haben. 

1. Erstellen Sie zunächst einen Kinesis-Videostream, mit dem Sie diese Konfiguration testen möchten.
**Wichtig**  
Erstellen Sie einen Videostream mit einem Namen, der mit dem Namen des AWS IoT Dings identisch ist, den Sie im vorherigen Schritt erstellt haben (`kvs_example_camera_stream`).

   ```
   aws kinesisvideo create-stream --data-retention-in-hours 24 --stream-name kvs_example_camera_stream
   ```

1. Rufen Sie als Nächstes den Anbieter AWS IoT für Anmeldeinformationen an, um die temporären Anmeldeinformationen abzurufen:

   ```
   curl --silent -H "x-amzn-iot-thingname:kvs_example_camera_stream" --cert certificate.pem --key private.pem.key https://IOT_GET_CREDENTIAL_ENDPOINT/role-aliases/KvsCameraIoTRoleAlias/credentials --cacert ./cacert.pem > token.json
   ```
**Anmerkung**  
Sie können den folgenden Befehl verwenden, um Folgendes abzurufen`IOT_GET_CREDENTIAL_ENDPOINT`:  

   ```
   IOT_GET_CREDENTIAL_ENDPOINT=`cat iot-credential-provider.txt`
   ```

   Die Ausgabe-JSON enthält die `accessKey``secretKey`, und die`sessionToken`,, mit denen Sie auf die Kinesis Video Streams zugreifen können.

1. Für Ihren Test können Sie diese Anmeldeinformationen verwenden, um die Kinesis Video Streams `DescribeStream` Streams-API für den `kvs_example_camera_stream` Beispielvideostream aufzurufen.

   ```
   AWS_ACCESS_KEY_ID=$(jq --raw-output '.credentials.accessKeyId' token.json) AWS_SECRET_ACCESS_KEY=$(jq --raw-output '.credentials.secretAccessKey' token.json) AWS_SESSION_TOKEN=$(jq --raw-output '.credentials.sessionToken' token.json) aws kinesisvideo describe-stream --stream-name kvs_example_camera_stream
   ```

### Schritt 5: Bereitstellen von AWS IoT Zertifikaten und Anmeldeinformationen im Dateisystem Ihrer Kamera und Streamen von Daten in Ihren Videostream
<a name="how-iot-deploy"></a>

**Anmerkung**  
Die Schritte in diesem Abschnitt beschreiben das Senden von Medien an einen Kinesis-Videostream von einer Kamera, die den [Verwenden Sie die C\$1\$1-Producer-Bibliothek](producer-sdk-cpp.md) verwendet.

1. Kopieren Sie das X.509-Zertifikat, den privaten Schlüssel und das CA-Zertifikat, das in den vorherigen Schritten generiert wurde, in das Dateisystem Ihrer Kamera. Geben Sie die Pfade an, in denen diese Dateien gespeichert werden, den Rollenaliasnamen und den Endpunkt der AWS IoT Anmeldeinformationen für die Ausführung des `gst-launch-1.0` Befehls oder Ihrer Beispielanwendung. 

1. Der folgende Beispielbefehl verwendet die AWS IoT Zertifikatsautorisierung, um Video an Kinesis Video Streams zu senden: 

   ```
   gst-launch-1.0 rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ! rtph264depay ! video/x-h264,format=avc,alignment=au ! h264parse ! kvssink stream-name="kvs_example_camera_stream" aws-region="YourAWSRegion" iot-certificate="iot-certificate,endpoint=credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com,cert-path=/path/to/certificate.pem,key-path=/path/to/private.pem.key,ca-path=/path/to/cacert.pem,role-aliases=KvsCameraIoTRoleAlias"
   ```

## AWS IoT CertificateId als Streamname
<a name="how-iot-iotcertstreamname"></a>

Um Ihr Gerät (z. B. Ihre Kamera) durch ein AWS IoT Ding darzustellen, aber einen anderen Streamnamen zu autorisieren, können Sie das AWS IoT `certificateId` Attribut als Ihren Streamnamen verwenden und Kinesis Video Streams Streams-Berechtigungen für den Stream mit erteilen. AWS IoT Die Schritte, um dies zu erreichen, ähneln den zuvor beschriebenen, mit einigen Änderungen.
+ Ändern Sie die Berechtigungsrichtlinie wie folgt auf Ihre IAM-Rolle (`iam-permission-document.json`):

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kinesisvideo:DescribeStream",
                  "kinesisvideo:PutMedia",
                  "kinesisvideo:TagStream",
                  "kinesisvideo:GetDataEndpoint"
              ],
              "Resource": "arn:aws:kinesisvideo:*:*:stream/${credentials-iot:AwsCertificateId}/*" 
          }
      ]
  }
  ```

------
**Anmerkung**  
Der Ressourcen-ARN verwendet die Zertifikat-ID als Platzhalter für den Streamnamen. Die IAM-Berechtigung funktioniert, wenn Sie die Zertifikat-ID als Streamnamen verwenden. Rufen Sie die Zertifikat-ID aus dem Zertifikat ab, sodass Sie diese als Streamnamen im folgenden beschreibenden Stream-API-Aufruf verwenden können.  

  ```
  export CERTIFICATE_ID=`cat certificate | jq --raw-output '.certificateId'`
  ```
+ Überprüfen Sie diese Änderung mit dem describe-stream-CLI-Befehl für Kinesis Video Streams:

  ```
  AWS_ACCESS_KEY_ID=$(jq --raw-output '.credentials.accessKeyId' token.json) AWS_SECRET_ACCESS_KEY=$(jq --raw-output '.credentials.secretAccessKey' token.json) AWS_SESSION_TOKEN=$(jq --raw-output '.credentials.sessionToken' token.json) aws kinesisvideo describe-stream --stream-name ${CERTIFICATE_ID}
  ```
+ Übergeben Sie die certificateId an den Anbieter für AWS IoT Anmeldeinformationen in der [Beispielanwendung](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/samples/kvs_gstreamer_sample.cpp) im Kinesis Video Streams C\$1\$1 SDK: 

  ```
  credential_provider = make_unique<IotCertCredentialProvider>(iot_get_credential_endpoint,
          cert_path,
          private_key_path,
          role_alias,
          ca_cert_path,
          certificateId);
  ```
**Anmerkung**  
Beachten Sie, dass Sie das an den Anbieter `thingname` für Anmeldeinformationen weitergeben. AWS IoT Sie können `getenv` es verwenden, um den Dingnamen an die Demo-Anwendung zu übergeben, ähnlich wie bei der Übergabe der anderen AWS IoT Attribute. Verwenden Sie die Zertifikat-ID als Streamnamen in den Befehlszeilenparametern, wenn Sie die Beispielanwendung ausführen.

## Verwenden Sie AWS IoT Anmeldeinformationen, um zu einem fest codierten Stream-Namen zu streamen
<a name="how-iot-hard-coded-stream"></a>

Um Ihr Gerät (z. B. Ihre Kamera) durch ein AWS IoT Ding darzustellen, aber das Streaming zu einem bestimmten Amazon Kinesis-Videostream zu autorisieren, geben Sie Amazon Kinesis Video Streams-Berechtigungen für den Stream, der verwendet. AWS IoT Der Vorgang ähnelt den vorherigen Abschnitten, mit einigen Änderungen.

Ändern Sie die Berechtigungsrichtlinie wie folgt auf Ihre IAM-Rolle (`iam-permission-document.json`):

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:DescribeStream",
                "kinesisvideo:PutMedia",
                "kinesisvideo:TagStream",
                "kinesisvideo:GetDataEndpoint"
            ],
            "Resource": "arn:aws:kinesisvideo:*:*:stream/YourStreamName/*" 
        }
    ]
}
```

------

Kopieren Sie das X.509-Zertifikat, den privaten Schlüssel und das CA-Zertifikat, die in den vorherigen Schritten generiert wurden, in das Dateisystem Ihrer Kamera. 

Geben Sie die Pfade an, in denen diese Dateien gespeichert werden, den Rollenaliasnamen, den AWS IoT Namen des Dings und den Endpunkt der AWS IoT Anmeldeinformationen für die Ausführung des `gst-launch-1.0` Befehls oder Ihrer Beispielanwendung.

Der folgende Beispielbefehl verwendet die AWS IoT Zertifikatsautorisierung, um Videos an Amazon Kinesis Video Streams zu senden:

```
gst-launch-1.0 rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ! rtph264depay ! video/x-h264,format=avc,alignment=au ! h264parse ! kvssink stream-name="YourStreamName" aws-region="YourAWSRegion" iot-certificate="iot-certificate,endpoint=credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com,cert-path=/path/to/certificate.pem,key-path=/path/to/private.pem.key,ca-path=/path/to/cacert.pem,role-aliases=KvsCameraIoTRoleAlias,iot-thing-name=YourThingName"
```

# Konformitätsprüfung für Amazon Kinesis Video Streams
<a name="akda-java-compliance"></a>

Informationen darüber, ob AWS-Service ein in den Geltungsbereich bestimmter Compliance-Programme fällt, finden Sie unter [AWS-Services Umfang nach Compliance-Programm AWS-Services unter](https://aws.amazon.com/compliance/services-in-scope/) . Wählen Sie dort das Compliance-Programm aus, an dem Sie interessiert sind. Allgemeine Informationen finden Sie unter [AWS Compliance-Programme AWS](https://aws.amazon.com/compliance/programs/) .

Sie können Prüfberichte von Drittanbietern unter herunterladen AWS Artifact. Weitere Informationen finden Sie unter [Berichte herunterladen unter ](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Ihre Verantwortung für die Einhaltung der Vorschriften bei der Nutzung AWS-Services hängt von der Vertraulichkeit Ihrer Daten, den Compliance-Zielen Ihres Unternehmens und den geltenden Gesetzen und Vorschriften ab. Weitere Informationen zu Ihrer Verantwortung für die Einhaltung der Vorschriften bei der Nutzung AWS-Services finden Sie in der [AWS Sicherheitsdokumentation](https://docs.aws.amazon.com/security/).

# Resilienz in Amazon Kinesis Video Streams
<a name="disaster-recovery-resiliency"></a>

Die AWS globale Infrastruktur basiert auf AWS Regionen und Availability Zones. AWS Regionen bieten mehrere physisch getrennte und isolierte Availability Zones, die über Netzwerke mit niedriger Latenz, hohem Durchsatz und hoher Redundanz miteinander verbunden sind. Mithilfe von Availability Zones können Sie Anwendungen und Datenbanken erstellen und ausführen, die automatisch Failover zwischen Availability Zones ausführen, ohne dass es zu Unterbrechungen kommt. Availability Zones sind besser hoch verfügbar, fehlertoleranter und skalierbarer als herkömmliche Infrastrukturen mit einem oder mehreren Rechenzentren. 

Weitere Informationen zu AWS Regionen und Availability Zones finden Sie unter [AWS Globale](https://aws.amazon.com/about-aws/global-infrastructure/) Infrastruktur.

# Infrastruktursicherheit in Kinesis Video Streams
<a name="infrastructure-security"></a>

Als verwalteter Service ist Amazon Kinesis Video Streams durch die AWS globalen Netzwerksicherheitsverfahren geschützt, die im Whitepaper [Amazon Web Services: Sicherheitsprozesse im Überblick](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf) beschrieben werden.

Sie verwenden AWS veröffentlichte API-Aufrufe, um über das Netzwerk auf Kinesis Video Streams zuzugreifen. Clients müssen Transport Layer Security (TLS) 1.2 oder höher unterstützen. Clients müssen außerdem Cipher-Suites mit Perfect Forward Secrecy (PFS) wie Ephemeral Diffie-Hellman (DHE) oder Elliptic Curve Ephemeral Diffie-Hellman (ECDHE) unterstützen. Die meisten modernen Systeme, z. B. Java 7 und höher, unterstützen diese Modi. 

Darüber hinaus müssen Anfragen mit einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel signiert werden, der einem IAM-Prinzipal zugeordnet ist. Alternativ können Sie mit [AWS -Security-Token-Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) temporäre Sicherheitsanmeldeinformationen erstellen, um die Anforderungen zu signieren.

# Bewährte Sicherheitsmethoden für Kinesis Video Streams
<a name="security-best-practices"></a>

Amazon Kinesis Video Streams bietet eine Reihe von Sicherheitsfunktionen, die Sie bei der Entwicklung und Implementierung Ihrer eigenen Sicherheitsrichtlinien berücksichtigen sollten. Die folgenden bewährten Methoden sind allgemeine Richtlinien und keine vollständige Sicherheitslösung. Da diese bewährten Methoden für Ihre Umgebung möglicherweise nicht angemessen oder ausreichend sind, sollten Sie sie als hilfreiche Überlegungen und nicht als bindend ansehen. 

Bewährte Sicherheits-Methoden für Ihre Remote-Geräte finden Sie unter [Bewährte Sicherheitsmethoden für Geräteagenten](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-DetectMetricsMessagesBestPract.html).

## Implementieren des Zugriffs mit geringsten Berechtigungen
<a name="security-best-practices-privileges"></a>

Bei der Erteilung von Berechtigungen entscheiden Sie, wer welche Berechtigungen für welche Kinesis Video Streams Streams-Ressourcen erhält. Sie aktivieren die spezifischen Aktionen, die daraufhin für die betreffenden Ressourcen erlaubt sein sollen. Aus diesem Grund sollten Sie nur Berechtigungen gewähren, die zum Ausführen einer Aufgabe erforderlich sind. Die Implementierung der geringstmöglichen Zugriffsrechte ist eine grundlegende Voraussetzung zum Reduzieren des Sicherheitsrisikos und der Auswirkungen, die aufgrund von Fehlern oder böswilligen Absichten entstehen könnten. 

Ein Producer, der Daten an Kinesis Video Streams sendet, benötigt beispielsweise nur `PutMedia``GetStreamingEndpoint`, und`DescribeStream`. Vergeben Sie keine Berechtigungen für Producer-Anwendungen für alle Aktionen (`*`) oder für andere Aktionen, wie z. B. `GetMedia`.

Weitere Informationen finden Sie unter [Was bedeutet das Konzept der geringsten Rechte und warum ist es erforderlich?](https://www.beyondtrust.com/blog/entry/what-is-least-privilege)

## Verwenden von IAM-Rollen
<a name="security-best-practices-roles"></a>

Produzenten- und Client-Anwendungen müssen über gültige Anmeldeinformationen verfügen, um auf Kinesis Video Streams zugreifen zu können. AWS -Anmeldeinformationen sollten Sie nicht direkt in einer Client-Anwendung oder in einem Amazon-S3-Bucket speichern. Dabei handelt es sich um langfristige Zugangsdaten, die nicht automatisch ausgetauscht werden und erhebliche Auswirkungen auf das Geschäft haben könnten, wenn sie kompromittiert werden. 

Stattdessen sollten Sie eine IAM-Rolle verwenden, um temporäre Anmeldeinformationen für Ihre Produzenten- und Client-Anwendungen für den Zugriff auf Kinesis Video Streams zu verwalten. Wenn Sie eine Rolle verwenden, müssen Sie keine langfristigen Anmeldeinformationen (wie einen Benutzernamen und ein Passwort oder Zugriffsschlüssel) verwenden, um auf andere Ressourcen zuzugreifen.

Weitere Informationen finden Sie unter folgenden Themen im *IAM-Benutzerhandbuch*:
+ [IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
+ [Gängige Szenarien für Rollen: Benutzer, Anwendungen und Services](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios.html)

## Wird CloudTrail zur Überwachung von API-Aufrufen verwendet
<a name="security-best-practices-cloudtrail"></a>

Kinesis Video Streams arbeitet mit AWS CloudTrail, einem Dienst, der eine Aufzeichnung der Aktionen bereitstellt, die von einem Benutzer, einer Rolle oder einem AWS-Service in Kinesis Video Streams ausgeführt wurden.

Sie können die von gesammelten Informationen verwenden, CloudTrail um die Anfrage an Kinesis Video Streams, die IP-Adresse, von der aus die Anfrage gestellt wurde, wer die Anfrage gestellt hat, wann sie gestellt wurde, und weitere Details zu ermitteln.

Weitere Informationen finden Sie unter [API-Aufrufe von Amazon Kinesis Video Streams protokollieren mit AWS CloudTrail](monitoring-cloudtrail.md).