创建 EMR 安全配置 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建 EMR 安全配置

为 Apache Ranger 创建 Amazon EMR 安全配置

在启动与 Apache Ranger 集成的 Amazon EMR 集群之前,请创建安全配置。

Console
创建一个安全配置来指定 Amazon Ranger 集成选项
  1. 在 Amazon EMR 控制台中,依次选择 Security configurations (安全配置)Create (创建)

  2. 键入安全配置的 Name (名称)。在创建集群时,使用此名称来指定安全配置。

  3. Amazon Ranger Integration (Ranger 集成) 下,选择 Enable fine-grained access control managed by Apache Ranger (启用由 Apache Ranger 管理的细粒度访问控制)

  4. 选择您要应用的 Apache Ranger 的 IAM 角色。有关更多信息,请参阅用于与 Apache Ranger 本地集成的 IAM 角色

  5. 选择要应用的 IAM role for otherr Amazon services (其它亚马逊云科技服务的 IAM 角色)

  6. 通过输入管理服务器的 Secrets Manager ARN 和地址,将插件配置为连接到 Ranger 管理服务器。

  7. 选择应用程序以配置 Ranger 插件。填写包含插件私有 TLS 凭证的 Secrets Manager ARN。

    如果您未配置 Apache Spark 或 Apache Hive,并将它们选为集群的应用程序,则请求将失败。

  8. 根据需要设置其它安全配置选项,然后选择 Create (创建)。您必须启用使用集群专用 KDC 或外部 KDC 的 Kerberos 身份验证。

注意

您当前无法使用控制台创建指定 Amazon GovCloud (US) Region 中的 Amazon Ranger 集成选项的安全配置 可以使用 CLI 完成安全配置。

CLI
要为 Apache Ranger 集成创建安全配置
  1. <ACCOUNT ID> 替换为您的Amazon账户 ID。

  2. <REGION> 替换为资源所在的区域。

  3. TicketLifetimeInHours 指定一个值,用于确定 KDC 发放的 Kerberos 票证的有效期间。

  4. AdminServerURL 指定 Ranger Admin 服务器的地址。

{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24 } } }, "AuthorizationConfiguration":{ "RangerConfiguration":{ "AdminServerURL":"https://_<RANGER ADMIN SERVER IP>_:6182", "RoleForRangerPluginsARN":"arn:aws:iam::_<ACCOUNT ID>_:role/_<RANGER PLUGIN DATA ACCESS ROLE NAME>_", "RoleForOtherAWSServicesARN":"arn:aws:iam::_<ACCOUNT ID>_:role/_<USER ACCESS ROLE NAME>_", "AdminServerSecretARN":"arn:aws:secretsmanager:_<REGION>_:_<ACCOUNT ID>_:secret:_<SECRET NAME THAT PROVIDES ADMIN SERVERS PUBLIC TLS CERTIFICATE WITHOUT VERSION>_", "RangerPluginConfigurations":[ { "App":"Spark", "ClientSecretARN":"arn:aws:secretsmanager:_<REGION>_:_<ACCOUNT ID>_:secret:_<SECRET NAME THAT PROVIDES SPARK PLUGIN PRIVATE TLS CERTIFICATE WITHOUT VERSION>_", "PolicyRepositoryName":"<SPARK SERVICE NAME eg. amazon-emr-spark>" }, { "App":"Hive", "ClientSecretARN":"arn:aws:secretsmanager:_<REGION>_:_<ACCOUNT ID>_:secret:_<SECRET NAME THAT PROVIDES Hive PLUGIN PRIVATE TLS CERTIFICATE WITHOUT VERSION>_", "PolicyRepositoryName":"<HIVE SERVICE NAME eg. Hivedev>" }, { "App":"EMRFS-S3", "ClientSecretARN":"arn:aws:secretsmanager:_<REGION>_:_<ACCOUNT ID>_:secret:_<SECRET NAME THAT PROVIDES EMRFS S3 PLUGIN PRIVATE TLS CERTIFICATE WITHOUT VERSION>_", "PolicyRepositoryName":"<EMRFS S3 SERVICE NAME eg amazon-emr-emrfs>" }, { "App":"Trino", "ClientSecretARN":"arn:aws:secretsmanager:_<REGION>_:_<ACCOUNT ID>_:secret:_<SECRET NAME THAT PROVIDES TRINO PLUGIN PRIVATE TLS CERTIFICATE WITHOUT VERSION>_", "PolicyRepositoryName":"<TRINO SERVICE NAME eg amazon-emr-trino>" } ], "AuditConfiguration":{ "Destinations":{ "AmazonCloudWatchLogs":{ "CloudWatchLogGroup":"arn:aws:logs:<REGION>:_<ACCOUNT ID>_:log-group:_<LOG GROUP NAME FOR AUDIT EVENTS>_" } } } } } }

PolicyRespositoryNames 是在 Apache Ranger Admin 中指定的服务名称。

使用以下命令创建 Amazon EMR 安全配置。用您选择的名称替换 security-configuration。创建集群时,按名称选择此配置。

aws emr create-security-configuration \ --security-configuration file://./security-configuration.json \ --name security-configuration

配置其它安全功能

为将 Amazon EMR 与 Apache Ranger 安全集成,您还应该配置以下 EMR 安全功能:

有关更多信息,请参阅Amazon EMR 中的安全性