

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

# 安全
<a name="kvswebrtc-security"></a>

的雲端安全性 AWS 是最高優先順序。身為 AWS 客戶，您將受益於資料中心和網路架構，該架構旨在滿足最安全敏感組織的需求。

安全性是 AWS 與您之間的共同責任。[‬共同責任模型‭](https://aws.amazon.com/compliance/shared-responsibility-model/)‬ 將此描述為雲端*‬的‭*‬安全和雲端*‬內*‬的安全：
+ **雲端的安全性** – AWS 負責保護在 AWS Cloud 中執行 AWS 服務的基礎設施。 AWS 也為您提供可安全使用的服務。第三方稽核人員定期檢測及驗證安全的效率也是我們 [AWS 合規計劃](https://aws.amazon.com/compliance/programs/)的一部分。如要了解適用於 Kinesis Video Streams 的合規計劃，請參閱 [合規計劃的AWS 服務範圍](https://aws.amazon.com/compliance/services-in-scope/)。
+ **雲端的安全性** – 您的責任取決於您使用 AWS 的服務。您也必須對資料敏感度、組織要求，以及適用法律和法規等其他因素負責。

本文件可協助您了解如何在搭配 WebRTC 使用 Amazon Kinesis Video Streams 時套用共同責任模型。下列主題說明如何使用 WebRTC 設定 Amazon Kinesis Video Streams，以符合您的安全與合規目標。您也將了解如何使用其他 AWS 服務，協助您透過 WebRTC 資源監控和保護 Amazon Kinesis Video Streams。

**Topics**
+ [使用 控制對 Amazon Kinesis Video Streams with WebRTC 資源的存取 AWS Identity and Access Management](kvswebrtc-how-iam.md)
+ [Amazon Kinesis Video Streams with WebRTC 的合規驗證](SERVICE-compliance.md)
+ [Amazon Kinesis Video Streams with WebRTC 中的彈性](kvswebrtc-disaster-recovery-resiliency.md)
+ [Kinesis Video Streams with WebRTC 中的基礎設施安全性](kvswebrtc-infrastructure-security.md)
+ [Amazon Kinesis Video Streams with WebRTC 的安全最佳實務](kvswebrtc-security-best-practices.md)
+ [WebRTC 加密](kvswebrtc-encryption.md)

# 使用 控制對 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"
        }
    ]
}
```

# Amazon Kinesis Video Streams with WebRTC 的合規驗證
<a name="SERVICE-compliance"></a>

若要了解 AWS 服務 是否在特定合規計劃範圍內，請參閱[AWS 服務 合規計劃範圍內](https://aws.amazon.com/compliance/services-in-scope/)然後選擇您感興趣的合規計劃。如需一般資訊，請參閱[AWS 合規計劃](https://aws.amazon.com/compliance/programs/)。

您可以使用 下載第三方稽核報告 AWS Artifact。如需詳細資訊，請參閱[下載報告 in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)

您使用 時的合規責任 AWS 服務 取決於資料的機密性、您公司的合規目標，以及適用的法律和法規。如需使用 時合規責任的詳細資訊 AWS 服務，請參閱 [AWS 安全文件](https://docs.aws.amazon.com/security/)。

# Amazon Kinesis Video Streams with WebRTC 中的彈性
<a name="kvswebrtc-disaster-recovery-resiliency"></a>

 AWS 全球基礎設施是以 AWS 區域 和 可用區域為基礎建置。 AWS 區域 提供多個實體分隔和隔離的可用區域，這些可用區域與低延遲、高輸送量和高備援聯網連接。您可以使用可用區域來設計和操作應用程式和資料庫，這些應用程式和資料庫會在可用區域之間自動容錯移轉，而不會中斷。可用區域的可用性、容錯能力和擴展能力，均較單一或多個資料中心的傳統基礎設施還高。

如需 AWS 區域 和可用區域的詳細資訊，請參閱 [AWS 全球基礎設施](https://aws.amazon.com/about-aws/global-infrastructure/)。

# Kinesis Video Streams with WebRTC 中的基礎設施安全性
<a name="kvswebrtc-infrastructure-security"></a>

作為受管服務，Kinesis Video Streams （包括其 WebRTC 功能） 受到 [Amazon Web Services：安全程序概觀](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf)白皮書中所述 AWS 的全球網路安全程序的保護。

您可以使用 AWS 發佈的 API 呼叫，透過網路存取 Kinesis Video Streams。用戶端必須支援 Transport Layer Security (TLS) 1.2 或更新版本。建議使用 TLS 1.3 或更新版本。用戶端也必須支援具備完美轉送私密 (PFS) 的密碼套件，例如臨時 Diffie-Hellman (DHE) 或橢圓曲線臨時 Diffie-Hellman (ECDHE)。現代系統 (如 Java 7 和更新版本) 大多會支援這些模式。

此外，請求必須使用存取金鑰 ID 和與 IAM 主體相關聯的私密存取金鑰來簽署。或者，您可以使用 [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) 以產生暫時安全憑證以簽署請求。

# Amazon Kinesis Video Streams with WebRTC 的安全最佳實務
<a name="kvswebrtc-security-best-practices"></a>

Amazon Kinesis Video Streams （包括其 WebRTC 功能） 提供許多安全功能，供您在開發和實作自己的安全政策時考慮。以下最佳實務為一般準則，並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求，因此請將其視為實用建議就好，而不要當作是指示。

如需您遠端裝置的安全最佳實務，請參閱[裝置代理程式的安全最佳實務](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-DetectMetricsMessagesBestPract.html)。

## 實作最低權限存取
<a name="security-best-practices-privileges"></a>

授予許可時，您可以決定誰要取得哪些 Kinesis Video Streams 資源的許可。您還需針對這些資源啟用允許執行的動作，因此，您只應授與執行任務所需的許可。對降低錯誤或惡意意圖所引起的安全風險和影響而言，實作最低權限存取是相當重要的一環。

例如，將資料傳送至 Kinesis Video Streams 的生產者只需要 `PutMedia`、 `GetStreamingEndpoint`和 `DescribeStream`。請勿授予生產者應用程式所有動作 (`*`) 或其他動作 (例如 `GetMedia`) 的許可。

如需詳細資訊，請參閱[套用最低權限許可](https://docs.aws.amazon.com//IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。

## 使用 IAM 角色
<a name="security-best-practices-roles"></a>

製作者和用戶端應用程式必須具有有效的登入資料，才能存取 Kinesis 影片串流。您不應將 AWS 登入資料直接存放在用戶端應用程式或 Amazon S3 儲存貯體中。這些是不會自動輪換的長期憑證，如果遭到盜用，可能會對業務造成嚴重的影響。

反之，您應該使用 IAM 角色來管理生產者和用戶端應用程式的臨時登入資料，以存取 Kinesis 影片串流。使用角色時，您不必使用長期憑證來存取其他資源。

如需詳細資訊，請參閱《*IAM 使用者指南*》中的下列主題：
+ [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
+ [角色的常見案例：使用者、應用程式和服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios.html)

## 使用 CloudTrail 監控 API 呼叫
<a name="security-best-practices-cloudtrail"></a>

Kinesis Video Streams with WebRTC 已與 整合 AWS CloudTrail，此服務可提供使用者、角色或 Kinesis Video Streams with WebRTC 中 AWS 服務所採取之動作的記錄。

您可以使用 CloudTrail 所收集的資訊，判斷使用 WebRTC 對 Kinesis Video Streams 提出的請求、提出請求的 IP 地址、提出請求的人員、提出請求的時間，以及其他詳細資訊。

如需詳細資訊，請參閱[使用 記錄 API 呼叫 AWS CloudTrail](kvswebrtc-monitoring-ct.md)。

# WebRTC 加密
<a name="kvswebrtc-encryption"></a>

端對端加密是 Amazon Kinesis Video Streams with WebRTC 的強制性功能，Kinesis Video Streams 會在所有元件上強制執行此功能，包括訊號和媒體或資料串流。無論通訊是peer-to-peer還是透過 Kinesis Video Streams TURN 端點轉送，所有 WebRTC 通訊都會透過標準化加密通訊協定安全地加密。

使用安全 Websocket (WSS) 交換訊號訊息、使用 Datagram Transport Layer Security (DTLS) 加密資料串流，以及使用安全即時傳輸通訊協定 (SRTP) 加密媒體串流。