« AWS IAMユーザーの多要素認証管理を委任する方法 | メイン | AWS初心者向けWebinar「失敗例を成功に変える、AWSアンチパターンのご紹介」資料公開 »

Amazon Elastic MapReduceにおけるIAMロール必須化/AWS Data Pipelineでの注意事項

こんにちは。SAの今井です。

今日はAmazon Elastic MapReduce(以下EMR)のIAMロール必須化と、それに伴うAWS Data Pipeline(以下Data Pipeline)に与える影響についてお知らせします。

AWSからのお知らせメールでお気づきの方もいらっしゃるかと思いますが下記にあるようにEMRでは2015年6月30日以降、IAMロールの利用が必須となります。 https://docs.aws.amazon.com/ja_jp/ElasticMapReduce/latest/DeveloperGuide/emr-iam-roles.html

 

何が起こるの?

  • 6/30(UTC)の深夜以降、IAMロールを付与せずにEMRクラスタを起動することができなくなります。
  • 同時に、IAMロールに対応していない古いAMIである、バージョン2.3.0より古いAMIが利用できなくなります。
  • IAMロールを付与せずに起動されっぱなしになっているクラスタが強制終了されたりすることはありません。
  • しかし、このタイミングから同じものが起動できなくなるので注意が必要です。
  • このタイミング以降、マネジメントコンソール上で新規にEMRクラスタを起動する際にIAMロールが用意されていない場合、クラスタ起動時にIAMロールの作成を求められます。

 

EMRとIAMの関係性は?

EMRでは2種類のIAMロールを利用します。ひとつめはEMR Service Role。ふたつめはEC2 instance profile(IAMロール)。前者はEMR自体がEC2の起動をするなどのオペレーションに関する権限、後者はEMRクラスタ内のEC2がS3やDynamoDB、SNSなどにアクセスする際の権限を管理します。 これらを正しく設定することはEMRを運用する上での権限管理をAWSのセキュリティベストプラクティスに乗せるため、AMI2.3.0にて導入されました。

 

注意すべきケース1: EMRクラスタの起動をcron化しているケース

IAMロールなし、もしくは古いAMIのクラスタをバッチ処理のためにcron等で起動しているようなケースでは注意が必要です。今回のタイミングを過ぎた時点でクラスタの起動に失敗するようになるのでバッチ処理が動かなくなることが想定されます。既存のEMRクラスタがIAMロールを使っているかどうかわからない場合は下記のスクリプトで確認することが可能です。

https://s3.amazonaws.com/beta.elasticmapreduce/scripts/roles/find_clusters_without_roles.py

 

注意すべきケース2: Data PipelineでEMR関連のActivityを利用しているケース

こちらは少しだけ複雑です。Data PipelineにはEMR関連のActivityがあります。例えば定期的にEMRクラスタを起動してHiveスクリプトを実行させる、といったような使い方がよくある例です。注意しなければならないのは、ここで起動されるEMRもIAMロールの利用が必須になるということです。

Mandatory AWS Data Pipeline update required to your IAM roles というタイトルでメールを受け取っていらっしゃる方もいると思います。このメールを受け取っている方は本件に該当する可能性がある方ですので特にご注意ください。

メールにもあるように、Data Pipelineのコンソールにアクセスすると下記のように画面上部に Mandatory update required to the IAM roles used by Data Pipeline. Please click here to update before June 30, 2015 というバナーが表示されると思います。それをクリックする同スクリーンショット中にあるような設定ウィザードがポップアップしてきます。このウィザードを進めていただくだけで基本的には対処が完了しますのでご安心下さい。また、すでに設定が要件を満たしているアカウントについては、これらは表示されません。

Img

このウィザードが何をしてくれるかというのをかいつまんで説明しておきます。

  1. あなたのアカウントの状況をチェックして、必要に応じてData PipelineのIAMロール対応を有効化します。これ自体は2015年2月にリリースされたセキュリティ関連の機能改善です。有効化されていなかった場合、今回のウィザードで有効化されます。
  2. すべてのリージョンのスケジュール済み(稼働中)のパイプラインをスキャンします
  3. そして見つかったリソースに対して必要な変更を加えます。対象は以下の2つが該当します。
    • Data Pieplineが用意するデフォルトのロール群(DataPipelineDefaultRole, DataPipelineDefaultResourceRole)
    • その他、EMRを起動するパイプラインに関連付けられたすべてのIAMロール

 

ご心配なら

EMRをcronで使っているケース

Data PipelineでEMRを使っているケース

  • ひとまずマネジメントコンソールでData Pipelineの管理画面を一度開いてみてください。上記のウィザードが表示されていたらそのまま実行してください。これで対応完了です。
  • また、ウィザードが表示されていなければ問題ありません。

それでも心配であれば

コメント

Twitter, Facebook

このブログの最新情報はTwitterFacebookでもお知らせしています。お気軽にフォローください。

2018年4 月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30