配置示例 - Amazon EMR

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

配置示例

以下示例演示了常见场景的安全配置和集群配置。 AWS CLI 为了简洁起见,显示了命令。

本地 KDC

以下命令创建集群,并在主节点上KDC运行集群专用。集群上需要额外的配置。有关更多信息,请参阅为通过 Kerberos EMR 身份验证的用户和连接HDFS配置 Amazon 集群 SSH

创建安全配置

aws emr create-security-configuration --name LocalKDCSecurityConfig \ --security-configuration '{"AuthenticationConfiguration": \ {"KerberosConfiguration": {"Provider": "ClusterDedicatedKdc",\ "ClusterDedicatedKdcConfiguration": {"TicketLifetimeInHours": 24 }}}}'

创建集群

aws emr create-cluster --release-label emr-7.3.0 \ --instance-count 3 --instance-type m5.xlarge \ --applications Name=Hadoop Name=Hive --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \ --service-role EMR_DefaultRole \ --security-configuration LocalKDCSecurityConfig \ --kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=MyPassword

KDC使用活动目录跨领域信任的集群专用

以下命令创建一个集群,该集群在主节点上KDC运行集群专用,并且对 Active Directory 域具有跨领域信任。在集群上和 Active Directory 中需要额外的设置。有关更多信息,请参阅教程:配置与 Active Directory 域的跨领域信任

创建安全配置

aws emr create-security-configuration --name LocalKDCWithADTrustSecurityConfig \ --security-configuration '{"AuthenticationConfiguration": \ {"KerberosConfiguration": {"Provider": "ClusterDedicatedKdc", \ "ClusterDedicatedKdcConfiguration": {"TicketLifetimeInHours": 24, \ "CrossRealmTrustConfiguration": {"Realm":"AD.DOMAIN.COM", \ "Domain":"ad.domain.com", "AdminServer":"ad.domain.com", \ "KdcServer":"ad.domain.com"}}}}}'

创建集群

aws emr create-cluster --release-label emr-7.3.0 \ --instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop Name=Hive \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \ --service-role EMR_DefaultRole --security-configuration KDCWithADTrustSecurityConfig \ --kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=MyClusterKDCAdminPassword,\ ADDomainJoinUser=ADUserLogonName,ADDomainJoinPassword=ADUserPassword,\ CrossRealmTrustPrincipalPassword=MatchADTrustPassword

不同集群KDC上的外部集群

以下命令创建一个集群,该集群引用不同集群的主节点KDC上的集群专用,以对委托人进行身份验证。集群上需要额外的配置。有关更多信息,请参阅为通过 Kerberos EMR 身份验证的用户和连接HDFS配置 Amazon 集群 SSH

创建安全配置

aws emr create-security-configuration --name ExtKDCOnDifferentCluster \ --security-configuration '{"AuthenticationConfiguration": \ {"KerberosConfiguration": {"Provider": "ExternalKdc", \ "ExternalKdcConfiguration": {"KdcServerType": "Single", \ "AdminServer": "MasterDNSOfKDCMaster:749", \ "KdcServer": "MasterDNSOfKDCMaster:88"}}}}'

创建集群

aws emr create-cluster --release-label emr-7.3.0 \ --instance-count 3 --instance-type m5.xlarge \ --applications Name=Hadoop Name=Hive \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \ --service-role EMR_DefaultRole --security-configuration ExtKDCOnDifferentCluster \ --kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=KDCOnMasterPassword

KDC具有活动目录跨领域信任的外部集群

以下命令创建一个不带编号的集群KDC。该集群引用在另一个集群的主节点上KDC运行的集群专用,以对委托人进行身份验证。这KDC与 Active Directory 域控制器具有跨领域信任。需要在主节点上使用KDC进行其他配置。有关更多信息,请参阅 教程:配置与 Active Directory 域的跨领域信任

创建安全配置

aws emr create-security-configuration --name ExtKDCWithADIntegration \ --security-configuration '{"AuthenticationConfiguration": \ {"KerberosConfiguration": {"Provider": "ExternalKdc", \ "ExternalKdcConfiguration": {"KdcServerType": "Single", \ "AdminServer": "MasterDNSofClusterKDC:749", \ "KdcServer": "MasterDNSofClusterKDC.com:88", \ "AdIntegrationConfiguration": {"AdRealm":"AD.DOMAIN.COM", \ "AdDomain":"ad.domain.com", \ "AdServer":"ad.domain.com"}}}}}'

创建集群

aws emr create-cluster --release-label emr-7.3.0 \ --instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop Name=Hive \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \ --service-role EMR_DefaultRole --security-configuration ExtKDCWithADIntegration \ --kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=KDCOnMasterPassword,\ ADDomainJoinUser=MyPrivilegedADUserName,ADDomainJoinPassword=PasswordForADDomainJoinUser