将 IAM 角色用于直接调用Amazon服务的应用程序 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将 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资源

从 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资源的权限

有关临时安全凭证的更多信息,请参阅《使用临时安全凭证》指南中的使用临时安全凭证