本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 EMR 安全組態
為 Apache Ranger 建立 Amazon EMR 安全組態
在啟動與 Apache Ranger 整合的 Amazon EMR 叢集之前,請建立安全組態。
- Console
-
建立指定 AWS Ranger 整合選項的安全組態
-
在 Amazon EMR 主控台中,選取安全組態,然後選取建立。
-
輸入安全組態的 Name (名稱)。您建立叢集時會使用此名稱來指定安全組態。
-
在 AWS Ranger 整合下,選取啟用由 Apache Ranger 管理的精細分級的存取控制。
-
選取要套用的 Apache Ranger 的 IAM 角色。如需詳細資訊,請參閱用於與 Apache Ranger 進行原生整合的 IAM 角色。
-
選取要套用的其他 AWS 服務的 IAM 角色。
-
輸入管理員伺服器的 Secrets Manager ARN 和地址,將外掛程式設定為連線至 Ranger Admin 伺服器。
-
選取要設定 Ranger 外掛程式的應用程式。輸入 Secrets Manager ARN,其中包含外掛程式的私有 TLS 憑證。
如果您未設定 Apache Spark 或 Apache Hive,且選取它們作為叢集的應用程式,則請求會失敗。
-
適當地設定其他的安全組態選項,然後選擇 Create (建立)。您必須使用叢集專用或外部 KDC 啟用 Kerberos 身分驗證。
注意
您目前無法使用 主控台來建立安全組態,以指定 中的 AWS Ranger 整合選項 AWS GovCloud (US) Region。可以使用 CLI 執行安全組態。
-
- CLI
-
建立 Apache Ranger 整合的安全組態
-
將 取代
為 AWS 您的帳戶 ID。<ACCOUNT ID> -
將
取代為資源所在的區域。<REGION> -
指定
TicketLifetimeInHours的值,以判斷由 KDC 發行的 Kerberos 票證的有效期間。 -
指定
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 進行身分驗證。
-
(選用) 啟用傳輸中或靜態加密。如需詳細資訊,請參閱Amazon EMR 的加密選項。
如需詳細資訊,請參閱Amazon EMR 中的安全。