起動時に Amazon EMR クラスターのタグ付けを強制する - AWS 規範ガイダンス

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

起動時に Amazon EMR クラスターのタグ付けを強制する

作成者: Priyanka Chaudhary (AWS)

環境: 実稼働

テクノロジー: 分析、セキュリティ、アイデンティティ、コンプライアンス

AWS サービス: Amazon EMR、AWS LambdaAmazon CloudWatch Events

[概要]

このパターンは、Amazon EMR クラスターによる作成時のタグ付けを保証するセキュリティコントロールを提供します。 

Amazon EMR は、膨大な量のデータを処理して分析するためのAmazon Web Services (AWS) サービスです。Amazon EMR は、社内でクラスターコンピューティングを実行する代わりに、拡張可能な低構成のサービスを提供します。タグ付けを使用し、目的、所有者、環境などのさまざまな方法で AWS リソースを分類できます。たとえば、各クラスターにカスタムメタデータを割り当てることで、Amazon EMR クラスターにタグを付けることができます。タグは、定義するキーと値で構成されます。組織の要件に適合する一貫したタグのセットを作成することをお勧めします。Amazon EMR クラスターにタグを追加するとき、タグはクラスターに関連するアクティブな Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにもそれぞれ伝達されます。同様に、Amazon EMR クラスターからタグを削除すると、そのタグは関連するアクティブな EC2 インスタンスそれぞれから削除されます。

検出コントロールは API コールをモニタリングし、RunJobFlow、、RemoveTags、および CreateTags APIs の Amazon AddTagsEvents CloudWatch イベントを開始します。このイベントは、Python スクリプトを実行する AWS Lambda 関数を呼び出します。Python 関数は、イベントの JSON 入力から Amazon EMR クラスター ID を取得し、以下のチェックを実行します。

  • Amazon EMR クラスターが、指定したタグ名で設定されていることを確認します。

  • そうでない場合は、Amazon EMR クラスター名、違反の詳細、AWS リージョン、AWS アカウント、およびこの通知の送信元である Lambda の Amazon リソースネーム (ARN) などの関連情報 を含む Amazon Simple Notification Service (Amazon SNS) 通知をユーザーに送信します。

前提条件と制限

前提条件

  • アクティブな AWS アカウント

  • 指定の Lambda コードをアップロードする Amazon Simple Storage Service (Amazon S3) バケット。または、「エピック」セクションで説明されているように、この目的で S3 バケットを作成することもできます。

  • 違反の通知を受信するアクティブなメールアドレス

  • 確認したい必須タグのリスト。

制約事項

  • このセキュリティコントロールは地域ごとに行われます。モニタリングする AWS リージョンごとにデプロイする必要があります。

製品バージョン

  • Amazon EMR リリース 4.8.0 以降

アーキテクチャ

ワークフローアーキテクチャ

クラスターの起動、APIsを使用したモニタリング、イベント生成、Lambda 関数呼び出し、送信された通知。

自動化とスケール

ツール

AWS サービス

  • AWS CloudFormation – AWS CloudFormation は、AWS リソースのモデル化とセットアップ、迅速かつ一貫したプロビジョニング、ライフサイクル全体にわたる管理に役立ちます。リソースを個別に管理する代わりに、テンプレートを使用してリソースとその依存関係を記述し、それらをスタックとしてまとめて起動して設定できます。複数の AWS アカウントと AWS リージョンにまたがるスタックを管理およびプロビジョニングできます。

  • Amazon CloudWatch Events - Amazon CloudWatch Events は、AWS リソースの変更を記述するシステムイベントのほぼリアルタイムのストリームを提供します。

  • Amazon EMR - Amazon EMR は、ビッグデータフレームワークの実行と膨大な量のデータの効率的な処理を簡素化するウェブサービスです。

  • AWS Lambda」 – AWS Lambda はサーバーのプロビジョニングや管理を行わずにコードの実行を支援できるコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。 

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) は、オブジェクトストレージサービスです。Simple Storage Service (Amazon S3) を使用すると、いつでもウェブ上の任意の場所から任意の量のデータを保存および取得できます。

  • Amazon SNS — Amazon Simple Notification Service (Amazon SNS) は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージ配信または送信を調整して管理します。サブスクライバーは、サブスクライブしているトピックに対して発行されたすべてのメッセージを受信します。また、同じトピックのサブスクライバーはすべて同じメッセージを受信します。

コード

このパターンには、以下の添付ファイルが含まれます。

  • EMRTagValidation.zip — セキュリティコントロール用の Lambda コード。

  • EMRTagValidation.yml – イベントと Lambda 関数を設定する CloudFormation テンプレート。

エピック

タスク説明必要なスキル

S3 バケットを定義します。

Amazon S3 コンソールで、Lambda コードの.zip ファイルをホストする S3 バケットを選択または作成します。この S3 バケットが、モニタリングする Amazon EMR クラスターと同じ AWS リージョンに存在する必要があります。Amazon S3 バケット名はグローバルに一意であり、名前空間はすべての AWS アカウントによって共有されています。S3 バケット名には、先頭にスラッシュを含めることはできません。

クラウドアーキテクト

Lambda コードをアップロードします。

「添付ファイル」セクションにある Lambda コードの.zip ファイルを S3 バケットにアップロードします。                                             

クラウドアーキテクト
タスク説明必要なスキル

AWS CloudFormation テンプレートを起動します。

S3 バケットと同じ AWS リージョンで AWS CloudFormation コンソールを開き、テンプレートをデプロイします。AWS CloudFormation テンプレートのデプロイの詳細については、 CloudFormation ドキュメントの「AWS CloudFormation コンソールでのスタックの作成」を参照してください。

クラウドアーキテクト

テンプレートのパラメータを入力します。

テンプレートを起動すると、次の情報の入力を求められます。

  • S3 バケット: 最初のエピックで作成または選択したバケットを指定します。ここで添付の Lambda コード (.zip ファイル) をアップロードしました。

  • S3 キー: S3 バケット内の Lambda .zip ファイルの場所を指定します (たとえば、<ファイル名>.zip または <コントロール/ファイル名>.zip)。先頭にスラッシュを含めないでください。

  • 通知 メールアドレス: Amazon SNS 通知を受け取るメールアドレスを入力します。 

  • キー名のタグ付け: チェックするタグ (ApplicationIDEnvironmentOwner など)をカンマで区切ったリストで指定します。Events CloudWatch イベントは、これらのタグについてクラスターをモニタリングし、見つからない場合は通知を送信します。

  • Lambda ロギングレベル: Lambda 関数のロギングレベルと頻度を指定します。[情報] を使用して、進行状況に関する詳細な情報メッセージをログに記録し、引き続きデプロイを続行できるエラーイベントには「エラー」、潜在的に有害な状況の場合は「警告」を使用します。                                       

クラウドアーキテクト
タスク説明必要なスキル

サブスクリプションを確認します。

CloudFormation テンプレートが正常にデプロイされると、指定した E メールアドレスにサブスクリプション E メールが送信されます。違反通知の受信を開始するには、このメールサブスクリプションを確認する必要があります。

クラウドアーキテクト

関連リソース

添付ファイル

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip