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 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 API Streams-Operationen ausführen können und ob sie bestimmte AWS Ressourcen verwenden können.
Weitere Informationen zu IAM finden Sie unter:
Inhalt
Richtliniensyntax
Eine IAM Richtlinie ist ein JSON Dokument, das aus einer oder mehreren Aussagen besteht. 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 seinDeny
. Standardmäßig sind Benutzer nicht berechtigt, Ressourcen und API Aktionen zu verwenden, sodass alle Anfragen abgelehnt werden. 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 ihren 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 IAMPolicy Generator und den IAMPolicy Simulator zu verwenden.
Aktionen für Kinesis Video Streams
In einer IAM Richtlinienerklärung können Sie jede API Aktion aus jedem Dienst angeben, der dies unterstütztIAM. 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 API Streams-Aktionen finden Sie in der Kinesis Video Streams API Streams-Referenz.
Amazon-Ressourcennamen (ARNs) für Kinesis Video Streams
Jede IAM Richtlinienerklärung gilt für die Ressourcen, die Sie mithilfe ihrer ARNs angeben.
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 Wert ARN eines Streams abrufen mit 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:
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 erteilen 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.
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.
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 in der verwalteten Richtlinie über die Berechtigung für Operationen wie
DescribeStream
GetDataEndpoint
, undPutMedia
für eine Stream-Ressource ARN verfügt. Diese neue Rolle vertraut auch darauf, dass das andere Konto, 111111111111, diese Rolle übernimmt.Wichtig
Notieren Sie sich die RolleARN. Sie benötigen sie im nächsten Schritt.
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 aus dem vorherigen Schritt erwähnen. ARNBeispiel für eine Richtlinie:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
999999999999
:role/CustomRoleName" } }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 auf, AWS STS
AssumeRole
API um die Sitzungsinformationen abzurufen, die anschließend verwendet werden, um Kinesis Video Streams in dem Stream aufzurufen, der im Konto APIs 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": "" } }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=
Führen Sie Kinesis Video Streams ausAPIs, 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" }
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
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": "*" } ] }
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" } ] }