Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

在调用 AWS 服务时,集群的 EC2 实例上运行的应用程序可以使用实例配置文件获取临时安全凭证。

AMI 2.3.0 和更高版本上的 Hadoop 版本已经过更新,可以使用 IAM 角色。如果您的应用程序仅限于在 Hadoop 架构的顶层运行,并不直接调用 AWS 中的任何服务,那么它应使用未做修改的 IAM 角色。

如果您的应用程序在 AWS 中直接调用服务,那么您需要更新该应用程序,以便可以利用 IAM 角色。这意味着,您的应用程序现在不是从集群中 EC2 实例上的 /etc/hadoop/conf/core-site.xml 获取账户凭证,而是使用软件开发工具包以 IAM 角色访问资源,或调用 EC2 实例元数据以获取临时凭证。

使用软件开发工具包以 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 实例上运行的应用程序授予访问 AWS 资源的权限

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