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 アドレスに解決されるようにします。Argo CD エンドポイントにアクセスするには、これらのプライベート IP へのネットワーク接続 (VPC、仮想プライベートネットワーク (VPN) 接続、または AWS Direct Connect 経由) がある必要があります。

プライベート IP VPN の仕組み

Argo CD 機能のプライベートアクセスを設定する場合:

  1. VPC 内の com.amazonaws.region-code.eks-capabilities サービス用の VPC エンドポイントを作成します。

  2. Argo CD 機能を作成または更新するときに、VPC エンドポイント ID を指定します。

  3. AWS は、Argo CD エンドポイントのホスト名が VPC エンドポイントに関連付けられたプライベート IP アドレスに解決されるように DNS レコードを設定します。

  4. 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 エンドポイントを作成します。

Console
  1. Amazon VPC コンソール を開きます。

  2. 左のナビゲーションペインで [エンドポイント] を選択してください。

  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 を異なるアベイラビリティーゾーンのサブネット ID に、および 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 アドレス (例えば、10.x.x.x172.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 \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --configuration '{ "argoCd": { "networkAccess": { "vpceIds": [] } } }'

考慮事項

  • プライベートアクセスを有効にすると、Argo CD エンドポイントには VPC 内またはそれに接続されているネットワーク内からのみ到達できます (VPN や AWS Direct Connect など)。

  • プライベートアクセスが機能するには、VPC エンドポイントが available 状態のままである必要があります。VPC エンドポイントを削除すると、新しいエンドポイントを作成して機能を更新するまで、Argo CD エンドポイントにアクセスできなくなります。

  • AWS は現在、eks-capabilities サービスエンドポイントの VPC エンドポイントポリシーをサポートしていません。