協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS PrivateLink 存取 Amazon EKS
您可以使用 AWS PrivateLink 在 VPC 和 Amazon Elastic Kubernetes Service 之間建立私有連線。您可以像在 VPC 中一樣存取 Amazon EKS,無需使用網際網路閘道、NAT 裝置、VPN 連接或 AWS Direct Connect 連接。VPC 中的執行個體無需公有 IP 位址,即可存取 Amazon EKS。
您可以透過建立採用 AWS PrivateLink 技術的介面端點來建立此私有連線。我們會在您為介面端點啟用的每個子網中建立端點網路介面。這些是請求者管理的網路介面,可作為目的地為 Amazon EKS 之流量的進入點。
如需詳細資訊,請參閱《 AWS PrivateLink 指南》中的透過 PrivateLink 存取 AWS 服務。 AWS PrivateLink
開始之前
開始之前,請確定您已執行下列任務:
-
《 AWS PrivateLink 指南》中的檢閱使用介面 VPC 端點存取 AWS 服務
考量事項
-
支援與限制:Amazon EKS 介面端點支援透過 VPC 安全地存取全部 Amazon EKS API 動作,但同時有特定限制:不支援存取 Kubernetes API,因為他們具有單獨的私有端點,因此,您不能將 Amazon EKS 設定為僅可透過介面端點存取。IAM 角色用於服務帳戶 (IRSA) 的叢集 OIDC 探索和 JWKS 端點,也會從具有其服務名稱和存取控制行為的獨立介面端點提供;請參閱 使用 AWS PrivateLink 存取叢集 OIDC 端點。
-
定價:使用 Amazon EKS 的界面端點會產生 standard AWS PrivateLink 費用:每個可用區域中佈建的每個端點的每小時費用、透過端點的流量的資料處理費用。如需了解詳細資訊,請參閱 AWS PrivateLink 定價
。 -
安全與存取權控制:建議透過這些額外的組態來增強安全性及控制存取權 – 藉助 VPC 端點政策,透過介面端點來控制對 Amazon EKS 的存取、關聯安全群組與端點網路介面來管理流量、使用 VPC 流量日誌來擷取及監控傳入與傳出介面端點的 IP 流量,以及可將日誌發布至 Amazon CloudWatch 或 Amazon S3。如需了解詳細資訊,請參閱藉助端點政策來控制對 VPC 端點的存取權,以及藉助 VPC 流量日誌來記錄 IP 流量日誌。
-
連線選項:界面端點使用內部部署存取 (使用 AWS Direct Connect 或 AWS Site-to-Site VPN 將內部部署資料中心連接至 VPC 與介面端點) 或透過跨 VPC 連線 (使用 AWS Transit Gateway 或 VPC 對等互連將其他 VPCs 與介面端點連接至 VPC,將流量保留在 AWS 網路內) 提供彈性的連線選項。
-
IP 版本支援:2024 年 8 月之前建立的端點僅支援 IPv4 (使用 eks.region.amazonaws.com)。2024 年 8 月之後建立的全新端點則支援雙重堆疊 IPv4 和 IPv6 (例如 eks.region.amazonaws.com、eks.region.api.aws)。
-
區域可用性:EKS API 的 AWS PrivateLink 不適用於亞太區域 (馬來西亞) (ap-southeast-5)、亞太區域 (泰國) (ap-southeast-7)、墨西哥 (中部) (mx-central-1) 和亞太區域 (台北) (ap-east-2) 區域。 AWS PrivateLink 對 eks-auth (EKS Pod Identity) 的支援適用於亞太區域 (馬來西亞) (ap-southeast-5) 區域。叢集 OIDC 端點 (
com.amazonaws.region-code.oidc-eks) 的 AWS PrivateLink 適用於大多數 AWS 區域。
建立 Amazon VPC 的介面端點
您可以使用 Amazon VPC 主控台或 AWS 命令列界面 (AWS CLI) 來建立 Amazon EKS 的界面端點。如需詳細資訊,請參閱 AWS PrivateLink 指南中的建立 VPC 端點。
使用以下服務名稱為 Amazon EKS 建立介面端點:
EKS API
-
com.amazonaws.region-code.eks
-
com.amazonaws.region-code.eks-fips (適用於 FIPS 相容端點)
EKS 驗證 API (EKS Pod 身分識別)
-
com.amazonaws.region-code.eks-auth
EKS 叢集 OIDC 端點 (IRSA 探索/JWKS)
-
com.amazonaws.region-code.oidc-eks
此端點的存取控制行為與 EKS API 端點不同。如需詳細資訊,請參閱使用 AWS PrivateLink 存取叢集 OIDC 端點。
適用於 Amazon EKS 介面端點的私有 DNS 功能
預設針對 Amazon EKS 和其他 AWS 服務的介面端點啟用的私有 DNS 功能,可使用預設的區域 DNS 名稱來促進安全且私有的 API 請求。此功能可確保透過私有 AWS 網路的界面端點路由 API 呼叫,從而增強安全性和效能。
當您為 Amazon EKS 或其他 AWS 服務建立介面端點時,私有 DNS 功能會自動啟用。如需啟用,需要藉由設定特定屬性來正確設定 VPC:
-
enableDnsHostnames:允許 VPC 內的執行個體具有 DNS 主機名稱。
-
enableDnsSupport:啟用整個 VPC 的 DNS 解析。
若要了解檢查或修改這些設定的逐步說明,請參閱檢視並更新 VPC 的 DNS 屬性。
DNS 名稱與 IP 位址類型
若啟用私有 DNS 功能,您可使用特定 DNS 名稱來連接至 Amazon EKS,並且這些選項可隨時間推移而演進:
-
eks.region.amazonaws.com:傳統 DNS 名稱,僅解析為 2024 年 8 月之前的 IPv4 位址。針對更新至雙重堆疊的現有端點,此名稱解析為 IPv4 與 IPv6 位址。
-
eks.region.api.aws:適用於 2024 年 8 月之後建立的新端點,此雙重堆疊 DNS 名稱解析為 IPv4 與 IPv6 位址。
在 2024 年 8 月之後,新介面端點帶有兩個 DNS 名稱,並且您可選擇雙重堆疊 IP 位址類型。若是現有端點,更新至雙重堆疊會修改 eks.region.amazonaws.com,以支援 IPv4 與 IPv6。
使用私有 DNS 功能
一旦設定完成,私有 DNS 功能即可整合至工作流程,提供以下功能:
-
API 請求:依據端點的設定,使用預設的區域性 DNS 名稱
eks.region.amazonaws.com或eks.region.api.aws,向 Amazon EKS 發出 API 請求。 -
應用程式相容性:現有應用程式呼叫 EKS API,無須任何變更即可善用此功能。
-
具有雙堆疊的 AWS CLI:若要搭配 CLI AWS 使用雙堆疊端點,請參閱 AWS SDKs和工具參考指南中的雙堆疊和 FIPS 端點組態。
-
自動路由:對 Amazon EKS 預設服務端點進行任何呼叫,都會透過介面端點自動引導,從而確保私有、安全的連接。
使用 AWS PrivateLink 存取叢集 OIDC 端點
每個 Amazon EKS 叢集都會在其 OIDC 發行者 URL 上發佈公有 OpenID Connect (OIDC) 探索文件和 JSON Web 金鑰集 (JWKS)。服務帳戶的 IAM 角色 (IRSA) 使用此端點來發佈叢集的公有簽署金鑰。設定 IRSA 或驗證字符的工具會直接從此端點擷取金鑰。
您可以使用 AWS PrivateLink 從您的 VPC 私下到達此 OIDC 端點,無需網際網路輸出。這適用於需要傳入 OIDC 端點的私有或無輸出 VPCs,例如,建立叢集的 IAM OIDC 身分提供者 (eksctl、Terraform 或 AWS CLI),或在 VPC 內執行您自己的字符驗證程式。先前,到達此端點需要網際網路存取或 DNS 解決方法 (請參閱 GitHub 上的 container-roadmap#2038
使用下列服務名稱建立叢集 OIDC 端點的介面端點:
-
com.amazonaws.region-code.oidc-eks
考量事項
-
此端點不支援 VPC 端點政策。OIDC 探索和 JWKS 文件會以匿名方式提供。這是 OpenID Connect 規格的必要項目,也是 IRSA 的運作方式:驗證程式在不顯示登入資料的情況下擷取公有金鑰。由於請求沒有 IAM 主體或動作,因此 VPC 端點政策沒有可評估的項目。此端點僅接受預設的完整存取政策。控制誰可以使用端點網路介面上的安全群組和子網路路由來到達端點。
-
私有連線不是授權界限。透過 AWS PrivateLink 到達 OIDC 端點會將此流量保留在 AWS 網路上 — 它本身不會控制誰可以擔任 IAM 角色。提供的資料是公有金鑰材料。擔任角色的信任政策會強制執行 IRSA 授權,而不是用於到達 OIDC 端點的網路路徑。當工作負載呼叫 時,就會發生此強制執行
sts:AssumeRoleWithWebIdentity。控制哪些工作負載可以使用角色的信任政策中的aud和sub條件擔任角色;請參閱將 IAM 角色指派給 Kubernetes 服務帳戶。 -
AWS STS 會在自己的路徑上驗證權杖。此端點不會影響 AWS STS 驗證 IRSA 字符的方式。當工作負載呼叫 時
AssumeRoleWithWebIdentity,STS 會從內部擷取叢集的 JWKS AWS,而不是透過 VPC 或此端點。建立此端點或覆寫 VPC 中的 OIDC DNS 不會變更權杖驗證。若要同時保持工作負載的AssumeRoleWithWebIdentity呼叫私有,請建立 AWS STS 介面端點並分別設定區域 STS 端點;請參閱設定服務帳戶 AWS 的安全字符服務端點。 -
定價:需支付 Standard AWS PrivateLink 費用。請參閱 AWS PrivateLink 定價
。
私有 DNS 和雙堆疊名稱
每個叢集都有一個 OIDC 發行者主機名稱,由叢集的 IP 系列決定。IPv4 叢集預設為使用 oidc.eks.region-code.amazonaws.com。IPv6 叢集使用雙堆疊主機名稱 oidc-eks.region-code.api.aws,可解析為 IPv4 和 IPv6 地址。 AWS 在中國區域中,雙堆疊主機名稱為 oidc-eks---region-code---api.amazonwebservices.com.rproxy.goskope.com.cn。
介面端點會註冊這兩個主機名稱。啟用私有 DNS 時 (預設值),每個主機名稱都會解析為您的介面端點。因此,叢集的發行者 URL 會解析為端點,無論叢集使用oidc.eks.region-code.amazonaws.com主機名稱還是雙堆疊主機名稱。遵循字符發行者 URL 來擷取探索文件的用戶端,而且 JWKS 在這兩種情況下都私下到達端點。