フローでのエンタイトルメントの付与 - AWS Elemental MediaConnect

フローでのエンタイトルメントの付与

既存のフローにエンタイトルメントを付与して、コンテンツを別の AWS アカウント (サブスクライバーアカウント) と共有できます。サブスクライバーは、あなたのフローをソースとして使用して、同じ AWS リージョンに AWS Elemental MediaConnect フローを作成します。これが起きると、サービスは自分のフローからサブスクライバーのフローまでの動画ストリームを表す出力をフローに生成します。

サブスクライバーはエンタイトルメントを 1 回だけ使用できます。

前提条件

エンタイトルメントを付与するには、次の手順を行います。

フロー (コンソール) にエンタイトルメントを付与するには
  1. MediaConnect コンソール (https://console.aws.amazon.com/mediaconnect/) を開きます。

  2. [フロー] ページで、エンタイトルメントを付与するフローの名前を選択します。

    そのフローの詳細ページが表示されます。

  3. [実験] タブを選択します。

  4. [エンタイトルメントを付与] を選択します。

    [エンタイトルメントを付与] ページが表示されます。

  5. [名前] には、自分とサブスクライバーがこのフローを他のフローと区別するのに役立つ名前の名前を指定します。この名前は、サブスクライバーに表示されるエンタイトルメント ARN の一部にもなります。

  6. [サブスクライバーアカウント ID] には、サブスクライバーの 12 桁のアカウント ID を指定します。AWSID にはハイフンを含めないでください。

  7. [説明] には、この資格を後で識別するのに役立つ説明を指定します。この説明は、アカウントの AWS Elemental MediaConnect コンソールにのみ表示されます。

  8. [サブスクライバーのデータ転送料金の割合] で、サブスクライバーに負担させるエンタイトルメントデータ転送料金の割合を指定します。AWS が残額をアカウントに請求します。たとえば、15 を指定すると、AWSエンタイトルメントデータ転送料金の 15% を利用者のアカウントに請求し、残りの 85% を自分のアカウントに請求します。

    注記

    エンタイトルメントデータ転送料金の一部または全部をサブスクライバーが負担するように指定しても、サブスクライバーはこのエンタイトルメントに基づくフローを作成して開始するまで料金が発生しません。

  9. [エンタイトルメントステータス] では、エンタイトルメントを有効にするか無効にするかを指定します。エンタイトルメントが有効になっている場合、サブスクライバーはエンタイトルメントに基づいてフローを作成し、すぐにコンテンツのストリーミングを開始できます。エンタイトルメントが無効になっている場合、自分のフローからサブスクライバーのフローにコンテンツがストリーミングされるよう、サブスクライバーはエンタイトルメントを有効になるまで待機する必要があります。

  10. 自分のフローからサブスクライバーのフローに送信される動画を暗号化する場合は、以下のタブのいずれかを選択します。

    Static key encryption
    1. [暗号化] セクションで [有効化] を選択します。

    2. [暗号化タイプ] には [静的キー] を選択します。

    3. [ロール ARN] には、暗号化を設定したときに作成したロールの ARN を指定します。

    4. [シークレット ARN] には、暗号化キーを保存するシークレットを作成したときに AWS Secrets Manager が割り当てた ARN を指定します。

    5. [暗号化アルゴリズム] には、ソースの暗号化に使用する暗号化の種類を選択します。

    SPEKE encryption
    1. [暗号化] セクションで 有効化 を選択します。

    2. [暗号化タイプ] には SPEKE を選択します。

    3. [暗号化アルゴリズム] には、ソースの暗号化に使用する暗号化の種類を選択します。

    4. [ロール ARN] で、API ゲートウェイを介してリクエストを送信するためのアクセス権限を付与する、IAM ロールの Amazon リソースネーム (ARN) を入力します。このロールは 暗号化を設定したときに作成しました。

      以下は、ロール ARN の例です。

      arn:aws:iam::111122223333:role/SpekeAccess
    5. [リソース ID] で、コンテンツの識別子を入力します。この ID は、現在のエンドポイントを特定するために、サービスよりキーサーバーに送信されます。この設定を、どの程度特有なものにするかは、どの程度詳細なアクセス制御を求めるかによって異なります。リソース ID は、コンテンツ ID とも呼ばれます。

      以下に、リソース ID の例を示します。

      MovieNight20171126093045
    6. デバイス I] で、条件付きアクセス (CA) プラットフォームのキープロバイダーで構成したデバイスの 1 つの値を入力します。

    7. [URL] に、キーサーバーと通信するためにセットアップした API ゲートウェイプロキシの URL を入力します。API ゲートウェイプロキシ は、MediaConnect と同じ AWS リージョン に配置する必要があります。

      次は、その URL の例です。

      https://1wm2dx1f33.execute-api.us-west-2.amazonaws.com/SpekeSample/copyProtection
    8. (オプション) [定数初期化ベクトル] に、コンテンツを暗号化するためのキーで使用される、128 ビット (16 バイト) の 16 進値を、32 文字の文字列により入力します。

  11. ページの下部で、[権限を付与] を選択します。

  12. [エンタイトルメント] タブのリストから新しいエンタイトルメントを探します。

  13. エンタイトルメント ARN を書き留めます。

  14. 次の情報をサブスクライバーに提供します。

    • エンタイトルメント ARN。

    • フローが作成された AWS リージョンです。

    • エンタイトルメントに暗号化を設定した場合の暗号化キーとアルゴリズム。

    • サブスクライバーに負担させるエンタイトルメントデータ転送料金の割合。

    注記

    MediaConnect は、コンテンツ発信者のフローとサブスクライバーのフロー間のデータ接続を最適化するために、ヌルパケットを抑制します。その結果、サブスクライバーのフローのビットレートが変動したり、コンテンツ発信者のフローとサブスクライバーのフローのビットレートの間で違いが生じたりする可能性があります。ソースの健全性は、SourceBitRate と、SourceContinuityCounterSourceNotRecoveredPackets などの他のメトリクスを組み合わせてモニタリングすることをお勧めします。

