Steuern des Zugriffs auf Kinesis Video Streams Streams-Ressourcen mithilfe von IAM - Amazon Kinesis Video Streams

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.

Steuern des Zugriffs auf Kinesis Video Streams Streams-Ressourcen mithilfe von IAM

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:

Richtliniensyntax

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 zu verwenden.

Aktionen für Kinesis Video Streams

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 (*) als Platzhalter wie folgt:

"Action": "kinesisvideo:*"

Eine vollständige Liste der Kinesis Video Streams Streams-API-Aktionen finden Sie in der Kinesis Video Streams Streams-API-Referenz.

Amazon-Ressourcennamen (ARNs) für Kinesis Video Streams

Jede IAM-Richtlinienanweisung gilt für die Ressourcen, die Sie mithilfe ihrer ARNs angegeben haben.

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

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

Beispielsweise:

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

Sie können den ARN eines Streams mit abrufen DescribeStream.

Anderen IAM-Konten Zugriff auf einen Kinesis-Videostream gewähren

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

  2. 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:

    { "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 im nächsten Abschnitt.

  3. 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:

    { "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 DescribeStreamGetDataEndpoint, 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.

  4. 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:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::999999999999:role/CustomRoleName" } }
  5. 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 Sitzungsanmeldedaten abzurufen, die anschließend verwendet werden, um Kinesis Video Streams Streams-APIs für den Stream aufzurufen, der 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": "" } }
  6. 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=
  7. Führen Sie Kinesis Video Streams Streams-APIs aus, 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

Beispielrichtlinien für Kinesis Video Streams

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

Beispiel 1: Erlauben Sie Benutzern, Daten aus jedem Kinesis-Videostream abzurufen

Diese Richtlinie ermöglicht es einem Benutzer oder einer Gruppe, dieDescribeStream,, GetDataEndpoint GetMediaListStreams, 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": "*" } ] }
Beispiel 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": "*" } ] }
Beispiel 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": "*" } ] }
Beispiel 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" } ] }