

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

# AWS Elemental MediaConnect での SPEKE の暗号化
<a name="encryption-speke"></a>

Secure Packager and Encoder Key Exchange (SPEKE) を AWS Elemental MediaConnect で使用することで、[使用権限](entitlements.md) を暗号化できます。これにより、コンテンツの作成者は、このコンテンツに対するアクセス権限を完全に制御できます。この使用法は、「[SPEKE ドキュメント](https://docs.aws.amazon.com/speke/latest/documentation/what-is.html#services-architecture)」に記載されている SPEKE クラウドベースのアーキテクチャをカスタマイズしたものです。

**Topics**
+ [SPEKE のキー管理](encryption-speke-key-management.md)
+ [AWS Elemental MediaConnect を使用した SPEKE 暗号化の設定](encryption-speke-set-up.md)

# SPEKE のキー管理
<a name="encryption-speke-key-management"></a>

SPEKE を実装すると、条件付きアクセス (CA) システムが AWS Elemental MediaConnect にキーを提供し、コンテンツの暗号化と復号化を行います。API ゲートウェイは、サービスと CA プラットフォームキープロバイダ間の通信のプロキシとして機能します。各 AWS Elemental MediaConnect フローは、API Gateway プロキシと同じ AWS リージョンに存在する必要があります。

次の図は、AWS Elemental MediaConnect が SPEKE を使用して暗号化キーまたは復号キーを取得する方法を示しています。発信者のフローでは、サービスは暗号化キーを取得し、それを使用してコンテンツを暗号化してから、使用権限を通じて送信します。サブスクライバーのフローでは、サービスは使用権限からコンテンツを受信したときに復号化キーを取得します。

![\[この図は、AWS Elemental MediaConnect フローを持つ AWS アカウントと、同じ AWS リージョン内の API Gateway のインスタンスを示しています。矢印は、AWS Elemental MediaConnect が暗号化キーのリクエストを送信したことを示しています。リクエストは API ゲートウェイを通じて CA プラットフォームキープロバイダーに送信されます。2 番目の矢印は、キープロバイダーが API ゲートウェイを通じて暗号化キーを返すことを示しています。\]](http://docs.aws.amazon.com/ja_jp/mediaconnect/latest/ug/images/speke-encryption.png)


以下に主なサービスとコンポーネントを示します。
+ **AWS Elemental MediaConnect** — フローの暗号化設定を提供および制御します。AWS Elemental MediaConnect は、Amazon API Gateway を通じて CA プラットフォームキープロバイダーから暗号化キーを取得します。AWS Elemental MediaConnect は、暗号化キーを使用してコンテンツを暗号化するか (発信者のフローの場合)、コンテンツを復号化します (サブスクライバーのフローの場合)。
+ **API Gateway** – エンクリプタとキープロバイダーの間でお客様に信頼されるロールとプロキシ通信を管理します。API ゲートウェイではロギング機能が利用でき、お客様はエンクリプタおよび CA プラットフォームとの関係を管理できます。API Gateway は、エンクリプタと同じ AWS リージョンに存在する必要があります。
+ **CA プラットフォームキープロバイダー** — SPEKE 準拠 API を通じて AWS Elemental MediaConnect に暗号化キーと復号キーを提供します。

詳細については、「[SPEKE 暗号化の設定](encryption-speke-set-up.md)」を参照してください。

# AWS Elemental MediaConnect を使用した SPEKE 暗号化の設定
<a name="encryption-speke-set-up"></a>

SPEKE 暗号化を使用する使用権限を付与する前に、次のステップを実行する必要があります。

**[ステップ 1.](#encryption-speke-set-up-on-board-key-provider)** — 暗号化キーを管理する条件付きアクセス (CA) プラットフォームキープロバイダーに依頼します。このプロセスでは、Amazon API Gateway で API を作成します。この API は、AWS Elemental MediaConnect に代わってリクエストをキープロバイダーに送信します。

**[ステップ 2](#encryption-speke-set-up-create-iam-policy)** — ステップ 1 で作成した API がキープロバイダーにリクエストを行うためのプロキシとして機能することを許可する IAM ポリシーを作成します。

**[ステップ 3.](#encryption-speke-set-up-create-iam-role)** — IAM ロールを作成し、ステップ 2 で作成したポリシーをアタッチします。次に、AWS Elemental MediaConnect を、このロールを引き受け、ユーザーに代わって API Gateway エンドポイントにアクセスすることが許可される、信頼できるエンティティとして設定します。

## ステップ 1: CA プロバイダーとのオンボーディング
<a name="encryption-speke-set-up-on-board-key-provider"></a>

AWS Elemental MediaConnect で SPEKE を使用するには、CA プラットフォームキープロバイダーが必要です。以下の AWS パートナーは、SPEKE の MediaConnect カスタマイズのための条件付きアクセス (CA) ソリューションを提供します。
+ [Verimatrix](https://aws.amazon.com/partners/find/partnerdetails/?n=Verimatrix&id=001E000000be2SEIAY)

コンテンツ作成者の場合は、CA プラットフォームのキープロバイダーに連絡して、オンボーディングプロセスの支援を受けてください。CA プラットフォームキープロバイダの助けを借りて、誰がどのコンテンツにアクセスできるかを管理できます。

オンボーディングプロセス中は、以下の点に注意してください。
+ **`POST` メソッドリクエストの ARN** — API ゲートウェイで作成したリクエストに AWS が割り当てる Amazon リソースネーム (ARN)。
+ **定数初期化ベクトル (オプション)** — コンテンツを暗号化するためのキーで使用する、32 文字の文字列により表示される 128 ビット (16 バイト) の 16 進値。
+ **デバイス ID** — キープロバイダーで設定する各デバイスの固有識別子。各デバイスはコンテンツの異なる受信者を表します。
+ **リソース ID** — キープロバイダーとともに構成するコンテンツごとに作成する一意の識別子。
+ **URL** — Amazon API Gateway で作成した API に AWS により割り当てられた URL。

これらの値は、後で MediaConnect で [使用権限](entitlements-grant.md) を設定するときに必要になります。

## ステップ 2: API ゲートウェイをプロキシとして動作させる IAM ポリシーを作成する
<a name="encryption-speke-set-up-create-iam-policy"></a>

[ステップ 1](#encryption-speke-set-up-on-board-key-provider) では、暗号化キーを管理する CA プラットフォームキープロバイダーと協力しました。このステップでは、API ゲートウェイがユーザーに代わってリクエストを行うことを許可する IAM ポリシーを作成します。API ゲートウェイは、アカウントとキープロバイダ間の通信のプロキシとして機能します。

**API ゲートウェイプロキシの IAM ポリシーを作成するには**

1. IAM コンソールのナビゲーションペインから、**[Policies]** (ポリシー) を選択します。

1. **ポリシーの作成** を選択し、**JSON** タブを選択します。

1. 以下のフォーマットを使用するポリシーを入力します。

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

****  

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "execute-api:Invoke"
         ],
         "Resource": [
           "arn:aws:execute-api:us-west-2:111122223333:1abcdefghi/*/POST/*"
         ]
       }
     ]
   }
   ```

------

   `Resource` セクションで、サンプルの Amazon リソースネーム (ARN) を、CA プラットフォームキープロバイダーを使用して API ゲートウェイ `POST` で作成したメソッドリクエストの ARN に置き換えます。

1. **[Review policy]** (ポリシーの確認) を選択します。

1. **[Name]** (名前) に **APIGateway-Proxy-Access** と入力します。

1. [**ポリシーの作成**] を選択します。

## ステップ 3: 信頼できる関係を持つ IAM ロールを作成する
<a name="encryption-speke-set-up-create-iam-role"></a>

[ステップ 2](#encryption-speke-set-up-create-iam-policy) では、API ゲートウェイがプロキシとして機能し、ユーザーに代わってリクエストを行うことを許可する **APIGateway プロキシアクセス** ポリシーを作成しました。このステップでは、IAM ロールを作成し、以下のアクセス許可をアタッチします。
+ **APIGateway プロキシアクセス** ポリシーにより、Amazon API Gateway がユーザーに代わってプロキシとして機能し、アカウントと CA プラットフォームキープロバイダとの間でリクエストを行うことができます。これは ステップ 1 で作成したポリシーです。
+ **信頼関係** ポリシーにより、AWS Elemental MediaConnect がユーザーに代わってロールを引き受けることができます。このポリシーは次の手順の一部として作成します。

**信頼できる関係を持つ IAM ロールを作成するには**

1. IAM コンソールのナビゲーションペインで **[ロール]** を選択します。

1. **[Role]** (ロール) ページで、**[Create role]** (ロールの作成) を選択します。

1. **[ロールを作成]** ページの **信頼されたエンティティのタイプを選択** セクションで、**[AWS サービス]** (デフォルト)を選択します 。

1. **[Choose the service that will use this role]** (このロールを使用するサービスを選択) で、**[EC2]** を選択します。

   EC2 を選択する理由は、現在、AWS Elemental MediaConnect はリストに含まれていないためです。EC2 を選択すると、ロールを作成できます。後の手順で、このロールを変更し、EC2 を MediaConnect に置き換えます。

1. **[Next: Permissions]** (次のステップ: 許可) を選択します。

1. **フィルターポリシー** で、**顧客が管理するポリシー** を選択します。

1. **APIGateway プロキシアクセス** の横にあるチェックボックスを選択し、**次へ: タグ** を選択します。

1. タグ値 (オプション) を入力し、**次へ: レビュー**を選択します。

1. **ロール名** に、**SpekeAccess** など、名前を入力します。

1. **ロールの説明** では、デフォルトのテキストをこのロールの目的を覚えるのに役立つ説明に置き換えます。例: **Allows AWS Elemental MediaConnect to talk to API Gateway on my behalf.**

1. [**ロールの作成**] を選択してください。

1. ページの上部に表示される確認メッセージで、作成したロール名を選択します。

1. **信頼関係** を選択し、**信頼関係の編集** を選択します。

1. **ポリシードキュメント** では、ポリシーを次のように変更します。

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

****  

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "mediaconnect.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. **[Update Trust Policy]** (信頼ポリシーの更新) を選択します。

1. **[Summary]** (概要) ページで、**[Role ARN]** (ロール ARN) の値をメモします。以下のような形式です：`arn:aws:iam::111122223333:role/SpekeAccess`