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