AWS Elemental(4)MediaPackage の概要

Elemental MediaPackage

MediaPackageは、 単一の入力 から インターネット配信向け複数のビデオストリーム を作成できる ジャストインタイムパッケージングサービス 。ライブコンテンツとVODそれぞれについて対応可能で、 DRMによる著作権保護 も可能。 オリジネーション 機能を有し、視聴者数の増加に伴って インフラストラクチャをスケール することができる。コンテンツの配信は、CloudFrontを使うことも、他のCDNサービスを使うことも可能。他のElementalサービスとの連携も可能で、DRMやパッケージング処理が不要である場合は、Elemental MediaStoreでも同等のことが実現できる。

料金

取り込まれたビデオのデータ量とストリーミングされるコンテンツの量に基づいて課金される。年間契約を行うことで割引となるサービスも用意されている。

サポートしているコンテンツのタイプ

ライブコンテンツ および LIVE-to-VODコンテンツ でサポートしている入力タイプは、 HLS のみ。 VODコンテンツは、 HLSSMIL をサポートしている。

コーデックは以下をサポートしている。なお、 音声のみの入力はサポートしていない

入力タイプ メディアコンテナ ビデオコーデック オーディオコーデック 字幕フォーマット
HLS TS, AAC, AC3, EC3 H.264, H.265 AACなど WebVTT
SMIL MP4 H.264, H.265 AACなど SRT

また、出力時は以下のタイプおよびコーデックをサポートしている。なお、 LIVE-to-VODコンテンツの場合は、HLSのみサポート

出力タイプ メディアコンテナ ビデオコーデック オーディオコーデック 字幕フォーマット
HLS TS, AAC H.264, H.265 AACなど WebVTT
Smooth Streaming MP4 H.264, H.265 AACなど DFXP
MPEG-DASH MP4 H.264, H.265 AACなど EBU-TT
CMAF(HLS) CMAF H.264, H.265 AACなど WebVTT

処理フロー

ライブコンテンツの場合、まず MediaLive などのアップストリームエンコーダが、 WebDAVを用いてHLSライブストリームをMediaPackageの入力URLに送信 する。次に CDN 等のダウンストリームデバイスが MediaPackage の出力URLにリクエストを送信すると、MediaPackageは、 暗号化の追加やビデオ/音声の出力などのパッケージ処理を動的に行う

複数の入力URLを用意 して、それぞれにストリームを送信することで、 入力の冗長化を実現 することができる。

VODコンテンツの場合、MediaPackage はS3からファイルベースのコンテンツを取り込む 。以降の処理はライブコンテンツと同様。

AWS Elemental(3)MediaLive の概要

Elemental MediaLive

MediaLiveは、マルチスクリーンデバイス用に高品質なビデオストリームを作成できる、放送品質の ライブ動画処理サービス 。入力されたストリーミングをリアルタイムでエンコードする。インフラストラクチャ全体をわずか数分で立ち上げることが可能で、スケーリングやフェイルオーバ等の機能も兼ね備えている。MediaLiveは、複数のAZを跨いで透過的に管理されているなど 高い信頼性 があるため、潜在的な問題が生じても、ライブチャンネルが中断されることはない。また、入力されたストリーミングを リアルタイムでエンコード するだけでなく、統計的多重化、広告マーカーサポート、音声機能 (音量正規化、ドルビーオーディオ、複数の字幕規格など) といった高度機能を持つ。

MediaLiveのサービスリミットは以下の通り。

主な特徴

MediaLiveは、以下のような特徴を持つ。

  • 最新のコーデックを含めて様々な動画規格をサポート
  • 広告マーカー、クローズドキャプション、多言語対応の音声トラック、音声ガイド、ラウドネス補正などの機能をサポート
  • インフラストラクチャを自動でデプロイ、スケーリング、修復
  • 他のElementalサービスとの連携が容易

仕組み

ライブストリーミングを行う際には、以下の3つのシステムが含まれることが一般的である。

システム 内容 備考
アップストリームシステム ソースコンテンツの提供 カメラ, エンコーダ
MediaLive チャンネル ソースコンテンツを取り込んでトランスコードを行う MediaLive
ダウンストリームシステム MediaLiveが生成するコンテンツの出力先 MediaPackage, CDN

パイプライン

MediaLiveの内部で、パイプインが生成されて、その中で処理が実行される。 2つのパイプラインを生成することが奨励 されており、この場合は、 それぞれのパイプラインが独立して同じ処理を実行 することで、可用性が向上する。

入力

MediaLiveへの入力は、プッシュとプルの場合が存在し、これらの入力には、 入力セキュリティグループ が関連づけられている。

チャンネル

チャンネルは、 1度に1つの入力からソースコンテンツを読み取りトランスコード を行った上で 出力グループに対してパッケージ化 を行う。出力は複数設定することが可能である。

料金

