このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
Argo CD のプライベートエンドポイントアクセスを設定する
デフォルトでは、パブリックインターネット経由で Argo CD エンドポイントにアクセスできます。VPC と Argo CD エンドポイント間のトラフィックがパブリックインターネットを経由せずに AWS ネットワーク内に留まるようにプライベートエンドポイントアクセスを設定できます。
プライベートアクセスを有効にすると、AWS はドメインネームシステム (DNS) を更新して、Argo CD エンドポイントのホスト名が VPC エンドポイントに関連付けられたプライベート IP アドレスに解決されるようにします。Argo CD エンドポイントにアクセスするには、これらのプライベート IP へのネットワーク接続 (VPC、仮想プライベートネットワーク (VPN) 接続、または AWS Direct Connect 経由) がある必要があります。
プライベート IP VPN の仕組み
Argo CD 機能のプライベートアクセスを設定する場合:
-
VPC 内の
com.amazonaws.region-code.eks-capabilitiesサービス用の VPC エンドポイントを作成します。 -
Argo CD 機能を作成または更新するときに、VPC エンドポイント ID を指定します。
-
AWS は、Argo CD エンドポイントのホスト名が VPC エンドポイントに関連付けられたプライベート IP アドレスに解決されるように DNS レコードを設定します。
-
Argo CD エンドポイントへのすべてのトラフィックは、VPC エンドポイントを介してプライベートにフローします。
前提条件
-
アクティブな Argo CD 機能を持つ Amazon Elastic Kubernetes Service (Amazon EKS) クラスター (Argo CD 機能を作成する を参照)
-
サブネット、セキュリティグループ、インターフェイス VPC エンドポイントなど、Amazon VPC の概念に精通していること
-
プライベートアクセスが必要なアベイラビリティーゾーンにサブネットを持つ VPC
-
AWS コマンドラインインターフェイス (AWS CLI) バージョン
2.12.3以降
ステップ 1: eks-capabilities 用の VPC エンドポイントを作成する
com.amazonaws.region-code.eks-capabilities サービス用のインターフェイス VPC エンドポイントを作成します。
重要
VPC エンドポイントにアタッチされたセキュリティグループがインバウンド HTTPS (ポート 443) トラフィックを許可していることを確認します。トラフィックソースには、ユーザーまたはアプリケーションが Argo CD エンドポイントにアクセスするすべてのネットワークが含まれている必要があります。
ステップ 2: Argo CD 機能でプライベートアクセスを設定する
VPC エンドポイントが利用可能になったら、それを使用するように Argo CD 機能を設定します。新しい機能を作成するとき、または既存の機能を更新することで、プライベートアクセスを設定できます。
プライベートアクセスで新しい機能を作成する
create-capability コマンドに networkAccess を含めます。region-code、my-cluster、およびその他のプレースホルダーを自分の値に置き換えます。
aws eks create-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd \ --type ARGOCD \ --role-arnarn: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-code、my-cluster、my-argocd、および VPC エンドポイント ID を自分の値に置き換えます。
aws eks update-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-namemy-argocd\ --configuration '{ "argoCd": { "networkAccess": { "vpceIds": ["vpce-0123456789abcdef0"] } } }'
機能の更新が完了するまで待機します。
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-namemy-argocd\ --query 'capability.status' \ --output text
更新が完了すると、ステータスが ACTIVE に戻ります。
ステップ 3: DNS の解決と接続を確認する
プライベートアクセスが設定された状態で機能がアクティブになったら、Argo CD エンドポイントのホスト名がプライベート IP アドレスに解決されていることを確認します。
任意のネットワークから、次の nslookup コマンドを実行します:
nslookupyour-argocd-endpoint.eks-capabilities.region-code.amazonaws.com
レスポンスには、プライベート IP アドレス (例えば、10.x.x.x や 172.16.x.x などの RFC 1918 範囲のアドレス) が表示されます。
エンドポイントがプライベート IP に解決されない場合は、以下を確認します:
-
機能ステータスが
ACTIVEである (AWS は、この機能がアクティブになった後に DNS レコードを作成します) -
VPC エンドポイントが
available状態である -
機能設定の VPC エンドポイント ID が、作成したエンドポイントと一致する
注記
プライベートアクセスを設定すると、Argo CD エンドポイントのホスト名はプライベート IP アドレスに解決されます。接続するには、VPC、VPN 接続、または AWS Direct Connect を介して、これらのプライベート IP へのネットワーク接続がある必要があります。
プライベートアクセスを無効にする
プライベートアクセスを無効にし、パブリックエンドポイントアクセスを復元するには、VPC エンドポイント ID を削除するように機能を更新します。
aws eks update-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-namemy-argocd\ --configuration '{ "argoCd": { "networkAccess": { "vpceIds": [] } } }'
考慮事項
-
プライベートアクセスを有効にすると、Argo CD エンドポイントには VPC 内またはそれに接続されているネットワーク内からのみ到達できます (VPN や AWS Direct Connect など)。
-
プライベートアクセスが機能するには、VPC エンドポイントが
available状態のままである必要があります。VPC エンドポイントを削除すると、新しいエンドポイントを作成して機能を更新するまで、Argo CD エンドポイントにアクセスできなくなります。 -
AWS は現在、
eks-capabilitiesサービスエンドポイントの VPC エンドポイントポリシーをサポートしていません。