Tech Sketch Bucket of Technical Chips by TIS Inc.

AWS Tips -- IAMユーザで他のユーザにEMRクラスターを見せる方法 --

Pocket

この記事はeXcale Developer's Blogから移転されたものです。


eXcale開発チームの平井です。

eXcale では、情報を集計・分析する目的で、AWSが提供するAmazon Elastic MapReduce(EMR)を利用しています。今回は、そのEMRをIAMユーザで使用する際に気をつける点についてご紹介します。


eXcaleでは期間限定でサインアップキャンペーン実施中です。
キャンペーン内容についてはこちらを参照してください。


デフォルトでは、IAMユーザは、他のユーザのEMRクラスターを見れない

EMRとは、分散処理基盤であるHadoopをAWS上で簡単に利用できるサービスです。
EMRを利用することで、面倒なHadoopのセットアップやサーバーの管理なしに簡単に分散処理基盤を利用することができます。

IAMとは、AWS上のサービス・リソースへのアクセスを管理するための仕組みです。
IAMで、開発者や運用者といった役割毎にユーザ/グループを作成し、必要に応じて権限を与えることで、AWS上のサービス・リソースへのアクセスを安全にコントロールすることができます。

EMRもIAMに対応しており、EMRへのアクセスを必要なユーザにのみ制限することができます。ただし、デフォルトでは、IAMユーザは他のユーザが作成したEMRクラスターの情報を見ることができません。そのため、こちら(AWS公式ドキュメント) にあるように、IAMユーザでEMRを利用する場合は、IAMの設定だけではなく、EMR側の設定にも気をつける必要があります。

他のIAMユーザでも見れるようにするためにはvisible-to-all-usersを忘れずに

とあるIAMユーザで作成したEMRクラスターを他のIAMユーザでも見れるようにするためには、IAMでの設定の他に、EMR側の設定(visible-to-all-users)を有効にする必要があります。以下は、Amazon EMR CLIを使用して設定(visible-to-all-users)を有効にするサンプルです。

EMRクラスター作成時に設定する場合(--visible-to-all-usersを指定)

既に作成済みのEMRクラスターの設定を変更する場合(job-flow-identifierには、設定を変更したいEMRクラスターのIDを指定)

上記実行後、EMRクラスターの情報を取得した際にVisibleToAllUsersがtrueになっていればOKです。

また、ManagementConsole上で確認する場合は、以下の用に、Visible To All UsersがAllになっていればOKです。(設定していない場合は、Noneになっています。)

参考:IAM側の設定

ここでは、IAM側の設定の詳細は解説しませんが、EMRに対してReadOnlyにするポリシーは次のようになります。(以下は、IAMの設定で選択できるPolicy TemplateのAmazon Elastic MapReduce Read Only Accessを転記しています)

IAM側の設定はAWS公式ドキュメントを参考に必要に応じて設定してください。


以上、IAMユーザで他のユーザにEMRクラスターを見せる方法についてご紹介しました。
もし、IAMユーザでEMRクラスターの情報を見ることが出来ない場合は、IAMの設定だけでなく、EMR側の設定も確認してみてください。

エンジニア採用中!私たちと一緒に働いてみませんか?