入力、出力、アドオン機能、アイドルリソース、データ転送のそれぞれのディメンションに対して重量課金される。オンデマンド料金とリザーブド料金が存在し、後者の場合は12ヶ月の契約が必要となる一方で割安な費用で利用できる。

なお、MediaLiveでは、解像度を以下のように定義している。

解像度 ピクセル
SD 〜 1280×720
HD 1280×720 〜 1920×1080
UHD 1920×1080 〜 4096×2160

AWS Elemental(2)MediaConvert の概要

Elemental MediaConvert

MediaConvertは、放送品質のVODコンテンツを簡単に作成できる ファイルベース動画変換(トランスコード)サービス 。さまざまなメディア形式を幅広く利用でき、かつインフラの管理やメンテナンスは不要である。スタンドアローンのサービスとしても、他のElementalサービスと組み合わせて利用することも可能である。

従来のオンプレミス環境では、リードタイムが長く俊敏性に欠けていたが、MediaConvertを利用することでこれらの問題を解決することができる。

主な特徴

MediaConvertの主な機能は、以下の通り。

  • グラフィックオーバーレイ、コンテンツ保護、多言語音声、クローズドキャプションのサポート、プロフェッショナルなブロードキャスト形式など様々な機能
  • 幅広い動画の入出力形式をサポート
  • ワークロードのプロビジョニングを自動化

料金

オンデマンド料金と最短12ヶ月の契約が必要なリザーブド料金が存在する。オンデマンド料金の場合は、ビデオの出力に対して 分単位で課金 される。AVC, VP8, VP9 を用いてシンプルなユースケースが想定されている低料金プラン( ベーシック階層 )と、AVC, HEVC, AV1, VP8, VP9, Apple ProRes, MPEG-2, VC-3, AVC-Intra に対して様々な機能を付加できる プロフェッショナル階層 とが存在する。

設定

ジョブ

MediaConvertは、メディアファイルを様々な形式、サイズ等にパッケージしファイルにトランスコードする。 ジョブは、このトランスコード作業を行う際の対象ファイル、出力先、エンコード設定等を規定 したものである。

ジョブを作成すると、処理をキューに送信し、自動的に処理が開始される。3ヶ月以内のジョブの履歴は参照できる。また、実行したジョブをJSON形式で吐き出すこともできる。エクスポートしたJSONを用いて、新たなジョブを作成することができる。

入力

S3 もしくは HTTP(S) サーバに保存されている対象となるファイルを指定する。1つのジョブには 最大150の入力 を含めることが出来る。 入力URLは必須項目

オーディオセレクタを用いて、入力オーディオを出力オーディオに関連付けることができる。1つの入力ファイルに複数のオーディオトラックが含まれていた場合、 オーディオセレクタを用いて、出力ファイルでどのトラックを使用するかを選択することができる。

またMediaConvertは、複数の入力ファイルから単一の出力ファイルを作成する 入力スティッチングや、単一ファイルの特定の位置のみを抽出する 入力クリップ を利用できる。

各入力の ビデオセレクタ にて、 タイムコードソース埋め込み, 0から開始, 指定 から選択することができる。 また、 全体設定 から 出力タイムラインのタイムコード の設定が可能である。このタイムコードを メタデータ もしくは フレーム自体 に焼き込むかどうかは設定できる。

MediaConvertは、 ビデオフレームをこのタイムコードを基準に管理 する。

カテゴリ 設定項目 内容
Input Supplemental IMPs 補足IMFパッケージ であるかどうか
Input Decryption settings 復号化設定。入力ファイルが暗号化されている場合の復号方法を規定。
Video selector Color space 色空間の変換設定
Video selector Rotate ローテーションの設定。 自動回転 と指定した値による回転が可能。
Video selector Scan type プログレッシブかインタレースかは自動判定。PsF のみ明示的に指定すると品質が維持できる。

出力グループと出力

出力グループでは、以下の2つのカテゴリに分類されるメディアアセットを作成できる。

カテゴリ 内容
ABRストリーミングパッケージ ユーザがセグメントをダウンロードしながら視聴するタイプのパッケージ
単一ファイル ファイル全体を一度にダウンロードしてから視聴するタイプのパッケージ

出力グループを作成したら、グループ内に出力を設定する。ABRストリーミングパッケージ (CMAF、Apple HLS、DASH ISO, Microsoft Smooth Streaming)の場合は、ビデオABRストリーミングおよびオーディオABRストリーミングを指定する。キャプションを追加することもできる。

出力グループとメディアプレイヤーの関係は以下の通り。

再生プレイヤー 出力グループ
古い Apple デバイス Apple HLS
新しい Apple デバイス CMAF
Android デバイス CMAF もしくは DASH
Microsoft デバイス Microsoft Smooth Streaming

MediaConverterは、出力したビデオの時間単位で課金されるため、複数の解像度やフォーマットを同時に出力した場合は、出力の数だけ課金されることに注意が必要である。

