AWS EMR提供三种内置的Ranger插件,分别是:S3(EMRFS),Spark,Hive,如果要启用这些插件,需要创建三个特定的IAM Role,以便相关组件能获得适当的权限。对这三种Role的介绍可参考官方文档:https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-ranger-iam.html 本文主要是解释一下三种Role之间的关系。
在创建标准EMR集群时,如果你有留意的话,应该会注意到EMR会自动创建并分配给各个EC2节点一个默认的IAM Role,这个Role叫做:EMR_EC2_DefaultRole
,如果你查看一下这个Role的policies就会发现,这个默认的Role拥有很大的权限,包括对S3和Glue Data Catalog的全局读写权限,对于不做细粒度权限控制的EMR集群来说,这样做是没有问题的。当然,你可以以该Role为模板创建新的Role,删减或添加一些policies,例如限制EMR仅可以使用部分的S3桶。
如果打算启用EMR内置的Ranger插件,就会如前面文档所述,将要涉及到三个Role,