ArgoCD

Argo CD 管理者パスワードリセット手順と安全対策

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Argo CD のバージョン確認と管理者パスワードの保存場所

Argo CD を運用する上で、まずは 現在稼働中のバージョンadmin パスワードがどこに格納されているか を正確に把握しておくことが重要です。バージョンが古いと機能制限や既知の脆弱性が残っている可能性がありますし、パスワード保存先を誤解するとリセット作業が失敗します。本セクションでは、Kubernetes 上で簡単に確認できる手順と、公式ドキュメントへの参照情報をまとめます。

バージョン取得コマンド

パスワード保存場所

項目 内容
Namespace Argo CD をインストールした名前空間(デフォルトは argocd
Secret 名 argocd-initial-admin-secret
フィールド .data.passwordBase64 エンコードされた平文 が格納されています(ハッシュ化されていません)。
取得例 kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 --decode

重要: argocd-initial-admin-secretpassword フィールドはハッシュ化された値ではなく、Base64 でエンコードした平文です。公式ドキュメントでも同様の取り扱いが示されています(https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/#admin-password)。


kubectl を用いたパスワードリセット手順

kubectl のみで完結できるリセット方法は、外部ツールに依存しない点が最大の利点です。ただし Secret 削除によるリセットは「初回ログイン時」だけ有効 であり、既に admin パスワードを変更済みの場合は別手順(CLI やマニフェスト直接編集)が必要になることに注意してください。

1. 現在の初期パスワードを確認する

  • このコマンドは ログインできる状態でも 現在保存されている初期パスワード(平文)を取得します。
  • パスワードが既に変更されていても、Secret に残っている値は「初期」パスワードである点に留意してください。

2. Secret を削除して再生成させる

  • 削除後、argocd-server Pod が自動的に再起動し、新しい argocd-initial-admin-secret を作成します。
  • 再起動が確認できない場合は手動でロールアウトしてください。

注意: 既に admin パスワードを変更している環境では、上記削除だけでは UI/CLI の認証が失敗します。その場合は「CLI でのパスワード更新」または「Secret の直接パッチ適用」を実施してください(次節参照)。

3. 再生成された初期パスワードを取得する

  • 出力された文字列が 新しい初期パスワード です。以降はこのパスワードで UI/CLI にログインできます。

参考(公式): https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/#reset-admin-password


Argo CD CLI でのリセット方法

Argo CD が外部からアクセス可能な環境(Port‑Forward、Ingress 等)がある場合は、argocd コマンドを使って安全にパスワードを変更できます。このコマンドは Argo CD v1.6 以降でのみサポートされており、古いバージョンでは利用できませんので、事前にバージョン互換性を確認してください。

前提条件の確認

1. CLI でのログイン

  • <initial> は前節で取得した 新しい初期パスワード(または現在有効なパスワード)です。

2. パスワードを変更する

  • --current-password に現在のパスワード、--new-password に設定したい新しいパスワードを入力します。
  • コマンド実行後、Argo CD は自動的に argocd-initial-admin-secret を更新し、以降の認証は新しいパスワードが使用されます。

補足: CLI が内部で Secret を更新するため、手作業で Secret を触る必要はありません。公式ガイドでも同様の流れが示されています(https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/#changing-the-admin-password)。


Helm でインストールした環境における admin パスワード再生成手順

Helm を使って Argo CD をデプロイした場合、values.yamladmin.passwordOverride が設定されていることがあります。この項目が残っていると Secret の自動再生成が抑制されるため、削除または空文字に上書きする必要があります。

1. 現在の Helm 設定を取得する

  • <release-name> は Argo CD のリリース名(例: argo-cd)です。

2. passwordOverride を無効化する

current-values.yaml をエディタで開き、以下の行を削除または空文字に変更します。

  • 空文字に上書きしたい場合は --set admin.password= オプションでも構いません。

3. Helm アップグレードで Secret を再生成させる

  • アップグレード完了後、argocd-initial-admin-secret が新たに作成されます。
  • 再生成されたパスワードは前述の kubectl で取得 のコマンドで確認してください。

参考(公式): https://argo-cd.readthedocs.io/en/stable/operator-manual/helm/


リセット後の安全対策とトラブルシューティング

パスワードをリセットしたら、残存する機密情報や権限設定が過剰になっていないか確認し、再発防止策を講じることが必須です。本節では、具体的なチェック項目と代表的なトラブルケースの対処法をまとめます。

1. Secret と RBAC の徹底確認

作業 コマンド例 確認ポイント
旧 Secret が残っていないか kubectl get secret -n argocd argocd-initial-admin-secret 以外に admin パスワードが含まれる Secret が無いこと
RoleBinding の権限見直し kubectl get rolebinding -n argocd -o yaml 必要最小限のユーザー・ServiceAccount に絞られているか

2. 強固なパスワードポリシーと定期ローテーション

  • 長さ: 12文字以上
  • 構成: 大文字・小文字・数字・記号を必ず含める
  • ローテーション: 90日ごとに argocd account update-password を自動化(CI/CD パイプラインで実行)

公式ガイドのベストプラクティスは https://argo-cd.readthedocs.io/en/stable/operator-manual/security/#password-policy に掲載されています。

3. よくあるトラブルと対処法

症状 主な原因 推奨対処
「Invalid credentials」エラーが出る Secret が削除されず再生成に失敗した kubectl delete secret argocd-initial-admin-secret -n argocd 後、Pod 再起動を確認
パスワード変更直後にログアウトする Cookie/CSRF トークンが無効化された ブラウザのキャッシュ・Cookie を削除し、再度 argocd login
argocd account update-password がエラーになる CLI とサーバーのバージョン不一致(v1.6 未満) argocd version で確認し、CLI を公式手順で最新に更新

4. 監査ログの活用

Argo CD の audit log(argocd-server--loglevel=info)を有効化しておくと、誰がいつパスワード変更・Secret 削除を行ったか追跡できます。設定例は公式ドキュメント(https://argo-cd.readthedocs.io/en/stable/operator-manual/audit/)をご参照ください。


まとめ

  • バージョン確認: kubectl get deployment argocd-server で稼働中のバージョンを把握し、v1.6 以上かつ公式ドキュメントに従って管理対象とする。
  • パスワード保存場所: argocd-initial-admin-secret.data.password は Base64 エンコードされた平文である点を認識。
  • kubectl リセット: Secret 削除 → Pod 再起動 → 新しい初期パスワード取得。ただし、admin パスワードが既に変更されている場合は別手順(CLI 等)が必要。
  • CLI リセット: argocd account update-password は v1.6 以降で利用可能。公式ドキュメントのバージョン要件を必ず確認すること。
  • Helm 環境: admin.passwordOverride を除去し、Helm upgrade で Secret 再生成をトリガー。
  • 安全対策: Secret の完全削除、RBAC 最小化、強固なパスワードポリシーと定期ローテーション、監査ログの有効化を実施。
  • トラブルシューティング: 上記表に示した典型的なエラーと対処法を手元に置いておくと、障害復旧が迅速になります。

これらの手順とベストプラクティスを遵守すれば、Argo CD の管理者パスワード忘れによる運用停止リスクを大幅に低減し、セキュアで安定した継続的デプロイ環境を維持できます。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-ArgoCD