CMAF, DASH, Microsoft Smooth Streaming については、 ストリーミング出力のフラグメント長は全ての出力設定で一致 させておかなければならない。フラグメントの長さは、

  • GopClosedCadence
  • GopSize
  • FramerateNumerator, FramerateDenominator

の値の制約を受ける。フラグメントの長さは、整数である必要があり、次の倍数である必要がある。

GOPサイズ * Closed GOP cadence / フレームレート

ビデオの概念

ビデオのエンコード方法を変更するためには、個別に以下のような設定値を変更する必要がある。

フレームレート

MediaConvertは、 可変フレームレード (VFR)の入力には対応しているが、出力は 固定フレームレート (CFR)のみ対応している。フレームレートの変換アルゴリズムは、

  • Drop duplicate (フレームの欠落)
  • Interpolate(ブレンド)
  • FrameFormer(動き保証)

なお、何も設定しなかった場合は、出力フレームレートは入力フレームレートと同一となる。可変フレームレートで入力された場合は、標準フレームレートから計算して最も近い、固定フレームレードに変換される。

プログレッシブとインタレース

インタレースビデオをプログレッシブビデオに変換することができる。それぞれのモードからの変換にどの設定を適応すればよいかについては、有効な設定の組み合わせを参照のこと。

キャプション

キャプションを設定する場合、キャプションとビデオとが同期するように入力タイムラインを設定しなければならない。 Captions Selectors を設定し、形式等の指定を行う。キャプションの設定は、入力側でも出力側でも出来る。

イメージインサータとオーバレイ

Image Inserter を用いると、指定した時刻に静止画もしくはモーショングラフィックを オーバレイ することができる。フェードインフェードアウト、および透過度を指定できる。

入力時と出力時それぞれでオーバレイ処理を設定することができる。また、開始時刻とその期間 , フェード時間 を指定する。静止画オーバレイで使用できるのは、png もしくは tga ファイル、モーションオーバレイの場合は、 mov もしくは png ファイル。 レイヤー指定 により最大100の画像について重ね指定を行うこともできる。

ジョブ全体の設定

最後に ジョブ全体の設定 を行う。例えば、IAMロールを指定することで、MediaConvert およびこのジョブに実行権限を付与することができる。

なお、 ジョブ設定内に変数を使用することができる 。例えば、S3のプレフィックスに日付や時間、ビットレート、フレームサイズ、ファイル名等を指定できる。これらの変数には、 最小桁数を規定できる。

高速トランスコーディング

10分を超えるジョブには、高速トランスコーディングの利用を検討する。超高精細コンテンツやHDRなどのコンテンツが検討すべきコンテンツとなる。

出力プリセット

出力プリセットは、奨励されるトランスコード設定のグループ。システムプリセットを使うことも、カスタムプリセットを作成することもできる。

ジョブテンプレート

奨励されるトランスコード設定のグループ。システムテンプレートを使うことも、カスタムテンプレートを使うこともできる。

キュー

MediaConvertには、 オンデマンドキュー予約済みキュー とが存在し、前者は重量課金、後者は12ヶ月の契約期間が必要で一定のトランスコーディング容量(能力)に対して支払いを行う。

キューは現在行っているジョブが終了すると次のジョブを実行する。キューを 一時停止 することで、次に控えているジョブ以降を停止させることができる。またキャンセルも可能。キューを指定しなかったジョブは、自動的に デフォルトキュー に送信される。デフォルトキューを含み、 最大10個のオンデマンドキュー を持つことができる。ジョブには優先度を指定することができ、この優先度に沿ってジョブの処理を行う。ジョブの実行までの待機時間が長い場合に、他のキューへとホップすることが可能な キューホッピング 機能が用意されている。これを用いることで、処理が急増して待ち時間が長くなった場合のみに、別のキューで並行処理させるようなことも可能となる。

SCTE-35

SCTE-35マーカーは、広告コンテンツ等の挿入ポイントを示し、TS, DASH, HLSに埋め込むことができる。MediaConvertでは、入力に含まれているSCTE-35をパススルーさせるか、もしくは (ESAM)XML 形式のドキュメントで指定することで、SCTE-35を埋め込むことができる。

AWS Elemental(1)MediaConnect の概要

Elemental MediaConnect

AWS Elemental MediaConnectは、IPネットワークが持つ柔軟性、機敏性、経済性と衛星やファイバーが持つ信頼性、セキュリティを兼ね備えた ライブ動画伝送サービス 。クリティカルなライブ動画のワークフローを構築可能で、遠隔地からの動画を取り込んで共有したり、動画ストリームを複製したりすることができる。これにより、リードタイムが長く俊敏性に欠ける衛星やファイバー等を使用することなく、動画の伝送を行うことが可能となる。また、柔軟に開始や停止を行うことができる。

主な特徴

MediaConnectの主な機能は、以下の通り。

  • Zixi, RIST, RTP などの 標準プロトコル をサポート
  • End-to-End の AES暗号化
  • 顧客やパートナーとの素材の共有が可能
  • メトリクスによるモニタリング
  • 単独利用も他のElementalサービスとの連携も可能

