

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

# Kinesis Video Streams 中的資料保護
<a name="how-kms"></a>

您可以使用 AWS Key Management Service () 金鑰使用伺服器端加密 (SSE AWS KMS)，透過在 Amazon Kinesis Video Streams 中加密靜態資料來滿足嚴格的資料管理需求。

**Topics**
+ [什麼是 Kinesis Video Streams 的伺服器端加密？](#what-is-sse-akvs)
+ [成本、區域和效能考量事項](#costs-performance-akvs)
+ [如何開始使用伺服器端加密？](#getting-started-with-sse-akvs)
+ [建立和使用客戶受管金鑰](#creating-using-sse-master-keys-akvs)
+ [使用客戶受管金鑰的許可](#permissions-user-key-KMS-akvs)

## 什麼是 Kinesis Video Streams 的伺服器端加密？
<a name="what-is-sse-akvs"></a>

伺服器端加密是 Kinesis Video Streams 的一項功能，會在使用 AWS KMS 您指定的金鑰存放靜態資料之前自動加密資料。資料會在寫入 Kinesis Video Streams 串流儲存層之前加密，並在從儲存體擷取資料後解密。因此，您的資料一律於 Kinesis Video Streams 服務中靜態加密。

透過伺服器端加密，您的 Kinesis 影片串流生產者和消費者不需要管理 KMS 金鑰或密碼編譯操作。如果啟用資料保留，您的資料會在進入和離開 Kinesis Video Streams 時自動加密，因此靜態資料會加密。 AWS KMS 提供伺服器端加密功能所使用的所有金鑰。 會 AWS KMS 簡化 KMS 金鑰的使用，用於由 管理的 Kinesis Video Streams AWS，這是匯入 AWS KMS 服務的使用者指定 AWS KMS 金鑰。

## 成本、區域和效能考量事項
<a name="costs-performance-akvs"></a>

當您套用伺服器端加密時，需支付 AWS KMS API 用量和金鑰成本。與自訂 AWS KMS 金鑰不同，預設 `aws/kinesisvideo` KMS 金鑰是免費提供。不過，您仍必須支付 Kinesis Video Streams 代表您產生的 API 使用成本。

API 使用成本適用於每個 KMS 金鑰，包括自訂金鑰。 AWS KMS 成本會隨著您在資料生產者和消費者上使用的使用者登入資料數量而擴展，因為每個使用者登入資料都需要唯一的 API 呼叫 AWS KMS。

以下依據資源說明各項成本：

**金鑰**
+ 由 管理之 Kinesis Video Streams 的 KMS 金鑰 AWS （別名 = `aws/kinesisvideo`) 不收費。
+ 使用者產生的 KMS 金鑰需支付 AWS KMS key 費用。如需詳細資訊，請參閱[AWS Key Management Service 定價](https://aws.amazon.com/kms/pricing/#Keys)。

### AWS KMS API 用量
<a name="api-usage"></a>

產生新資料加密金鑰或擷取現有加密金鑰的 API 請求會隨著流量增加而增加，並需支付 AWS KMS 使用成本。如需詳細資訊，請參閱 [AWS Key Management Service 定價：用量](https://aws.amazon.com/kms/pricing/#Usage)。

即使保留設為 0 （無保留），Kinesis Video Streams 也會產生金鑰請求。

### 區域伺服器端加密的可用性
<a name="sse-regions-akvs"></a>

Kinesis 影片串流的伺服器端加密可在提供 AWS 區域 Kinesis 影片串流的所有 中使用。

## 如何開始使用伺服器端加密？
<a name="getting-started-with-sse-akvs"></a>

Kinesis Video Streams 一律啟用伺服器端加密。如果在建立串流時未指定使用者提供的金鑰，則會使用 AWS 受管金鑰 （由 Kinesis Video Streams 提供）。

使用者提供的 KMS 金鑰必須在建立時指派給 Kinesis 影片串流。您稍後無法使用 [UpdateStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_UpdateStream.html) API 將不同的金鑰指派給串流。

您可以透過兩種方式將使用者提供的 KMS 金鑰指派給 Kinesis 影片串流：
+ 在 中建立 Kinesis 影片串流時 AWS 管理主控台，請在建立新的影片串流頁面上的**加密**索引標籤中指定 KMS 金鑰。 ****
+ 使用 [CreateStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_CreateStream.html) API 建立 Kinesis 影片串流時，請在 `KmsKeyId` 參數中指定金鑰 ID。

## 建立和使用客戶受管金鑰
<a name="creating-using-sse-master-keys-akvs"></a>

本節說明如何建立和使用您自己的 KMS 金鑰，而不是使用 Amazon Kinesis Video Streams 管理的金鑰。

### 建立客戶受管金鑰
<a name="creating-sse-master-keys-akvs"></a>

如需有關如何建立您自己的金鑰的資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。為您的帳戶建立金鑰後，Kinesis Video Streams 服務會在**客戶受管金鑰清單中傳回這些金鑰**。

### 使用客戶受管金鑰
<a name="using-sse-master-keys-akvs"></a>

將正確的許可套用至您的取用者、生產者和管理員之後，您可以在自己的 AWS 帳戶 或其他 中使用自訂 KMS 金鑰 AWS 帳戶。您帳戶中的所有 KMS 金鑰都會出現在 主控台上的**客戶受管金鑰**清單中。

若要使用位於另一個帳戶中的自訂 KMS 金鑰，您必須具有使用這些金鑰的許可。您也必須使用 `CreateStream` API 建立串流。您無法在主控台中建立的串流中使用來自不同帳戶的 KMS 金鑰。

**注意**  
在執行 `PutMedia`或 `GetMedia`操作之前，不會存取 KMS 金鑰。如此會產生下列結果：  
如果您指定的金鑰不存在，`CreateStream`操作會成功，但串流上的 `PutMedia`和 `GetMedia`操作會失敗。
如果您使用提供的金鑰 (`aws/kinesisvideo`)，在執行第一個 `PutMedia`或 `GetMedia`操作之前， 金鑰不會出現在您的帳戶中。

## 使用客戶受管金鑰的許可
<a name="permissions-user-key-KMS-akvs"></a>

您必須先設定 KMS 金鑰政策以允許加密串流，以及加密和解密串流記錄，才能搭配客戶受管金鑰使用伺服器端加密。如需 AWS KMS 許可的範例和詳細資訊，請參閱 [AWS KMS API 許可：動作和資源參考](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html)。

**注意**  
使用預設服務金鑰進行加密不需要套用自訂 IAM 許可。

在使用客戶受管金鑰之前，請確認您的 Kinesis 影片串流生產者和消費者 (IAM 主體） 是 AWS KMS 預設金鑰政策中的使用者。否則串流的寫入及讀取將會失敗，最終可能造成資料遺失、延遲處理或應用程式故障。您可使用 IAM 政策管理 KMS 金鑰的許可。如需詳細資訊，請參閱[搭配 使用 IAM 政策 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html)。

### 範例生產者許可
<a name="example-producer-permissions-akvs"></a>

您的 Kinesis 影片串流製作者必須擁有 `kms:GenerateDataKey`許可：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:GenerateDataKey"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesisvideo:PutMedia"
        ],
        "Resource": "arn:aws:kinesisvideo:*:123456789012:stream/MyStream/*"
    }
  ]
}
```

------

### 消費者許可範例
<a name="example-consumer-permissions-akvs"></a>

您的 Kinesis 影片串流取用者必須擁有 `kms:Decrypt`許可：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesisvideo:GetMedia"
        ],
        "Resource": "arn:aws:kinesisvideo:*:123456789012:stream/MyStream/*"
    }
  ]
}
```

------