本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 Amazon EMR 的 Kerberos 架構選項
將 Kerberos 與 Amazon EMR 搭配使用時,您可以從本章節所列的架構中進行選擇。無論選擇哪個架構,請使用相同的步驟來設定 Kerberos。您建立安全組態、在建立叢集時指定安全組態和相容的叢集特定 Kerberos 選項,並在符合 KDC 中使用者主體的叢集上,為 Linux 使用者建立 HDFS 目錄。如需組態選項的說明和每個架構的範例組態,請參閱在 Amazon EMR 上設定 Kerberos。
叢集專用 KDC (主節點上的 KDC)
此組態適用於 Amazon EMR 5.10.0 版及更高版本。

優點
-
Amazon EMR 具有完整的 KDC 擁有權。
-
EMR 叢集上的 KDC 獨立於集中式 KDC 實作,例如 Microsoft Active Directory 或 AWS Managed Microsoft AD。
-
對效能的影響微乎其微,因為 KDC 僅管理叢集中本機節點的身分驗證。
-
或者,其他 Kerberos 化的叢集可以參考 KDC 做為外部 KDC。如需詳細資訊,請參閱外部 KDC – 不同叢集上的主節點。
考量與限制
-
Kerberos 化叢集不能相互驗證,所以應用程式無法相互運作。如果叢集應用程式需要相互運作,您必須在叢集之間建立跨域信任,或設定一個叢集做為其他叢集的外部 KDC。如果建立跨域信任,KDC 必須有不同的 Kerberos 領域。
-
您必須在對應到 KDC 使用者主體的主節點 EC2 執行個體上建立 Linux 使用者,以及每個使用者 HDFS 目錄。
-
使用者主體必須使用 EC2 私有金鑰檔案和
kinit
登入資料,以使用 SSH 連接到叢集。
跨領域信任
在這個組態中,來自不同 Kerberos 領域的主體 (通常是使用者) 會向 Kerberos 化 EMR 叢集上的應用程式元件進行驗證,此叢集具有自己的 KDC。主節點上的 KDC 會使用同時存在於兩個 KDC 中的跨領域主體,與另一個 KDC 建立信任關係。每個 KDC 中的主體名稱和密碼完全相符。跨域信任最常用於 Active Directory 實作,如下圖所示。也支援在外部 MIT KDC 或另一個 Amazon EMR 叢集上之 KDC 的跨領域信任。

優點
-
安裝 KDC 的 EMR 叢集保有 KDC 的完整擁有權。
-
使用 Active Directory 時,Amazon EMR 會自動建立對應至 KDC 上使用者主體的 Linux 使用者。您仍必須為每個使用者建立 HDFS 目錄。此外,Active Directory 網域中的使用者主體可以使用
kinit
登入資料來存取 Kerberos 化叢集,無需使用 EC2 私有金鑰檔案。這讓您不必在叢集使用者之間共用私有金鑰檔案。 -
因為每個叢集 KDC 管理叢集中節點的身分驗證,因此網路延遲和處理成本對叢集中大量節點的影響可降至最低。
考量與限制
-
如果您要與 Active Directory 領域建立信任,您必須提供當您建立叢集時具備將主體加入網域之許可的 Active Directory 使用者名稱和密碼。
-
跨域信任無法在具有相同名稱的 Kerberos 領域之間建立。
-
跨域信任必須明確建立。例如,如果叢集 A 和叢集 B 都與 KDC 建立跨域信任,他們本質上並不會彼此信任,其應用程式也無法相互進行身分驗證以相互運作。
-
KDC 必須獨立地加以維持和協調,使用者主體的登入資料才能完全相符。
外部 KDC
Amazon EMR 5.20.0 及更高版本支援搭配外部 KDC 的組態。
外部 KDC – MIT KDC
此組態允許一或多個 EMR 叢集使用在 MIT KDC 伺服器中定義和維護的主體。