フロー (AWS CLI) に権限を付与するには
  1. 付与するエンタイトルメントの詳細を含む JSON ファイルを作成します。

    次の例では、ファイルのコンテンツを示します。

    [ { "Description": "For AnyCompany", "Encryption": [ { "Algorithm": "aes128", "KeyType": "static-key", "RoleArn": "arn:aws:iam::111122223333:role/MediaConnect-ASM", "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:mySecret1" } ], "Name": "AnyCompany_Entitlement", "Subscribers": [ "444455556666", "123456789012" ] }, { "Description": "For Example Corp", "Name": "ExampleCorp", "Subscribers": [ "777788889999" ] } ]
  2. AWS CLI で、grant-flow-entitlements コマンドを使用します。

    aws mediaconnect grant-flow-entitlements --entitlements --flow-arn arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame --cli-input-json file://entitlements.json

    戻り値の例を以下に示します。

    { "Entitlements": [ { "Name": "AnyCompany_Entitlement", "EntitlementArn": "arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-11aa22bb11aa22bb-3333cccc4444:AnyCompany_Entitlement", "Subscribers": [ "444455556666", "123456789012" ], "Description": "For AnyCompany", "Encryption": { "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret:mySecret1", "Algorithm": "aes128", "RoleArn": "arn:aws:iam::111122223333:role/MediaConnect-ASM", "KeyType": "static-key" } }, { "Name": "ExampleCorp", "EntitlementArn": "arn:aws:mediaconnect:us-west-2:111122223333:entitlement:1-3333cccc4444dddd-1111aaaa2222:ExampleCorp", "Subscribers": [ "777788889999" ], "Description": "For Example Corp" } ], "FlowArn": "arn:aws:mediaconnect:us-east-1:111122223333:flow:1-23aBC45dEF67hiJ8-12AbC34DE5fG:BaseballGame" }