料金

アクティブなリソース と データ転送量 に対して課金される。長期契約が必要な割引体系も存在する。

ユースケース

MediaConnectの主なユースケースは以下の通り。

コントリビューション

オンプレミスからクラウドへコンテンツを取り込む ことができる。入力にオンプレミスのエンコーダ、出力にAWSのエンコーダを指定することができる。

ディストリビューション

コンテンツを複数の異なる場所に配布 することができる。MediaConnectを数珠繋ぎで接続することもできる。

エンタイトルメント

他のAWSアカウントに対して出力することができる。これにより顧客やパートナーとコンテンツを共有することができる。なお、共有することができるのは、 同じリージョン内 のリソース間のみ。

設定

フロー

MediaConnect を利用する際には、まず フローを作成 する。フローで設定する入力は、 Standard, VPC, 他のAWSアカウントの入力 から選ぶことができる。プロトコルは、 RIST, RTP, RTP FEC, Zixi から選択できる。

プロトコルに RTP FECを選択した場合、 インジェストポート には指定したポートに加えて、 エラー訂正のためのポートを2つ指定 する必要がある。MediaConnect は、指定したポート+2 および +4 のポートをこのために自動的に利用する。

プロトコル

Zixi は、長距離を含むほとんどのユースケースに使用できる高可用性プロトコル。pull/pushの指定が可能。 RIST は、長距離アプリケーションに適した高可用性、低遅延のプロトコル。MediaConnectは、 暗号化されたRISTはサポートしていないRTPは、FECを仕様した場合、破損やパケット損失を修復できる。FECを使用しない場合は、帯域幅を節約できる。

入力

フローには、1-2つの入力を設定する。入力を2つ設定した場合には、フェイルオーバが可能で、MediaConnectは 両方の入力をプライマリとして扱う 。フェイルオーバを設定する際には、 リカバリウインドウ を指定する必要があり、 デフォルト値は 200msec である。

出力

フローごとに50個まで出力を指定することができる。 出力では、プロトコル, IP 等を指定する。出力できるプロトコルは入力と同じく、 RIST, RTP, RTP FEC, Zixi 。外部のIPに対して、もしくは指定したVPCのIPに対してコンテンツを出力する。

エンタイトルメント

既存のフローにエンタイトルメントを付与して、コンテンツを別のAWSアカウントと共有することができる。エンタイトルメントを付与する場合は、 相手のAWSアカウント受信者に転送料金をどの程度負担させるか , 転送時の暗号化の有無 などを指定する。

コンテンツの配信

異なるリージョン間のMediaConnect間でコンテンツを転送する場合は、 Zixiプロトコルを指定 して転送を行う。また、 MediaLiveに対してコンテンツを転送する場合 は、冗長化のために同一リージョン内で2つのフローを設定 した上で、 MediaLive側でMediaConnectのARNを指定 する。

ベストプラクティス

AWS ElementalMediaConnectのベストプラクティスは、以下の通り。

  • FECやARQを利用 してパケット損失を最小限にとどめる。
  • 異なるAZ 上にフローを作成、もしくは 複数の入力を指定 するなどワークフローを冗長化
  • CloudWatch メトリクス および アラームの活用
  • CIDRブロックの厳格化

AWS CloudHSM(1)CloudHSMの概要

AWS CloudHSM

AWS CloudHSMは、業界標準のAPIや規格に準拠したクラウドベースのハードウェアセキュリティモジュールで、これを用いることでクラウドで安全に 暗号化キーを生成、保管 できる。AWSのサービスの中では、AWS KMS(Key Management Service)と似た機能を有するが、CLoudHSMはシングルテナント構成で、共通鍵だけでなく 秘密鍵も保管できる 。また、AWS KMSのCMK(カスタマーキー)をCloudHSMで保管することも可能である。

AWS Organizations(1)Organizationsの概要

AWS Organizations

AWS Organizationsは、 複数のAWSアカウントを統合 するためのアカウント管理サービス。アカウント管理1や 一括請求 機能をはじめとした、以下の機能が備わっている。

  • アカウントの一元管理
  • 一括請求
  • アカウントのグループ( OU )化
  • アカウント毎の アクセスコントロール
  • タグの標準化
  • IAMの統合

これらの機能を実現するために、AWS Organizationsは以下のAWSサービスと連携している。

サービス名 有効化 実現できること
AWS IAM 不要 サービスアクティビティ による 最終アクセス時間の確認
AWS Artifact 必要 組織契約 による 契約の受諾
AWS CloudTrail 必要 組織の証跡 による 証跡の組織への適用
AWS CloudWatch Events 不要
AWS Config 必要 アグリゲータ による 集約ビュー の表示
AWS Control Tower 不要
AWS Directory Service 必要
AWS Firewall Manager 必要 AWS Firewall Manager による WAFルールの管理
AWS ライセンスマネージャー 必要
AWS RAM 必要
AWS Service catalog 必要
Service Quotas 不要
AWS シングルサインオン 必要
AWS System Manager 必要 Systems Manager Explorer によるデータの同期
タグポリシー 必要

