将 IAM 角色用于直接调用Amazon服务的应用程序
在调用 Amazon 服务时,集群的 EC2 实例上运行的应用程序可以使用 EC2 实例配置文件获取临时安全凭证。
Amazon EMR 版本 2.3.0 和更高版本上的 Hadoop 版本已经过更新,可以使用 IAM 角色。如果您的应用程序仅限于在 Hadoop 架构的顶层运行,并不直接调用Amazon中的任何服务,那么它应使用未做修改的 IAM 角色。
如果您的应用程序在Amazon中直接调用服务,那么您需要更新该应用程序,以便可以利用 IAM 角色。这意味着,您的应用程序现在不是从集群中 EC2 实例上的 /etc/hadoop/conf/core-site.xml
获取账户凭证,而是使用 SDK 以 IAM 角色访问资源,或调用 EC2 实例元数据以获取临时凭证。
使用 SDK 以 IAM 角色访问Amazon资源
-
以下主题介绍了如何使用一些 Amazon SDK 以 IAM 角色访问临时凭证。每个主题的开头介绍了不使用 IAM 角色的应用程序的版本,然后向您分步讲解将该应用程序转换为可以使用 IAM 角色的过程。
-
《Amazon SDK for Java开发人员指南》中的使用 SDK for Java 配置用于 Amazon EC2 实例的 IAM 角色
-
《Amazon SDK for .NET Developer Guide》中的使用 SDK for .NET 配置用于 Amazon EC2 实例的 IAM 角色
-
《Amazon SDK for PHP开发人员指南》中的使用 SDK for PHP 配置用于 Amazon EC2 实例的 IAM 角色
-
《Amazon SDK for Ruby开发人员指南》中的使用 SDK for Ruby 配置用于 Amazon EC2 实例的 IAM 角色
-
从 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 实例上运行的应用程序授予访问Amazon资源的权限。
有关临时安全凭证的更多信息,请参阅《使用临时安全凭证》指南中的使用临时安全凭证。