View a markdown version of this page

Steuerung des Zugriffs auf Kinesis Video 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.

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

Sie können AWS Identity and Access Management (IAM) mit Amazon Kinesis Video Streams verwenden, um zu steuern, 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 Genehmigung 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, beim Erstellen und Verwalten von IAM-Richtlinien den IAM Policy Generator und den IAM Policy Simulator 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-Operationen anzugeben, verwenden Sie das Sternchen (*) als Platzhalter wie folgt:

"Action": "kinesisvideo:*"

Die vollständige Liste der Kinesis Video Streams-API-Aktionen finden Sie in der Kinesis Video 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

Beispiel:

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

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

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

Möglicherweise müssen Sie anderen IAM-Konten die Erlaubnis erteilen, Operationen an Streams in Kinesis Video Streams auszufü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 9999999999 als ID für Ihre Kinesis Video Streams

  2. Erstellen Sie eine IAM-verwaltete Richtlinie in dem Konto, dem der Stream gehört (999999999999), die die Zugriffsebene zulässt, die Sie gewähren möchten.

    Beispiel für eine Richtlinie:

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

    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, das ü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 ARN der Rolle. Sie benötigen ihn im nächsten Schritt.

  4. Erstellen Sie im anderen Konto, 111111111111, eine verwaltete Richtlinie, die die AssumeRole Aktion für die Rolle zulässt, die Sie im vorherigen Schritt im Konto 9999999999 erstellt haben. Sie müssen den Rollen-ARN aus dem vorherigen Schritt angeben.

    Beispiel für eine Richtlinie:

    JSON
    { "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::999999999999:role/CustomRoleName" } }
  5. Hängen Sie die im vorherigen Schritt erstellte Richtlinie an eine IAM-Entität an, z. B. eine Rolle oder einen Benutzer im Konto 111111111111. Dieser Benutzer hat jetzt die Berechtigung, die Rolle im Konto 999999999999 zu übernehmen. CustomRoleName

    Die Anmeldeinformationen dieses Benutzers rufen die AWS STS AssumeRole API auf, um die Anmeldeinformationen für die Sitzung abzurufen. Diese werden anschließend zum Aufrufen der Kinesis Video Streams-APIs für den Stream verwendet, der im Konto 9999999999 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 zuvor in der Umgebung festgelegten Daten fest.

    set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
  7. Führen Sie die Kinesis Video 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 schrittweise Anweisungen zum Gewähren von kontoübergreifendem Zugriff finden Sie unter Delegieren von Zugriffsrechten 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 steuern können

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

Diese Richtlinie ermöglicht es einem Benutzer oder einer GruppeDescribeStream, die ListTagsForStream Operationen, GetDataEndpoint GetMediaListStreams, und für jeden Kinesis-Videostream auszuführen. Diese Richtlinie ist für Benutzer geeignet, die Daten aus beliebigen Videostreams abrufen können.

JSON
{ "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-Ressourcen

Diese Richtlinie ermöglicht es einem Benutzer oder einer Gruppe, jeden Kinesis Video Streams-Vorgang auf einer beliebigen Ressource auszuführen. Diese Richtlinie ist für Administratoren geeignet.

JSON
{ "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.

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