AWS のサービスを直接呼び出すアプリケーションで IAM ロールを使用する - Amazon EMR

AWS のサービスを直接呼び出すアプリケーションで IAM ロールを使用する

クラスターの EC2 インスタンスで実行されるアプリケーションは、EC2 インスタンスプロファイルを使用して、AWS サービスを呼び出すときに一時的なセキュリティ認証情報を取得できます。

Amazon EMR のリリース 2.3.0 以降で使用できる Hadoop のバーションは、IAM ロールを利用できるように更新されています。アプリケーションが Hadoop アーキテクチャ上で実行され、AWS のどのサービスも直接呼び出さない場合、変更せずに IAM ロールで動作します。

アプリケーションが AWS のサービスを直接呼び出す場合、IAM ロールを利用するようにアプリケーションを更新する必要があります。これにより、アプリケーションは、クラスターの EC2 インスタンスの /etc/hadoop/conf/core-site.xml からアカウント認証情報を取得する代わりに、SDK を利用して IAM ロールを使うリソースにアクセスしたり、EC2 インスタンスメタデータを呼び出して一時的な認証情報を取得したりできます。

SDK を使用して IAM ロールで AWS リソースにアクセスするには
EC2 インスタンスメタデータから一時的な認証情報を取得するには
  • 指定された IAM ロールと連動して実行している EC2 インスタンスから以下の URL を呼び出します。これにより、関連する一時的なセキュリティ認証情報 (AccessKeyId、SecretAccessKey、SessionToken、および Expiration) が返されます。次の例では Amazon EMR のデフォルトのインスタンスプロファイル (EMR_EC2_DefaultRole) を使用しています。

    GET http://169.254.169.254/latest/meta-data/iam/security-credentials/EMR_EC2_DefaultRole

IAM ロールを使用するアプリケーションの作成の詳細については、「Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用して AWS リソースへのアクセス許可を付与する」を参照してください。

一時的なセキュリティ認証情報の詳細については、「一時的セキュリティ認証情報の使用」ガイドの「一時的な認証情報の使用」を参照してください。