AWS Organizationsを有効化すると、複数のAWSアカウントを一括管理することができる。それぞれのアカウントは、ルートを親として 組織単位 (OU)ごとに分類することができる。アカウントは、 マスターアカウント (=ルート)と メンバーアカウント に分かれ、マスターアカウントにはメンバーアカウントを管理するための様々な権限が付与される。AWS Organizationsの全ての機能を有効化することも、 一括請求機能のみを有効化 することもできる。各OUもしくはアカウント単位に、 サービスコントロールポリシー と呼ばれる各アカウントが持つ権限を明示したポリシーを適用することができる。 サービスコントロールポリシーとタグポリシーは、デフォルトでは無効化されている ので、利用する場合は有効化する。

組織とアカウント

AWS Organizationsが持つことのできるマスターアカウントは1つのみである。マスターアカウントでOrganizationsを有効化し、その後参加するアカウントを招待することで、メンバーアカウントを追加することができる。 マスターアカウントはサービスコントロールポリシーの影響を受けない 。Organizationsを削除すると復元できず、またポリシーも削除される。削除する際には、 全てのメンバーアカウントを消去する必要 がある。

Organizationsに参加したメンバーアカウントでは、サービスコントロールポリシーやタグポリシーが即座に適用され、またサービスの信頼を有効化している場合は、そのサービスからメンバーアカウントに対してアクションを実行することが許可される。また、Organizations内で新規のメンバーアカウントを作成することもできる。

ポリシー

サービスポリシー

サービスポリシーは、 最大で使用できるアクセスの権限を各アカウントに対して指定できる機能アカウントのルートユーザにも適用され、アカウントに与える影響が非常に大きいため適用する際には詳細のテストが必要である。IAMのサービスアクティビティに表示される、各アカウントの最終アクセス時刻を参考にポリシーの内容を決定することが望ましい。

サービスポリシーは以下のタスクには影響しない。

  • マスターアカウント
  • Service-linked Role
  • ルートユーザの認証
  • サポートプランの変更
  • CloudFrontの一部機能

サービスポリシーは、IAMポリシーとほぼ同じ構文を使用する。複数のポリシーが適用されている場合は、明示的なDenyがAllowよりも優先される。ポリシーの例は、 サービスコントロールポリシーの例 を参照のこと。

タグポリシー

タグポリシーを用いることで、タグキーおよびタグ値の大文字と小文字の処理方法の設定などを規定することができる。デフォルトでは、タグポリシーへのコンプライアンスの強制はされない。強制をサポートするAWSサービスは 強制をサポートするサービスとリソースタイプ を参照のこと。

AWS Shield(1)Shieldの概要

AWS Shield

AWS Shieldは、 DDoS攻撃 に対する保護を行う。 AWS Shield Standardは、追加料金なしで全てのユーザが使用できるサービスで、ウェブサイトやアプリケーションを標的とする、一般的かつ頻繁に発生するネットワークおよび転送レイヤーの DDoS 攻撃を防御する。

AWS Shield Advancedは、Amazon Elastic Compute Cloud、Elastic Load Balancing (ELB)、Amazon CloudFront、Amazon Route 53、AWS Global Acceleratorなどに対して行われる 高度な攻撃に対応する拡張保護を提供するAWS Shield Advanced を利用中にDDoS攻撃を受けた際には、 DDoS response team (DRT) にサポートを依頼できる。また、AWS Shield Advancedには、 AWS WAFが無償で付帯 されている。なお、DRTのサポートを受けるためには、 ビジネスサポートプラン以上の契約 が必要である。

多くの場合は、 AWS Shield Standard のみで対処可能である。

AWS Shield Advancedが対応可能なDDoS攻撃の例

DDoS攻撃は、一般的に以下のようなタイプに分類される。 AWS Shield Advanced は、これらのDDoS攻撃にも対応可能である。

名称 内容
UDP反射型攻撃 リクエストの発生元を偽装し、UDP を使用してサーバーから大量のレスポンスを引き出す
SYN フラッド 接続を半開状態にして、システムの利用可能なリソースを枯渇させる
DNS クエリフラッド DNS クエリを使用して DNS サーバーのリソースを枯渇させる
レイヤー 7攻撃 ウェブアプリケーションの実際のユーザーからのように見せかけて多数の HTTP リクエストを送信する

AWS WAF(1)WAFの概要

AWS WAF

AWS WAFは、Amazon API GatewayAmazon CloudFrontApplication Load Balancer に転送される HTTP および HTTPS リクエストをモニタリングできるWAF。

  • 指定したリクエスト 以外の全てのリクエストを許可する
  • 指定したリクエスト 以外の全てのリクエストをブロックする
  • 指定したプロパティに一致するリクエストを カウントする

