

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 EMR 安全組態
<a name="emr-ranger-security-config"></a>

**為 Apache Ranger 建立 Amazon EMR 安全組態**

在啟動與 Apache Ranger 整合的 Amazon EMR 叢集之前，請建立安全組態。

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

**建立指定 AWS Ranger 整合選項的安全組態**

1. 在 Amazon EMR 主控台中，選取**安全組態**，然後選取**建立**。

1. 輸入安全組態的 **Name (名稱)**。您建立叢集時會使用此名稱來指定安全組態。

1. 在 **AWS Ranger 整合**下，選取**啟用由 Apache Ranger 管理的精細分級的存取控制**。

1. 選取要套用的 **Apache Ranger 的 IAM 角色**。如需詳細資訊，請參閱[用於與 Apache Ranger 進行原生整合的 IAM 角色](emr-ranger-iam.md)。

1. 選取要套用的**其他 AWS 服務的 IAM 角色**。

1. 輸入 Admin 伺服器的 Secrets Manager ARN 和地址，將外掛程式設定為連線至 Ranger Admin 伺服器。

1. 選取要設定 Ranger 外掛程式的應用程式。輸入 Secrets Manager ARN，其中包含外掛程式的私有 TLS 憑證。

   如果您未設定 Apache Spark 或 Apache Hive，且選取它們作為叢集的應用程式，則請求會失敗。

1. 適當地設定其他的安全組態選項，然後選擇 **Create (建立)**。您必須使用叢集專用或外部 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 Admin 中指定的服務名稱。

使用下列命令建立 Amazon EMR 安全組態。將 security-configuration 取代為您選擇的名稱。建立叢集時，依名稱選取此組態。

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

------

**設定其他安全功能**

若要安全地將 Amazon EMR 與 Apache Ranger 整合，請設定下列 EMR 安全功能：
+ 使用叢集專用或外部 KDC 啟用 Kerberos 身分驗證。如需說明，請參閱[使用 Kerberos 透過 Amazon EMR 進行身分驗證](emr-kerberos.md)。
+ (選用) 啟用傳輸中或靜態加密。如需詳細資訊，請參閱[Amazon EMR 的加密選項](emr-data-encryption-options.md)。

如需詳細資訊，請參閱[Amazon EMR 中的安全](emr-security.md)。