AWS Parameter Storeを使用したWindowsで動作するパスワードマネージャーです。 パスワード情報をAWS上で安全に管理し、デスクトップアプリケーションから簡単にアクセスできます。
- パスワード情報の安全な管理(AWS Parameter Store使用)
- パスワード情報の登録・編集・削除
- クリップボードへのコピー機能
- パスワードのマスク表示
- 自動ログアウト機能
- AWS認証情報の暗号化保存
- Python 3.10以上
- AWS アカウント
- AWS CLI(インフラストラクチャのセットアップ用)
- Git(ソースコードのクローン用)
password-manager/
├── src/ # アプリケーションのソースコード
│ ├── config/ # 設定ファイル
│ ├── ui/ # GUI関連のコード
│ ├── utils/ # ユーティリティ関数
│ └── main.py # アプリケーションのエントリーポイント
├── infrastructure/ # インフラストラクチャ設定
│ └── password-manager-iam.yaml # IAMユーザー作成用CloudFormation
├── docs/ # ドキュメント
├── requirements.txt # Pythonの依存パッケージ
└── start_password_manager.bat # Windows用起動スクリプト
git clone https://github.com/kawabata-mcl/password-manager-with-aws.git
cd password-manager-with-aws
Note: すでにAWS CLIがインストールされており、管理者権限を持つプロファイルが設定済みの場合は、このステップをスキップできます。
-
管理者権限を持つIAMユーザーの認証情報でプロファイルを設定
# password-manager-adminという名前でプロファイルを作成 aws configure --profile password-manager-admin
以下の情報を入力:
- AWS Access Key ID: 管理者権限を持つIAMユーザーのアクセスキー
- AWS Secret Access Key: 管理者権限を持つIAMユーザーのシークレットキー
- Default region name: アプリケーションを使用するリージョン(例:ap-northeast-1)
- Default output format: json(推奨)
Note: 以下のコマンドはPowerShellで実行してください。コマンドプロンプト(CMD)では動作しません。
-
CloudFormationテンプレートのデプロイ
aws cloudformation create-stack ` --stack-name password-manager-iam ` --template-body file://infrastructure/password-manager-iam.yaml ` --capabilities CAPABILITY_NAMED_IAM ` --profile password-manager-admin
-
スタックの作成完了を待機
aws cloudformation wait stack-create-complete ` --stack-name password-manager-iam ` --profile password-manager-admin
-
アプリケーション用の認証情報の取得
# シークレットのARNを取得 $SECRET_ARN = $(aws cloudformation describe-stacks ` --stack-name password-manager-iam ` --query 'Stacks[0].Outputs[?OutputKey==`SecretArn`].OutputValue' ` --output text ` --profile password-manager-admin) # 認証情報の取得 aws secretsmanager get-secret-value ` --secret-id $SECRET_ARN ` --query 'SecretString' ` --output text ` --profile password-manager-admin
-
取得した認証情報を安全に保管
- 表示された認証情報(JSON形式)をコピーしてメモ帳などに一時的に保存
- 次のステップのアプリケーション初回起動時に使用
- 重要: セキュリティのため、認証情報をコピーしたら必ずPowerShellウィンドウを閉じてください
# 認証情報が表示されたら、PowerShellウィンドウを閉じて # 新しいセッションで作業を続けてください
start_password_manager.bat
をダブルクリック- コマンドプロンプトが開き、必要なパッケージが自動的にインストールされます
- インストールが終わると、アプリケーションの画面が表示されます
start_password_manager.bat
をダブルクリックで起動
- ショートカットの作成:
start_password_manager.bat
を右クリック- 「ショートカットの作成」を選択
- 作成されたショートカットをデスクトップに移動
- ショートカットのカスタマイズ(任意):
- ショートカットを右クリック→「プロパティ」
- アイコンの変更:「アイコンの変更」→好みのアイコンを選択
- 名前の変更:「Password Manager」など分かりやすい名前に変更
- 「適用」→「OK」をクリック
- 次回からはデスクトップのショートカットをダブルクリックで起動
Note: アプリケーションを別の場所に移動した場合は、ショートカットのリンク先を更新する必要があります。
- アプリケーションを起動し、「新規登録」ボタンをクリック
- 以下の情報を入力:
- ユーザー名(英数字、アンダースコア、ハイフンのみ使用可)
- パスワード(確認用に2回入力)
- AWSアクセスキー(手順3-4で保存したJSONの
accessKeyId
の値) - AWSシークレットキー(手順3-4で保存したJSONの
secretAccessKey
の値)
- 「登録」ボタンをクリックして完了
- 登録完了のメッセージが表示されます
- ユーザー名とパスワードを入力
- 「ログイン」ボタンをクリック
- 認証に失敗した場合:
- 登録されていないユーザー:新規登録を行ってください
- パスワードが間違っている:正しいパスワードを入力してください
- 3回連続で失敗するとアプリケーションが終了します
- メイン画面の「追加」ボタンをクリック
- 以下の情報を入力:
- アプリ名(必須)
- URL
- ユーザー名(必須)
- パスワード(必須)
- メモ
- 「保存」ボタンをクリック
- 編集したい項目のチェックボックスを選択
- 「編集」ボタンをクリック
- 情報を修正
- 「保存」ボタンをクリック
- 削除したい項目のチェックボックスを選択(複数選択可)
- 「削除」ボタンをクリック
- 確認ダイアログで「はい」をクリック
- コピーしたい項目のチェックボックスを選択
- 以下のいずれかのボタンをクリック:
- 「URLをコピー」
- 「ユーザー名をコピー」
- 「パスワードをコピー」
- パスワード列をダブルクリックすると、マスク表示と実際のパスワードが切り替わります
- 「更新」ボタンをクリックすると、最新のパスワード情報を取得します
- パスワード情報はAWS Parameter Storeで暗号化して保存
- AWS認証情報は暗号化して保存
- パスワードはマスク表示がデフォルト
- 自動ログアウト機能(30分間操作がない場合)
- ログイン試行回数の制限(3回まで)
- ユーザー名とパスワードが正しいか確認
- 新規ユーザーの場合は新規登録を実行
- ログイン試行回数が上限に達した場合は、アプリケーションを再起動
- 「更新」ボタンをクリック
- AWS認証情報が正しいか確認
- インターネット接続を確認
アプリケーションの設定は2つの場所で管理されています:
- 場所:
src/config/config.template.ini
- 用途: デフォルト設定のテンプレート
- Git管理: リポジトリに含まれる
- 場所: ユーザーホームディレクトリ下の
.password_manager/config.ini
- Windows:
C:\Users\ユーザー名\.password_manager\config.ini
- Windows:
- 用途: 実際のアプリケーション設定
- 作成タイミング: アプリケーション初回起動時に自動生成
[AWS]
region = ap-northeast-1 # AWSリージョン
[App]
# セッションタイムアウト時間(分)
# ユーザーの操作がない場合、指定時間後に自動ログアウト
# デフォルト: 30分
session_timeout = 30
# ログイン試行回数の制限
# この回数を超えるとアプリケーションが終了
# デフォルト: 3回
max_login_attempts = 3
# パスワード情報のキャッシュ時間(秒)
# AWS Parameter Storeへのアクセスを最小限に抑えるためのキャッシュ時間
# デフォルト: 300秒(5分)
password_cache_duration = 300
- 設定の変更は、アプリケーションの再起動後に反映されます
- セキュリティ上の理由から、実際の設定ファイル(
.password_manager/config.ini
)は手動で編集する必要があります - 設定ファイルが存在しない場合は、初回起動時にテンプレートの内容を基にデフォルト値で作成されます
- AWS認証情報は別途暗号化して保存されるため、この設定ファイルには含まれません
アプリケーションを完全に削除する場合は、以下の手順に従ってください:
Note: 以下のコマンドはPowerShellで実行してください。コマンドプロンプト(CMD)では動作しません。
-
AWS CLIで認証情報を設定していない場合:
aws configure --profile password-manager-admin
-
CloudFormationスタックの削除:
aws cloudformation delete-stack ` --stack-name password-manager-iam ` --profile password-manager-admin # プロファイル名は適宜変更
-
削除完了の確認:
aws cloudformation wait stack-delete-complete ` --stack-name password-manager-iam ` --profile password-manager-admin # プロファイル名は適宜変更
Remove-Item "$env:USERPROFILE\.aws\credentials.password-manager-admin" # プロファイル名は適宜変更
-
アプリケーション設定の削除:
Remove-Item -Recurse -Force "$env:USERPROFILE\.password_manager"
-
アプリケーションフォルダの削除:
# クローンしたリポジトリのディレクトリに移動して Set-Location password-manager-with-aws # 一つ上の階層に移動 Set-Location .. # フォルダごと削除 Remove-Item -Recurse -Force password-manager-with-aws
- AWS認証情報は適切に管理してください
- 定期的なパスワード変更を推奨します
- 重要なパスワード情報は別の方法でもバックアップすることを推奨します
- AWS Parameter Storeの標準パラメータを使用(低コスト)
- ローカルキャッシュによりAPI呼び出しを最小限に抑制
- 概算コスト:月額1ドル未満(通常使用の場合)