ことができる。これらを設定する際には、

  • リクエストの発生元の IP アドレス
  • リクエスト送信元の
  • リクエストヘッダーの値
  • リクエストに含まれる 文字列
  • リクエストの 長さ
  • 悪意のある 可能性がある SQLコード の有無
  • 悪意のある 可能性があるスクリプトの有無

などを条件として指定できる。また、 DDoS攻撃の影響を最小限に抑えることが可能な AWS Shield と組み合わせて使用することもでき、これらのサービスを簡単に管理可能な AWS Firewall Manager が用意されている。WAFは、ルールの複雑性が加味された Web ACl Capacity Unit 単位で課金される。

CloudFrontと併用する際には、WAFが返却したレスポンスに応じてカスタムエラーページを表示 したり、 CloudFrontの地理的ブロッキング機能と同時に使用する ことができる。

ACLとルール

Web ACLは、表示された リスト順に評価 され、ルールに一致するリクエストを 許可 , ブロック , カウント することができる。また、どのルールにも一致しないリクエストをどのように処理するかを定める デフォルトアクション を指定することができる。

WEB ACLに追加可能なルールセットである、ルールグループ を規定することができ、あらかじめAWSやベンダーが作成した、マネージドルールグループ を使用/購入することもできる。ルールグループにはデフォルトアクションが設定されておらず複数のWEB ACLに同一のルールグループを適用することができる。

グループ名 WCU 内容 利用シーンと効果
Admin protection 100 公開されている管理ページへの外部アクセスをブロックするためのルール サードパーティーのソフトウェアを実行している場合や、悪意のあるアクターがアプリケーションへの管理アクセスを得るリスクを軽減したい場合
Amazon IP reputation list 25 ボットやその他の脅威に関連付けられている IP アドレスをブロック ボットを軽減したい場合
Core rule set 700 ウェブアプリケーションに一般的に適用可能なルール
Known bad inputs 200 脆弱性の悪用または発見に関連するリクエストパターンをブロックするルール 悪意のあるアクターが脆弱なアプリケーションを発見するリスクを軽減
Linux operating system 200 Linux 固有の脆弱性の悪用に関連するリクエストパターンをブロック 攻撃者がアクセスしてはならないファイルの内容を公開したり、コードを実行したりする攻撃を防ぐ
PHP application 100 安全でない PHP 関数のインジェクションなど、PHP プログラミング言語の使用に固有の脆弱性の悪用に関連するリクエストパターンをブロックするルール 攻撃者が許可されていないコードまたはコマンドをリモートで実行できる脆弱性の悪用を防ぐ
POSIX operating system 100 POSIX および POSIX と同等のオペレーティングシステムに固有の脆弱性の悪用に関連するリクエストパターンをブロックするルール アクセスしてはならないファイルの内容を公開したり、コードを実行したりする攻撃を防ぐ
SQL database 200 SQL Database ルールグループには、SQL インジェクション攻撃などの SQL データベースの悪用に関連するリクエストパターンをブロックするルール 不正なクエリのリモートインジェクションを防ぐ
Windows operating system 200 PowerShell コマンドのリモート実行など、Windows 固有の脆弱性の悪用に関連するリクエストパターンをブロックするルール 悪意のあるコードを実行したりする脆弱性の悪用を防ぐ
WordPress application 100 WordPress サイト固有の脆弱性の悪用に関連するリクエストパターンをブロックするルール

ロギング

ログ記録を有効化することで、WEB ACLで分析されるトラフィックの詳細情報を取得することができる。ログ記録を有効化すると Kinesis Firehose経由で指定した場所にログが保存される

また、CloudWatchアラームで特定のメトリクスをモニタリング することができるほか、CloudTrailによるアクションレコードの保存にも対応している。

FireWall Manager

FireWall Managerを用いることで、AWS WAF Classic ルール、AWS Shield アドバンスド 保護、 Amazon VPC セキュリティグループ を有効化することができ、これにより組織全体の保護を行ったり、リソースの頻繁な追加に対応し、組織全体のDDoS攻撃を一元的に監視することができる。 FireWall Managerを使用するためには、AWS Organizationのメンバーである必要 がある。

AWS System Manager(1)System Managerの概要

AWS System Manager

AWS System Manager は、統合インタフェースでインフラを可視化し、EC2のみならず オンプレミス上のサーバ を含めたさまざまなリソース( マネージドインスタンス )を管理し表示することができる。これによりモニタリングやトラブルシューティング、リソースとアプリケーションの管理などを迅速に行うことができる。

これらのリソースは、リソースグループ と呼ばれるグループごとに分類でき、状態をダッシュボード上から俯瞰することができるため、アプリケーションに影響を当てる可能性のあるリソースをすばやく特定することができる。また、OSのパッチレベルやソフトウェアのインストール状況なども簡単に確認することができる。

