

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

# 创建 EMR 安全配置
<a name="emr-ranger-security-config"></a>

**为 Apache Ranger 创建 Amazon EMR 安全配置**

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

------
#### [ Console ]

**创建指定 AWS Ranger 集成选项的安全配置**

1. 在 Amazon EMR 控制台中，依次选择 **Security configurations (安全配置)** 和 **Create (创建)**。

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

1. 在 **AWS Ranger Integration (Ranger 集成)** 下，选择 **Enable fine-grained access control managed by Apache Ranger (启用由 Apache Ranger 管理的细粒度访问控制)**。

1. 选择您要应用的 **Apache Ranger 的 IAM 角色**。有关更多信息，请参阅[用于与 Apache Ranger 本地集成的 IAM 角色](emr-ranger-iam.md)。

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

1. 通过输入 Admin 服务器的 Secrets Manager ARN 和地址，将插件配置为连接到 Ranger Admin 服务器。

1. 选择应用程序以配置 Ranger 插件。输入包含插件私有 TLS 证书的 Secrets Manager ARN。

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

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

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

------
#### [ CLI ]

**要为 Apache Ranger 集成创建安全配置**

1. `<ACCOUNT ID>`替换为您的 AWS 账户 ID。

1. 将 `<REGION>` 替换为资源所在的区域。

1. 为 `TicketLifetimeInHours` 指定一个值，用于确定 KDC 发放的 Kerberos 票证的有效期间。

1. 为 `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 管理员中指定的服务名称。

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

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

------

**配置其它安全功能**

为将 Amazon EMR 与 Apache Ranger 安全集成，您还应该配置以下 EMR 安全功能：
+ 启用使用集群专用 KDC 或外部 KDC 的 Kerberos 身份验证。有关说明，请参阅[使用 Kerberos 通过 Amazon EMR 进行身份验证](emr-kerberos.md)。
+ （可选）启用传输中或静态加密。有关更多信息，请参阅[Amazon EMR 的加密选项](emr-data-encryption-options.md)。

有关更多信息，请参阅 [Amazon EMR 中的安全性](emr-security.md)。