View a markdown version of this page

設定 Argo CD 的私有端點存取 - Amazon EKS

協助改進此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Argo CD 的私有端點存取

根據預設,您可以透過公有網際網路存取 Argo CD 端點。您可以設定私有端點存取,讓 VPC 和 Argo CD 端點之間的流量保持在 AWS 網路中,而無需透過公有網際網路。

當您啟用私有存取時, 會 AWS 更新網域名稱系統 (DNS),以便 Argo CD 端點主機名稱解析為與您的 VPC 端點相關聯的私有 IP 地址。您必須擁有這些私有 IPs網路連線能力 (透過 VPC、虛擬私有網路 (VPN) 連線或 AWS Direct Connect),才能存取 Argo CD 端點。

私有存取的運作方式

當您為 Argo CD 功能設定私有存取時:

  1. 您可以在 VPC 中為com.amazonaws.region-code.eks-capabilities服務建立 VPC 端點。

  2. 您可以在建立或更新 Argo CD 功能時提供 VPC 端點 ID。

  3. AWS 設定 DNS 記錄,以便 Argo CD 端點主機名稱解析為與您的 VPC 端點相關聯的私有 IP 地址。

  4. Argo CD 端點的所有流量都會私下流經 VPC 端點。

先決條件

  • 具有作用中 Argo CD 功能的 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集 (請參閱 建立 Argo CD 功能)

  • 熟悉 Amazon VPC 概念,包括子網路、安全群組和界面 VPC 端點

  • 在您想要私有存取的可用區域中具有子網路的 VPC

  • AWS 命令列界面 (AWS CLI) 版本 2.12.3 或更新版本

步驟 1:為 eks-capabilities 建立 VPC 端點

建立 com.amazonaws.region-code.eks-capabilities服務的介面 VPC 端點。

Console
  1. 開啟 Amazon VPC 主控台

  2. 在左側導覽窗格中選擇 Endpoints (端點)。

  3. 選擇建立端點

  4. 針對服務類別,選擇 AWS 服務

  5. 在搜尋欄位中,輸入 eks-capabilities並選取 com.amazonaws.region-code.eks-capabilities

  6. 針對 VPC,選取您要從中存取 Argo CD 端點的 VPC。

  7. 對於子網路,請在您要私有存取的每個可用區域中選取子網路。

  8. 針對安全群組,選取允許來自用戶端網路的 HTTPS (連接埠 443) 傳入流量的安全群組。

  9. 選擇建立端點

  10. 請記下 VPC 端點 ID (例如 vpce-0123456789abcdef0)。

CLI

region-code 取代為您的 AWS 區域、將 vpc-id 取代為您的 VPC ID、將 subnet-id-1 subnet-id-2 取代為不同可用區域中的子網路 IDs,並將 sg-id 取代為允許 HTTPS 傳入流量的安全群組。

aws ec2 create-vpc-endpoint \ --region region-code \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.region-code.eks-capabilities \ --vpc-id vpc-id \ --subnet-ids subnet-id-1 subnet-id-2 \ --security-group-ids sg-id

記下回應中的 VpcEndpointId

重要

確定連接到 VPC 端點的安全群組允許傳入 HTTPS (連接埠 443) 流量。流量來源必須包含您的使用者或應用程式存取 Argo CD 端點的所有網路。

步驟 2:在 Argo CD 功能上設定私有存取

在 VPC 端點可用後,設定 Argo CD 功能來使用它。您可以在建立新功能或更新現有功能時設定私有存取。

建立具有私有存取權的新功能

create-capability命令networkAccess中包含 。將 region-codemy-cluster 和其他預留位置取代為您的值:

aws eks create-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --type ARGOCD \ --role-arn arn:aws:iam::111122223333:role/ArgoCDCapabilityRole \ --configuration '{ "argoCd": { "awsIdc": { "idcInstanceArn": "arn:aws:sso:::instance/ssoins-1234567890abcdef", "idcRegion": "idc-region-code" }, "rbacRoleMappings": [{ "role": "ADMIN", "identities": [{ "id": "user-id", "type": "SSO_USER" }] }], "networkAccess": { "vpceIds": ["vpce-0123456789abcdef0"] } } }'

更新現有功能以啟用私有存取

region-codemy-clustermy-argocd 和 VPC 端點 ID 取代為您的值:

aws eks update-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --configuration '{ "argoCd": { "networkAccess": { "vpceIds": ["vpce-0123456789abcdef0"] } } }'

等待功能更新完成:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.status' \ --output text

狀態會在更新完成ACTIVE時傳回 。

步驟 3:驗證 DNS 解析和連線

功能啟用並設定私有存取後,請確認 Argo CD 端點主機名稱解析為私有 IP 地址。

從任何網路執行下列nslookup命令:

nslookup your-argocd-endpoint.eks-capabilities.region-code.amazonaws.com

回應應該會顯示私有 IP 地址 (例如,RFC 1918 範圍內的地址,例如 10.x.x.x172.16.x.x)。

如果端點未解析為私有 IPs,請確認:

  • 功能狀態為 ACTIVE(在功能變為作用中後AWS 建立 DNS 記錄)

  • VPC 端點處於 available 狀態

  • 功能組態中的 VPC 端點 ID 符合您建立的端點

注意

設定私有存取後,Argo CD 端點主機名稱會解析為私有 IP 地址。若要連線,您必須透過 VPC、VPN 連線或 AWS Direct Connect 與這些私有 IPs 建立網路連線。

停用私有存取

若要停用私有存取並還原公有端點存取,請更新 功能以移除 VPC IDs:

aws eks update-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --configuration '{ "argoCd": { "networkAccess": { "vpceIds": [] } } }'

考量事項

  • 啟用私有存取後,只能從 VPC 內或與其連線的網路 (例如,透過 VPN 或 AWS Direct Connect) 存取 Argo CD 端點。

  • VPC 端點必須保持 available 狀態,才能私有存取 函數。如果您刪除 VPC 端點,您會失去 Argo CD 端點的存取權,直到您建立新的端點並更新功能為止。

  • AWS 目前不支援eks-capabilities服務端點的 VPC 端點政策。