また、インスタンスの停止や再起動などの 運用タスクの自動化 や、リモートからのパッチの適用や設定の変更などができるため、ヒューマンエラーや運用負荷の軽減を図ることが可能である。

なお、System Managerは、過去に Simple Systems Manager と呼ばれていたため、現在も略して SSMと呼称される。

AWS System Managerの機能

System Managerを用いることで、以下を行うことができる。

カテゴリ サービス名 内容
運用管理 Explorer 運用データ(OpsData)を集約して表示するダッシュボード
運用管理 OpsCenter 運用作業項目(OpsItems)の表示と調査
運用管理 CloudWatch Dashboards メトリクス の表示
運用管理 Trusted Advisor & Personal Health Dashboard (PHD) プロビジョニングとヘルスイベントの表示
アプリケーション管理 Resource Groups AWSリソースの グループ化
アプリケーション管理 AWS AppConfig アプリケーション設定 を作成、管理、迅速にデプロイ
アプリケーション管理 Parameter Store 設定データ 管理と 機密管理 のための安全な階層型ストレージ
アクションと変更 Automation メンテナンスとデプロイの自動化
アクションと変更 Maintenance Window タスクのスケジュール を設定
インスタンスとノード 設定コンプライアンス パッチと設定の不一致を確認
インスタンスとノード インベントリ ソフトウェア インベントリの収集
インスタンスとノード マネージドインスタンス インスタンスの セットアップ
インスタンスとノード アクティベーション オンプレミス上のノードの承認
インスタンスとノード Session Manager ブラウザベースの シェルでアクセス
インスタンスとノード Run Command リモートから コマンドを実行
インスタンスとノード State Manager インスタンスを 定義された状態 に保つ
インスタンスとノード Patch Manager パッチ の適用
インスタンスとノード Distributor パッケージの作成
共有リソース ドキュメント Systems Manager が実行する アクションを定義

SSM Agent

SSM Agentは、EC2オンプレミスサーバ にインストールすることのできるソフトウェアで、System Managerはこのソフトウェアを介して、これらのリソースの更新や管理、設定を行うことができる。 EC2上で提供されているWindows ServerやAmazon Linux、 Ubuntu ServerのAMIには、あらかじめSSM AgentがインストールされているSystems Manager エンドポイントとの間でHTTPS通信を確立する必要があり、HTTP Proxy経由で通信する設定にすることもできる。なお、このエージェントの動作ログは以下の場所に格納されている。

  • /var/log/amazon/ssm/amazon-ssm-agent.log
  • /var/log/amazon/ssm/errors.log

SSM Agentの実行にはroot権限が付与 されていることから、このSSM Agentを用いて SendCommand や StartSession コマンドを行うことが可能なAWS上のIAM ユーザ等の管理や権限付与には注意する必要がある。SSM Agentをリリースのたびに更新し最新のバージョンを保持するためには、マネージメントコンソール上のマネージメントインスタンスのページから、Agent auto update (エージェントの自動更新)を選択する。

運用管理

Explorer

Explorerは、AWSリソースの情報を表示するダッシュボード。AWSアカウント全体もしくは当該リージョンの Amazon EC2Systems Manager OpsCenterSystems Manager Patch Manager などから運用データを取得し、これを一覧で確認することができる。

Explorerでは、 タグで情報をフィルタリング したり、 リソースデータの同期 機能を用いて、 複数のアカウントの情報を横断的に閲覧する こともできる。

OpsCenter

OpsCenterは、運用データを表示・調査・解決するための場所である。これを用いることで、各事象に対して迅速な対応が可能。

アプリケーション管理

Parameter Store

パラメータストアは、設定データ 管理と 機密管理 のための安全な階層型ストレージを提供し、パスワードや認証情報などを安全に保存できる。これらの情報には、作成時に定義した一意の名前を用いてアクセスできる。また、以下のAWSサービスと接続し、パラメータストアの情報を提供する。

  • Amazon Elastic Compute Cloud (Amazon EC2)
  • Amazon Elastic Container Service (Amazon ECS)
  • AWS Lambda
  • AWS CloudFormation
  • AWS CodeBuild
  • AWS CodeDeploy

パラメータストアは、 StringString List ,、Secure String をサポートしている。Secure Stringは、KMS-CMK (カスタマーマスターキー)を用いて暗号化される。また、パラメータには、デフォルトパラメータと アドバンストパラメータ が用意されている。前者から後者への移行は可能であるが、 その逆はできない 。アドバンスパラメータは、許可される パラメータ数やデータサイズが緩和 され、かつ パラメータポリシーが規定できる課金 される。

パラメータは 階層状 に管理できる。階層構造にすることで管理がしやすく、また 同一階層のデータを一括して取得することもできる 。パラメータポリシーを付加することで、 有効期限や失効期限 などを定めることができる。

パラメータにはタグを付与できる。また、更新されるたびに バージョン がインクリメントされる。パラメータラベル と呼ばれるエイリアスを指定することもできる。

