

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 WebRTC 资源控制对亚马逊 Kinesis Video Streams 的访问权限 AWS Identity and Access Management
<a name="kvswebrtc-how-iam"></a>

通过将 AWS Identity and Access Management (IAM) 与 Amazon Kinesis Video Streams 与 WebRTC 配合使用，您可以控制组织中的用户是否可以使用具有 WebRTC API 操作的特定 Kinesis Video Streams 执行任务，以及他们是否可以使用特定资源。 AWS 

有关 IAM 的更多信息，请参阅以下文档：
+ [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/)
+ [IAM 入门](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)
+ [IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/)

**Topics**
+ [策略语法](#policy-syntax)
+ [API 操作](#kinesis-using-iam-actions)
+ [亚马逊资源名称 (ARNs)](#kinesis-using-iam-arn-format)
+ [向其他 IAM 账户授予访问 Kinesis 视频流的权限](#how-iam-crossaccount)
+ [策略示例](#how-iam-policies)

## 策略语法
<a name="policy-syntax"></a>

IAM 策略是包含一个或多个语句的 JSON 文档。每个语句的结构如下：

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

组成语句的各个元素如下：
+ **Effect：**此 *effect* 可以是 `Allow` 或 `Deny`。在默认情况下，IAM 用户没有使用资源和 API 操作的许可，因此，所有请求均会被拒绝。显式允许将覆盖默认规则。显式拒绝将覆盖任何允许。
+ **Action**：*action* 是对其授予或拒绝权限的特定 API 操作。
+ **Resource**：受操作影响的资源。要在语句中指定资源，您需要使用其 Amazon 资源名称（ARN）。
+ **条件**：条件是可选的。它们可以用于控制策略生效的时间。

在创建和管理 IAM policy 时，您可能希望使用 [IAM Policy 生成器](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-generator)和 [IAM Policy Simulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html)。

## API 操作
<a name="kinesis-using-iam-actions"></a>

在 IAM 策略语句中，您可以从支持 IAM 的任何服务中指定任何 API 操作。对于 Kinesis Video Streams with WebRTC，使用以下前缀为 API 操作命名：`kinesisvideo:`。例如：`kinesisvideo:CreateSignalingChannel`、`kinesisvideo:ListSignalingChannels` 和 `kinesisvideo:DescribeSignalingChannel`。

要在单个语句中指定多项操作，请使用逗号将它们隔开，如下所示：

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

您也可以使用通配符指定多项操作。例如，您可以指定名称以单词“Get”开头的所有操作，如下所示：

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

要指定所有 Kinesis Video Streams 操作，请按如下方式使用星号 (\$1) 通配符：

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

有关 Kinesis Video Streams API 操作的完整列表，请参阅 [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html)。

## 亚马逊资源名称 (ARNs)
<a name="kinesis-using-iam-arn-format"></a>

每个 IAM 政策声明都适用于您使用其指定的资源 ARNs。

请对 Kinesis Video Streams 使用以下 ARN 资源格式：

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

例如：

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

您可以使用获取频道的 ARN。[DescribeSignalingChannel](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html)

## 向其他 IAM 账户授予访问 Kinesis 视频流的权限
<a name="how-iam-crossaccount"></a>

您可能需要向其他 IAM 账户授予对 Kinesis Video Streams with WebRTC 信令通道执行操作的权限。服务角色是由一项服务担任、代表您执行操作的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建向 AWS 服务委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

## 策略示例
<a name="how-iam-policies"></a>

以下策略示例演示如何控制用户对 Kinesis Video Streams with WebRTC 通道的访问。

**Example 1：允许用户从任何信令通道获取数据**  
此策略允许用户或组对任何 `DescribeSignalingChannel` 信令通道执行 `GetSignalingChannelEndpoint`、`ListSignalingChannels` 和 `ListTagsForResource` 操作。    
****  

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

**Example 2：允许用户创建信令通道**  
此策略允许用户或组执行 `CreateSignalingChannel` 操作。  

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

**Example 3：允许用户访问所有 Kinesis Video Streams 和 Kinesis Video Streams with WebRTC 的资源**  
此策略允许用户或组对任何资源执行任何 Kinesis Video Streams 操作。此策略适用于管理员。    
****  

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

**Example 4：允许用户从特定信令通道获取数据**  
此策略允许用户或组从特定信令通道获取数据。    
****  

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