觀點 · 資訊分享

Amazon EKS 一個叢集可接 10 個外部 OIDC 登入來源:員工、外包、CI/CD 各走各的身分

AWS 在 8 月 24 日宣布,EKS 叢集現在能同時綁定最多 10 個外部 OIDC 身分提供者,不用再把所有使用者合併成一個來源,也不必自己架身分轉接服務,而且沒有額外費用。

發布
2026-08-24
篇幅
約 4 分鐘 · 1,830 字
結構
7 節 + 3 題常見問題
標籤
#AWS#Amazon EKS#OIDC#Kubernetes
Amazon EKS 一個叢集可接 10 個外部 OIDC 登入來源:員工、外包、CI/CD 各走各的身分

一句話看懂:Amazon EKS 的叢集現在最多可以同時接 10 個外部登入來源(OIDC),員工、外包人員、自動部署系統可以各走各的,不用硬擠進同一個。

EKS 支援多個 OIDC 來源資訊圖卡:一個 EKS 叢集現在能接最多 10 個外部登入來源,不必合併成一個

先用白話講:叢集怎麼知道「你是誰」?

EKS 是 AWS 代管的 Kubernetes 服務,可以想成一個放滿容器的大倉庫。要進倉庫的人很多:公司員工、外包廠商、還有會自動跑的部署機器人。

倉庫門口需要一位警衛來確認身分。OIDC(OpenID Connect)是一套常見的「登入證明」規格,像是你在網站按「用 Google 登入」背後用的就是它。以前 EKS 的警衛可以接受 AWS 本身的帳號(IAM),也可以接外部的 OIDC 登入來源,但外部來源的數量有限;這次放寬到最多 10 個。

發生什麼事

AWS 在 8 月 24 日宣布:EKS 現在支援「每個叢集綁定多個外部 OIDC 身分提供者」,最多 10 個。官方舉的情境很實際:

  • 員工用公司的登入系統
  • 外包人員用另一套
  • CI/CD(自動建置部署)系統再用一套

這些以前可能得先整併成同一個來源,或是自己架一個「身分轉接服務」;現在可以各自直接綁到叢集上。每個來源獨立設定、獨立對應身分,原本的 IAM 登入也繼續能用。

費用方面,官方寫明沒有額外費用,所有提供 EKS 的區域都能用。

有什麼限制?

AWS 的使用指南補充了一些細節(我是 10 月閱讀的版本,數字可能與 8 月當時略有差異):

面向 說明
數量 Kubernetes 1.32 以上的叢集最多 10 個;更舊的版本只能 1 個
設定大小 所有 OIDC 設定合計要小於 12 KB
唯一性 每個來源的網址(issuerUrl)和名稱都不能重複
生效時間 綁定是叢集更新,會進入 UPDATING 狀態,可能要幾分鐘
登入主控台 不能用 OIDC 帳號登入 AWS 主控台
IAM 不能關掉,因為節點加入叢集還是需要它

給開發者的技術細節

設定方式跟以前一樣:在 AWS 管理主控台,或用 AssociateIdentityProviderConfig API(AWS CLI 與 SDK)。用 eksctl 的範例大致如下,只有 name、type、issuerUrl、clientId 是必填:

identityProviders:
  - name: contractors
    type: oidc
    issuerUrl: https://login.example.com
    clientId: kubernetes
    usernameClaim: email
    usernamePrefix: "contractor:"
    groupsClaim: groups
    groupsPrefix: "contractor:"
    requiredClaims:
      hd: example.com

多個來源同時存在時,官方文件給了三個建議:

  • 一定要設前綴:每個來源設不同的 usernamePrefix 與 groupsPrefix,避免兩個來源產生同名的使用者或群組,造成權限混淆
  • 驗證權杖內容:用 requiredClaims 限制必須帶有哪些欄位,只接受你授權的權杖
  • 權杖只放必要資訊:減少萬一外洩時暴露的內容

另外,前綴不可以使用 system: 開頭,這是 Kubernetes 保留的名稱。

我的看法

這個功能對小團隊比較像「把麻煩的事情拿掉」:以前如果客戶公司有自己的員工登入系統,加上我們這邊接案人員另一套,就得想辦法合併或自己架轉接器。現在可以各自綁,在權限設計上清楚得多。

不過它也有代價:來源一多,命名衝突與權限混淆的風險就跟著上來。我會先把前綴規則定好,再開始加來源;而且每個來源只給最小的群組權限,不要因為「反正都是登入」就圖方便共用同一組權限。

自架 Kubernetes 的人,這個功能是託管服務的專屬便利,但設計概念值得參考:登入來源越多,越需要用前綴與必要欄位把門管好。

名詞小辭典

  • Kubernetes(K8s):管理大量容器的開源系統,EKS 是 AWS 代管的版本。
  • OIDC:一種身分驗證規格,讓你用第三方登入來源證明「我是誰」。
  • IAM:AWS 自己的身分與權限管理系統。
  • CI/CD:自動測試、建置並部署程式的流程,常由機器人帳號執行。

資料來源

常見問題

要怎麼綁定多個 OIDC 來源?
和以前一樣,用 AWS 管理主控台,或透過 AWS CLI、SDK 呼叫 AssociateIdentityProviderConfig API,每個來源各綁一次。
我的叢集版本太舊也能用嗎?
EKS 使用指南寫的是 Kubernetes 1.32 以上最多 10 個,更舊的版本只能綁 1 個。該頁面後續可能更新,請以官方文件為準。
多個來源會不會有權限混淆的問題?
有可能。官方建議為每個來源設定不同的 usernamePrefix 與 groupsPrefix,並用 requiredClaims 限制權杖必須帶有的欄位。
LINE