

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 控制對 Amazon Kinesis Video Streams with WebRTC 資源的存取 AWS Identity and Access Management
<a name="kvswebrtc-how-iam"></a>

透過搭配 Amazon Kinesis Video Streams with WebRTC 使用 AWS Identity and Access Management (IAM)，您可以控制組織中的使用者是否可以搭配 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)
+ [Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)](#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** (效果)：*效果* 可以是 `Allow` 或 `Deny`。根據預設，IAM 使用者沒有使用資源和 API 動作的許可，因此所有請求均會遭到拒絕。明確允許覆寫預設值。明確拒絕覆寫任何允許。
+ **Action** (動作)：*動作* 是您授予或拒絕許可的特定 API 動作。
+ **Resource** (資源)：受動作影響的資源。若要在陳述式中指定資源，您必須使用其 Amazon Resource Name (ARN)。
+ **Condition** (條件)：條件為選擇性。您可以使用它們來控制何時政策開始生效。

當您建立和管理 IAM 政策時，可能想要使用 [IAM 政策產生器](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-generator)和 [IAM 政策模擬器](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)。

## Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)Amazon Resource Name (ARN)
<a name="kinesis-using-iam-arn-format"></a>

每個 IAM 政策陳述式都會套用到您使用其 ARN 指定的資源。

針對 Kinesis Video Streams 使用以下 ARN 資源格式：

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

例如：

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

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

## 授予其他 IAM 帳戶對 Kinesis 影片串流的存取權
<a name="how-iam-crossaccount"></a>

您可能需要將許可授予其他 IAM 帳戶，才能對具有 WebRTC 訊號頻道的 Kinesis Video Streams 執行操作。服務角色是服務擔任的 [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>

下列範例政策示範如何使用 WebRTC 頻道控制使用者對 Kinesis Video Streams 的存取。

**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"
        }
    ]
}
```