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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 IAM 角色用于直接调用 Amazon 服务的应用程序

在集群 EC2 实例上运行的应用程序在调用 Amazon 服务时可以使用 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 角色的应用程序的更多信息,请参阅向 A mazon EC2 实例上运行的应用程序授予访问 Amazon 资源的权限。

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