AWSが提供しているパブリックパラメータを使うことで、AMIやリージョンの最新の情報を取得できる。

インスタンスとノード

コンプライアンス

コンプライアンスは、マネージドインスタンスをスキャンして、パッチコンプライアンスと設定の不一致を確認することができる 。具体的には、Patch Manager によるパッチ適用State Manager による Association に関するコンプライアンスデータ が表示される。また、 設定変更履歴をConfigから取得 したり、コンプライアンスをカスタマイズして 独自のルールを作成 したり、Run Command や State Manager を使って問題を修復 できる。

Resource Data Sync を用いることで、全てのマネージドインスタンスからのコンプライアンスをS3に蓄積/集約することができる。これらのデータは、Amazon Athena および Amazon QuickSight で可視化することもできる。データを蓄積するS3には、System Managerからのデータ書き込みを許可する Bucket Policy の作成が必要

インベントリ

インベントリを使用することで、 マネージドインスタンスからメタデータを収集 することができる。収集できるメタデータは、以下の通り。

カテゴリ 内容
アプリケーション アプリケーション名、発行元、バージョンなど
AWS コンポーネント EC2 ドライバ、エージェント、バージョンなど
ファイル 名前、サイズ、バージョン、インストール日、変更および最新アクセス時間など
ネットワーク設定の詳細 IP アドレス、MAC アドレス、DNS、ゲートウェイ、サブネットマスクなど
Windows 更新 Hotfix ID、インストール者、インストール日など
インスタンスの詳細 システム名、オペレーティングシステム (OS) 名、OS バージョン、最終起動、DNS、ドメイン、ワークグループ、OS アーキテクチャなど
サービス 名前、表示名、ステータス、依存サービス、サービスのタイプ、起動タイプなど
タグ インスタンスに割り当てられるタグ
Windows レジストリ レジストリキーのパス、値の名前、値タイプおよび値
Windows ロール 名前、表示名、パス、機能タイプ、インストール日など
カスタムインベントリ カスタムインベントリの操作 に説明されるようにマネージドインスタンスに割り当てられたメタデータ

これらのデータも、上述の Resource Data Sync でS3に保存することができる。インベントリのセットアップは、SSMドキュメントの AWS-GatherSoftwareInventory を Association で実行することによって実現できる。

Run Command

Run Commandを使用することで、マネージドインスタンスにログインすることなく安全に、管理タスクを実行することができる。Run Commandを実行するためには、コマンドを発行するIAM ユーザに実行権限を付与する必要がある。また、対象のインスタンスに対しても、 IAMインスタンスプロファイルを作成して適用する 必要がある。

State Manager

State Managerは、EC2等を定義された状態に保つプロセスの自動化を行う。例えば、起動時に特定のソフトウェアをインストールする、ネットワークを構成する、ソフトウェアの更新を行うなどのタスクを行う。

Patch Manager

Patch Managerは、セキュリティ関連などのパッチをマネージドインスタンスに対して適用するプロセスの自動化を行う。 ベースライン と呼ばれるパッチの適用ルールには、 リリースから数日以内に自動承認されるルール と、 承認済みおよび拒否済みパッチのリスト が含まれている。サポートされるOSは、 パッチマネージャーの前提条件 を参照のこと。各OSには、パッチ適用用のリポジトリが用意されており、これを指定するか、 代替パッチソースリポジトリ を指定することもできる。

AWSによってあらかじめ用意されている定義済みパッチベースラインの場合、

  • 「セキュリティ」タイプで重要度レベルが「非常事態」または「重要」のすべてのOSパッチを7日後に自動承認する
  • 「Bugfix」タイプのパッチをリリースから7日後に自動承認する

などのルールが事前に定められている。これらのパッチを適用する対象のインスタンスをグループ化するために、 パッチグループ を作成することができる。パッチグループは、 1 つのパッチベースラインにのみ登録できる。また、SSMドキュメントの AWS-RunPatchBaseline を適用する際に、対象のインスタンス等を指定することもできる。 パッチが適用されるとインスタンスは再起動される

SSMドキュメント

SSMドキュメントは、マネージドインスタンスで実行するアクションを定義するスクリプト。SSMドキュメントには、以下のタイプが用意されている。使用可能なスキーマバージョンやフォーマット等が定められているため、利用する際には ドキュメントを参照のこと。AWSが提供する Automation ドキュメントの名称や挙動は、Systems Manager Automation ドキュメントの詳細リファレンスを参照する。また、公式ドキュメントは存在しないが、AWSが提供する Command ドキュメントも多数存在する。

タイプ 内容 Schema Run Command State Manager Automation Maintenance Window Distributor Session Manager Change Calendaer
Command 設定の適用 1.2, 2.0, 2.2
Automation タスクの実行 0.3
Package ソフトウェア
Session セッションの定義
Policy AWS-GatherSoftwareInventory を使用したインベントリデータの取得 2.0-
Change Calendaer カレンダーエントリ