AWS Elemental MediaConnect を使用したスタティックキー暗号化のセットアップ - AWS Elemental MediaConnect

AWS Elemental MediaConnect を使用したスタティックキー暗号化のセットアップ

暗号化されたソース、またはスタティックキー暗号化を使用する出力または使用権限を含むフローを作成する前に、次の手順を実行する必要があります。

ステップ 1 — 暗号化キーをシークレットとして AWS Secrets Manager に保存します。

ステップ 2 — AWS Elemental MediaConnect が AWS Secrets Manager に保存されたシークレットを読み取ることを許可する IAM ポリシーを作成します。

ステップ 3 — IAM ロールを作成し、作成したポリシーをアタッチします。次に、AWS Elemental MediaConnect を信頼できるエンティティとして設定します。このエンティティは、このロールを引き受け、アカウントに代わってリクエストを行うことが許可されます。

注記

MediaConnect は、使用権限に対して、また Zixi および SRT プロトコルを使用するソースと出力に対しての暗号化のみをサポートします。Secrets Manager に保存されている Zixi プロトコルのキーは、16 進形式の静的キーです。SRT はパスキーを使用して暗号化します。

ステップ 1: 暗号化キーを AWS Secrets Manager に保存します。

スタティックキー暗号化を使用して AWS Elemental MediaConnect コンテンツを暗号化するには、AWS Secrets Manager を使用して暗号化キーを保存するシークレットを作成する必要があります。シークレットと、そのシークレットを使用するリソース (ソース、出力、または使用権限) を同じ AWS アカウントで作成する必要があります。シークレットはアカウント間で共有できません。

注記

2 つのフローを使用して 1 つの AWS リージョンから別のリージョンに動画を配信する場合は、2 つのシークレット (各リージョンに 1 つのシークレット) を作成する必要があります。

Secrets Manager に暗号化キーを保存するには
  1. ソースを管理するエンティティから暗号化キーを取得します。

  2. 次の場所で AWS Secrets Manager コンソールにサインインします: https://console.aws.amazon.com/secretsmanager/

  3. [Store a new secret] (新しいシークレットの保存) ページの [Select secret type] (シークレットタイプの選択) で、[Other type of secrets] (他の種類のシークレット) を選択します。

  4. キー/値のペア (キーと値のペア) では、プレーンテキスト を選択します。

  5. ボックス内のテキストをすべて消去し、暗号化キーの のみに置き換えます。16 進キーの場合は、キーの長さをチェックして、暗号化タイプに指定された長さと一致することを確認してください。たとえば、AES-256 暗号化キーは 64 桁である必要があります。これは、各桁のサイズが 4 ビットであるためです。

  6. [Select the encryption key] (暗号化キーの選択) は、デフォルト設定の [DefaultEncryptionKey] のままにします。

  7. [Next] (次へ) をクリックします。

  8. [シークレット名] には、後で識別しやすいシークレットの名前を指定します。例えば、2018-12-01_baseball-game-source です。

  9. [Next] (次へ) をクリックします。

  10. [Configure automatic rotation] (自動ローテーションの設定) セクションで、[Disable automatic rotation] (自動ローテーションを有効化する) を選択します。

  11. [Next] (次へ) を選択してから、[Store] (保存) を選択します。

    新しいシークレットの詳細ページが表示され、シークレット ARN などの情報が表示されます。

  12. Secrets Manager のシークレット ARN を書き留めます。この情報は、次の手順で必要になります。

ステップ 2: AWS Elemental MediaConnect にシークレットへのアクセスを許可する IAM ポリシーを作成する

ステップ 1 では、シークレットを作成して AWS Secrets Manager に保存しました。このステップでは、保存したシークレットを読み取ることをAWS Elemental MediaConnect に許可する IAM ポリシーを作成します。

MediaConnect にシークレットへのアクセスを許可する IAM ポリシーを作成するには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes256-7g8H9i" ] } ] }

    Resource セクションでは、各行は作成した異なるシークレットの ARN を表しています。その他の例については、「AWS Secrets Manager のシークレットのためのポリシー例」を参照してください。

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

  6. 名前 にポリシーの名前を入力します (例: SecretsManagerForMediaConnect)。

  7. [Create policy] (ポリシーを作成) を選択します。

ステップ 3: 信頼できる関係を持つ IAM ロールを作成する

ステップ 2 では、AWS Secrets Manager に保存したシークレットへの読み取りアクセスを許可する IAM ポリシーを作成しました。この手順では、IAM ロールを作成し、このポリシーをロールに割り当てます。次いで、AWS Elemental MediaConnect を、ロールを引き受けられる信頼できるエンティティとして定義します。これにより、MediaConnect はシークレットへの読み取りアクセス権を持つことができます。

信頼関係のあるロールを作成するには
  1. IAM コンソールのナビゲーションペインで [Roles] (ロール) をクリックします。

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

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

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

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

  5. [Next: Permissions] (次へ: 許可) を選択します。

  6. アクセス権限ポリシーをアタッチする で、事前に作成した IAM ポリシーの名前を入力してください。

  7. SecretsManagerReadWrite の場合は、チェックボックスをオンにして、次へ: レビュー を選択します。

  8. [Role name] (ロール名) に名前を入力します。MediaConnectAccessRole は留保されているため、この名前は使用しないことを強くお勧めします。代わりに、MediaConnect を含み、このロールの目的を説明する名前を使用します (例: MediaConnect-ASM)。

  9. ロールの説明 では、デフォルトのテキストをこのロールの目的の説明に置き換えます。例えば、Allows MediaConnect to view secrets stored in AWS Secrets Manager. などです。

  10. [Create role] (ロールの作成) を選択します。

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

  12. [Trust relationships] (信頼関係) を選択し、[Edit trust policy] (信頼ポリシーの編集) を選択します。

  13. 信頼ポリシーの編集 ウィンドウで、JSON を次のように変更します。

    • サービス では、ec2.amazonaws.commediaconnect.amazonaws.com に変更します。

    • セキュリティを強化するには、信頼ポリシーに特定の条件を定義します。これにより、MediaConnect はアカウント内のリソースのみを使用するように制限されます。これを行うには、アカウント IDフロー ARN、またはその両方などのグローバル条件を使用します。以下の信頼ポリシーの例を参照してください。グローバルな状況によるセキュリティ上の利点の詳細については、サービス間の混乱した代理の防止 を参照してください。

      注記

      次の例では、アカウント IDフロー ARN 条件の両方を使用しています。両方の条件を使用しないと、ポリシーの見え方が変わります。フローの完全な ARN が不明な場合や、複数のフローを指定する場合には、グローバルコンテキスト条件キー aws:SourceArn で、ARN の未知部分を示すためにワイルドカード文字 (*) を使用します。例えば、arn:aws:mediaconnect:*:111122223333:* です。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "mediaconnect.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:mediaconnect:us-west-2:111122223333:flow:*:flow-name" } } } ] }
  14. [Update Trust Policy] (信頼ポリシーの更新) を選択します。

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