を使用した Kinesis Video Streams リソースへのアクセスの制御 IAM - Amazon Kinesis Video Streams

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用した Kinesis Video Streams リソースへのアクセスの制御 IAM

Amazon Kinesis Video Streams で AWS Identity and Access Management (IAM) を使用すると、組織内のユーザーが特定の Kinesis Video Streams APIオペレーションを使用してタスクを実行できるかどうか、および特定の AWS リソースを使用できるかどうかを制御できます。 Amazon Kinesis Video Streams

の詳細についてはIAM、以下を参照してください。

ポリシー構文

IAM ポリシーは、1 つ以上のステートメントで構成されるJSONドキュメントです。各ステートメントは次のように構成されます。

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

ステートメントはさまざまなエレメントで構成されています。

  • 効果効果Allowまたは ですDeny。デフォルトでは、ユーザーにはリソースとAPIアクションを使用するアクセス許可がないため、すべてのリクエストが拒否されます。明示的な許可はデフォルトに上書きされます。明示的な拒否はすべての許可に上書きされます。

  • アクションアクションは、アクセス許可を付与または拒否する特定のAPIアクションです。

  • リソース – アクションの影響を受けるリソース。ステートメントでリソースを指定するには、その Amazon リソースネーム () を使用する必要がありますARN。

  • 条件 – 条件はオプションです。ポリシーの発効条件を指定するために使用します。

IAM ポリシーを作成および管理する際は、IAMポリシージェネレーター とIAMポリシーシミュレーター を使用することをお勧めします。

Kinesis Video Streams のアクション

IAM ポリシーステートメントでは、 をサポートする任意のサービスから任意のAPIアクションを指定できますIAM。Kinesis Video Streams では、APIアクションの名前に次のプレフィックスを使用します。 kinesisvideo:例えば、kinesisvideo:CreateStreamkinesisvideo:ListStreams、および kinesisvideo:DescribeStream のようになります。

単一のステートメントで複数のアクションを指定するには、次のようにカンマで区切ります。

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

ワイルドカードを使用して複数のアクションを指定することもできます。たとえば、Getという単語で始まる名前のすべてのアクションは、以下のように指定できます。

"Action": "kinesisvideo:Get*"

すべての Kinesis Video Streams の操作を指定するには、次のようにアスタリスク (*) ワイルドカードを使用します。

"Action": "kinesisvideo:*"

Kinesis Video Streams APIアクションの完全なリストについては、Kinesis Video Streams APIリファレンス を参照してください。

Kinesis Video Streams の Amazon リソースネーム (ARNs)

各IAMポリシーステートメントは、 を使用して指定したリソースに適用されますARNs。

Kinesis Video Streams では、次のARNリソース形式を使用します。

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

例:

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

を使用してストリームARNの を取得できますDescribeStream

Kinesis ビデオストリームへのアクセスを他のIAMアカウントに許可する

Kinesis Video Streams のストリームでオペレーションを実行するには、他の IAMアカウントに許可を付与する必要がある場合があります。次の概要では、アカウント間でビデオストリームへのアクセス許可を付与するための一般的なステップを説明します。

  1. アカウントで作成されたストリームリソースに対してオペレーションを実行するアクセス許可を付与するアカウントの 12 桁のアカウント ID を取得します。

    例: 次のステップでは、アクセス許可を付与するアカウントのアカウント ID として 111111111111、Kinesis Video Streams の ID として 999999999999 を使用します。

  2. 付与するアクセスレベルを許可する ストリーム (999999999999) を所有する アカウントに IAM マネージドポリシーを作成します。

    サンプルポリシー:

    { "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" } ] }

    Kinesis Video Streams リソースの他のポリシーの例については、次のセクションポリシーの例の「」を参照してください。

  3. ストリーム (999999999999) を所有する アカウントにロールを作成し、(111111111111) のアクセス許可を付与する アカウントを指定します。これにより、信頼されたエンティティがロールに追加されます。

    信頼されたポリシーの例:

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

    前のステップで作成したポリシーをこのロールにアタッチします。

    これで、アカウント 999999999999 でロールが作成されました。このロールにはDescribeStream、 、GetDataEndpoint、 などのオペレーションに対するアクセス許可が マネージドポリシーARNのストリームリソースPutMediaに付与されています。この新しいロールは、他のアカウントである 111111111111 も信頼してこのロールを引き受けます。

    重要

    ロール をメモARNしておきます。次のステップでそれが必要になります。

  4. 前のステップでアカウント 111111111111 で作成したロールに対するAssumeRoleアクションを許可するマネージドポリシーを他のアカウント 999999999999 に作成します。前のステップARNのロールについて言及する必要があります。

    サンプルポリシー:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::999999999999:role/CustomRoleName" } }
  5. 前のステップで作成したポリシーを、アカウント 111111111111 のロールやユーザーなどのIAMエンティティにアタッチします。このユーザーは、アカウント 999999999999 CustomRoleNameでロールを引き受けるアクセス許可を持つようになりました。

    このユーザーの認証情報は を呼び出し AWS STS AssumeRoleAPIてセッション認証情報を取得し、その後、アカウント 999999999999 で作成されたストリームAPIsで Kinesis Video Streams を呼び出すために使用されます。

    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. 環境内の前のセットに基づいて、アクセスキー、シークレットキー、およびセッション認証情報を設定します。

    set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
  7. Kinesis Video Streams を実行してAPIs、アカウント 999999999999 のストリームのデータエンドポイントを記述して取得します。

    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" }

クロスアカウントアクセスの付与に関する一般的な step-by-step手順については、IAM「ロール AWS アカウント を使用してアクセスを委任する」を参照してください。

Kinesis Video Streams のポリシーの例

次のポリシー例は、Kinesis Video Streams へのユーザーアクセスを制御する方法を示しています。

例 1: ユーザーに Kinesis ビデオストリームからのデータの取得を許可する

このポリシーにより、ユーザーまたはグループが任意の Kinesis ビデオストリームに対して DescribeStreamGetDataEndpointGetMediaListStreams、および ListTagsForStream の操作を実行できます。このポリシーは、任意のビデオストリームからデータを取得できるユーザーに適しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:Describe*", "kinesisvideo:Get*", "kinesisvideo:List*" ], "Resource": "*" } ] }
例 2: ユーザーに Kinesis ビデオストリームの作成とビデオストリームへのデータの書き込みを許可する

このポリシーにより、ユーザーまたはグループは CreateStream および PutMedia の操作を実行できます。このポリシーは、ビデオストリームを作成し、それにデータを送信できる監視カメラに適しています。

{ "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:CreateStream", "kinesisvideo:PutMedia" ], "Resource": "*" } ] }
例 3: すべての Kinesis Video Streams リソースへのフルアクセスをユーザーに許可する

このポリシーにより、ユーザーまたはグループが任意のリソースに対して任意の Kinesis Video Streams オペレーションを実行できます。このポリシーは、管理者に適しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesisvideo:*", "Resource": "*" } ] }
例 4: ユーザーに特定の Kinesis ビデオストリームへのデータの書き込みを許可する

このポリシーにより、ユーザーまたはグループは特定のビデオストリームにデータを書き込むことができます。このポリシーは、1 つのストリームにデータを送信できるデバイスに適してします。

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