

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

# 起動時に Amazon EMR クラスターのタグ付けを強制する
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch"></a>

*Amazon Web Services、Priyanka Chaudhary*

## 概要
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-summary"></a>

このパターンは、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](https://docs.aws.amazon.com/emr/latest/APIReference/API_RunJobFlow.html)、[AddTags](https://docs.aws.amazon.com/emr/latest/APIReference/API_AddTags.html)、[RemoveTags](https://docs.aws.amazon.com/emr/latest/APIReference/API_RemoveTags.html)、および [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html) の API の Amazon CloudWatch Events イベントを起動します。このイベントは、Python スクリプトを実行する AWS Lambda 関数を呼び出します。Python 関数は、イベントの JSON 入力から Amazon EMR クラスター ID を取得し、以下のチェックを実行します。
+ Amazon EMR クラスターが、指定したタグ名で設定されていることを確認します。
+ そうでない場合は、Amazon EMR クラスター名、違反の詳細、AWS リージョン、AWS アカウント、およびこの通知の送信元である Lambda の Amazon リソースネーム (ARN) などの関連情報 を含む Amazon Simple Notiﬁcation Service (Amazon SNS) 通知をユーザーに送信します。

## 前提条件と制限事項
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント
+ 指定の Lambda コードをアップロードする Amazon Simple Storage Service (Amazon S3) バケット。または、「*エピック*」セクションで説明されているように、この目的で S3 バケットを作成することもできます。
+ 違反の通知を受信するアクティブなメールアドレス
+ 確認したい必須タグのリスト。

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

**製品バージョン**
+ Amazon EMR リリース 4.8.0 以降

## アーキテクチャ
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-architecture"></a>

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

![クラスターの起動、API を使用したモニタリング、イベント生成、Lambda 関数呼び出し、送信された通知。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/1a4fc0f8-b0c9-4391-9c79-9eb3898d6ecb/images/0d95c414-69d1-4f29-a9e7-09f202e27014.png)


**自動化とスケール**
+ [AWS Organizations](https://aws.amazon.com/organizations/) を使用している場合は、[AWS Cloudformation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) を使用して、モニタリングする複数のアカウントにこのテンプレートをデプロイできます。

## ツール
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-tools"></a>

**AWS サービス**
+ 「[AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)」 を使用することで、AWS リソースをセットアップし、迅速かつ一貫したプロビジョニングを行い、AWS アカウントとリージョン全体でライフサイクルの最初から最後までリソースを管理できます。リソースを個別に管理する代わりに、テンプレートを使用してリソースとその依存関係を記述し、それらをスタックとしてまとめて起動して設定できます。複数の AWS アカウントと AWS リージョンにまたがるスタックを管理し、プロビジョニングすることが可能です。
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) – Amazon CloudWatch Events は、AWS リソースの変更を説明するシステムイベントのほぼリアルタイムのストリームを配信します。
+ [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) - Amazon EMR は、ビッグデータフレームワークの実行と膨大な量のデータの効率的な処理を簡素化するウェブサービスです。
+ 「[AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)」 – AWS Lambda はサーバーのプロビジョニングや管理を行わずにコードの実行を支援できるコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) — Amazon Simple Storage Service (Amazon S3) は、オブジェクトストレージサービスです。Simple Storage Service (Amazon S3) を使用すると、いつでもウェブ上の任意の場所から任意の量のデータを保存および取得できます。
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon Simple Notiﬁcation Service (Amazon SNS) は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージ配信または送信を調整して管理します。サブスクライバーは、サブスクライブしているトピックに対して発行されたすべてのメッセージを受信します。また、同じトピックのサブスクライバーはすべて同じメッセージを受信します。

**コード**

このパターンには、以下の添付ファイルが含まれます。
+ `EMRTagValidation.zip` — セキュリティコントロール用の Lambda コード。
+ `EMRTagValidation.yml` — イベントとLambda 関数をセットアップする CloudFormation テンプレート。

## エピック
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-epics"></a>

### S3 バケットのセットアップ
<a name="set-up-the-s3-bucket"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| S3 バケットを定義します。 | [Amazon S3 コンソールで](https://console.aws.amazon.com/s3/)、Lambda コードの.zip ファイルをホストする S3 バケットを選択または作成します。この S3 バケットが、モニタリングする Amazon EMR クラスターと同じ AWS リージョンに存在する必要があります。Amazon S3 バケット名はグローバルに一意であり、名前空間はすべての AWS アカウントによって共有されています。S3 バケット名には、先頭にスラッシュを含めることはできません。 | クラウドアーキテクト | 
| Lambda コードをアップロードします。 | 「*添付ファイル*」セクションにある Lambda コードの .zip ファイルを S3 バケットにアップロードします。                                              | クラウドアーキテクト | 

### AWS CloudFormation テンプレートをデプロイする
<a name="deploy-the-aws-cloudformation-template"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| AWS CloudFormation のテンプレートを起動します。 | 同じAWS リージョンで S3 バケットとして [AWS CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/.) を開き、テンプレートをデプロイします。AWS CloudFormation テンプレートのデプロイに関する詳細については、CloudFormation ドキュメントの「[AWS CloudFormation コンソールでのスタックの作成](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)」を参照してください。 | クラウドアーキテクト | 
| テンプレートのパラメータを入力します。 | テンプレートを起動すると、次の情報の入力を求められます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/enforce-tagging-of-amazon-emr-clusters-at-launch.html) | クラウドアーキテクト | 

### サブスクリプションを確認
<a name="confirm-the-subscription"></a>


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

## 関連リソース
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-resources"></a>
+ [AWS Lambda 開発者ガイド](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)
+ 「[Amazon EMR クラスターでのタグ付け](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html)」

## アタッチメント
<a name="attachments-1a4fc0f8-b0c9-4391-9c79-9eb3898d6ecb"></a>

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「[attachment.zip](samples/p-attach/1a4fc0f8-b0c9-4391-9c79-9eb3898d6ecb/attachments/attachment.zip)」