協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
控制對叢集 API 伺服器端點的網路存取
本主題可協助您啟用 Amazon EKS 叢集 Kubernetes API 伺服器端點和限制的私有存取,或完全停用從網際網路的公有存取。
建立新的叢集時,Amazon EKS 會為您用來與叢集通訊的受管 Kubernetes API 伺服器建立端點 (使用 Kubernetes 管理工具,例如 kubectl
)。預設情況下,此 API 伺服器端點對網際網路公開,而 API 伺服器的存取是使用 AWS Identity and Access Management (IAM) 和原生Kubernetes角色型存取控制
您可啟用 Kubernetes API 伺服器的私有存取,讓節點和 API 伺服器間的所有通訊都不會離開 VPC。您可以限制可以從網際網路存取 API 伺服器的 IP 地址,或完全停用對 API 伺服器的網際網路存取。
注意
由於此端點適用於 Kubernetes API 伺服器,而不是用於與 AWS API 通訊的傳統 AWS PrivateLink 端點,因此在 Amazon VPC 主控台中不會顯示為端點。
啟用叢集的端點私有存取時,Amazon EKS 會代表您建立 Route 53 私有託管區域,並將其與您叢集的 VPC 建立關聯。此私有託管區域由 Amazon EKS 管理,不會顯示在帳戶的 Route 53 資源中。若要讓私有託管區域正確將流量路由到 API 伺服器,您的 VPC 必須將 enableDnsHostnames
和 enableDnsSupport
設為 true
,且 VPC 設定的 DHCP 選項必須在網域名稱伺服器清單中包含 AmazonProvidedDNS
。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的更新 VPC 的 DNS 支援。
建立新的叢集時,可定義您 API 伺服器端點的存取要求,您也可隨時更新叢集的 API 伺服器端點存取。
修改叢集端點存取
使用本節所述程序來修改現有叢集的端點存取。下表說明支援的 API 伺服器端點存取組合及其相關的行為。
API 伺服器端點存取選項 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
端點公有存取 | 端點私有存取 | Behavior (行為) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
已啟用 | 已停用 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
已啟用 | 已啟用 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
已停用 | 已啟用 |
|
您可以使用或修改叢集 API 伺服器端點存 AWS Management Console 取 AWS CLI。
存取僅限私有 API 伺服器
若您已停用叢集 Kubernetes API 伺服器端點的公有存取,將只能在 VPC 內或連接的網路存取 API 伺服器。以下是存取 Kubernetes API 伺服器端點的幾種可能方法:
- 連線網路
-
使用 AWS 傳輸閘道或其他連線選項,將您的網路連線到 VPC,然後使用連線網路中的電腦。您必須確認 Amazon EKS 控制平面安全群組包含的規則允許連接埠 443 上來自連接網路的傳入流量。
- Amazon EC2 堡壘主機
-
您可以在叢集 VPC 中的公有子網路啟動 Amazon EC2 執行個體,然後透過 SSH 登入該執行個體,以執行
kubectl
命令。如需詳細資訊,請參閱 AWS上的 Linux 堡壘主機。您必須確認 Amazon EKS 控制平面安全群組包含的規則允許連接埠 443 上來自堡壘主機的傳入流量。如需詳細資訊,請參閱 Amazon EKS 安全群組與考量。 設定堡壘主機的
kubectl
時,請確認您使用的 AWS 憑證已映射至叢集的 RBAC 組態,或者將堡壘會使用的 IAM 主體新增至 RBAC 組態,之後再移除端點的公有存取。如需詳細資訊,請參閱 授與IAM使用者和角色對 Kubernetes 的存取權 APIs 及 未經授權或存取遭拒 (kubectl)。 - AWS Cloud9 IDE
-
AWS Cloud9 是雲端整合式開發環境 (IDE),讓您只要使用瀏覽器即可撰寫、執行和偵錯程式碼。您可以在叢集的 VPC 中建立 AWS Cloud9 IDE,並使用 IDE 與叢集通訊。如需詳細資訊,請參閱在 AWS Cloud9中建立環境。您必須確認 Amazon EKS 控制平面安全群組包含的規則允許連接埠 443 上來自 IDE 安全群組的傳入流量。如需詳細資訊,請參閱 Amazon EKS 安全群組與考量。
kubectl
為 AWS Cloud9 IDE 設定時,請務必使用已對應至叢集 RBAC 組態的 AWS 認證,或在移除端點公用存取權之前,將 IDE 將使用的 IAM 主體新增至 RBAC 組態。如需更多詳細資訊,請參閱 授與IAM使用者和角色對 Kubernetes 的存取權 APIs 及 未經授權或存取遭拒 (kubectl)。