優點
-
主體管理已整合至單一 KDC。
-
多個叢集可以使用相同 Kerberos 領域中的相同 KDC。如需詳細資訊,請參閱使用多個具有相同 KDC 的叢集的需求。
-
Kerberos 化叢集上的主節點無須承受與維護 KDC 關聯的效能負擔。
考量與限制
-
您必須在對應到 KDC 使用者主體之每個 Kerberos 化叢集主節點的 EC2 執行個體上建立 Linux 使用者,以及每個使用者的 HDFS 目錄。
-
使用者主體必須使用 EC2 私有金鑰檔案和
kinit
登入資料,以使用 SSH 連接到 Kerberos 化叢集。 -
Kerberos 化 EMR 叢集中的每個節點都必須有連到 KDC 的網路路由。
-
Kerberos 化叢集中的每個 節點都會對外部 KDC 帶來身分驗證負擔,因此 KDC 的組態會影響叢集效能。設定 KDC 伺服器的硬體時,請考慮能同時支援的最大 Amazon EMR 節點數。
-
叢集效能取決於 Kerberos 化叢集中節點和 KDC 之間的網路延遲。
-
由於不同的因素相互牽連,疑難排解會比較困難。
外部 KDC – 不同叢集上的主節點
此組態幾乎等同於上述的外部 MIT KDC 實作,除了 KDC 位於 EMR 叢集的主節點上。如需詳細資訊,請參閱叢集專用 KDC (主節點上的 KDC)及教學課程:使用 Active Directory 域設定跨領域信任。

優點
-
主體管理已整合至單一 KDC。
-
多個叢集可以使用相同 Kerberos 領域中的相同 KDC。如需詳細資訊,請參閱使用多個具有相同 KDC 的叢集的需求。
考量與限制
-
您必須在對應到 KDC 使用者主體之每個 Kerberos 化叢集主節點的 EC2 執行個體上建立 Linux 使用者,以及每個使用者的 HDFS 目錄。
-
使用者主體必須使用 EC2 私有金鑰檔案和
kinit
登入資料,以使用 SSH 連接到 Kerberos 化叢集。 -
每個 EMR 叢集中的每個節點都必須有連到 KDC 的網路路由。
-
Kerberos 化叢集中的每個 Amazon EMR 節點都會對外部 KDC 帶來身分驗證負擔,因此 KDC 的組態會影響叢集效能。設定 KDC 伺服器的硬體時,請考慮能同時支援的最大 Amazon EMR 節點數。
-
叢集效能取決於叢集中節點和 KDC 之間的網路延遲。
-
由於不同的因素相互牽連,疑難排解會比較困難。
外部 KDC – 叢集 KDC 位於具有 Active Directory 跨領域信任的不同叢集上
在這個組態中,您先使用與 Active Directory 具有單向跨域信任的叢集專用 KDC,來建立叢集。如需詳細教學,請參閱教學課程:使用 Active Directory 域設定跨領域信任。接著啟動其他叢集,參考具有信任的叢集 KDC 做為外部 KDC。如需範例,請參閱「外部叢集 KDC 搭配 Active Directory 跨領域信任」。這可讓使用外部 KDC 的每個 Amazon EMR 叢集,驗證在 Microsoft Active Directory 域中定義和維護的主體。

優點
-
管理主體已合併至 Active Directory 網域。
-
Amazon EMR 加入 Active Directory 領域,因此無需建立對應至 Active Directory 使用者的 Linux 使用者。您仍必須為每個使用者建立 HDFS 目錄。
-
多個叢集可以使用相同 Kerberos 領域中的相同 KDC。如需詳細資訊,請參閱使用多個具有相同 KDC 的叢集的需求。
-
Active Directory 網域中的使用者主體可以使用
kinit
登入資料來存取 Kerberos 化叢集,無需使用 EC2 私有金鑰檔案。這讓您不必在叢集使用者之間共用私有金鑰檔案。 -
只有一個 Amazon EMR 主節點需負擔維護 KDC 的責任,而且只有該叢集必須使用 Active Directory 憑證來建立 KDC 與 Active Directory 之間的跨領域信任。
考量與限制
-
每個 EMR 叢集中的每個節點都必須有連到 KDC 和 Active Directory 網域控制器的網路路由。
-
每個 Amazon EMR 節點都會對外部 KDC 造成身分驗證負擔,因此 KDC 的組態會影響叢集效能。設定 KDC 伺服器的硬體時,請考慮能同時支援的最大 Amazon EMR 節點數。
-
叢集效能取決於叢集中節點和 KDC 伺服器之間的網路延遲。
-
由於不同的因素相互牽連,疑難排解會比較困難。
使用多個具有相同 KDC 的叢集的需求
多個叢集可以使用相同 Kerberos 領域中的相同 KDC。但是,如果叢集同時執行,則在叢集使用衝突的 Kerberos ServicePrincipal 名稱時,叢集可能會失敗。
如果您的多個並行叢集具有相同的外部 KDC,請確定叢集使用不同的 Kerberos 領域。如果叢集必須使用相同的 Kerberos 領域,請確定叢集在不同的子網路中,而且其 CIDR 範圍不重疊。