VBA拡張版:パスワードを一時的にデータベースやクラウドに保存し、管理者が必要時に取得できる仕組み
ここまでで「パスワードを自動生成してメールやSMSで通知」する方法を紹介しました。今回はさらに拡張して、パスワードを一時的にデータベースやクラウドに保存し、管理者が必要時に取得できる仕組みを作る方法です。これにより、パスワードを安全に保管し、必要なときだけ管理者がアクセスできるようになります。
実現方法の選択肢
- データベース保存
- SQL Server / MySQL / SQLite などに「パスワード管理テーブル」を作成
- 有効期限付きで保存(例:24時間後に削除)
- 管理者は専用ツールやクエリで取得
- クラウド保存
- Azure Key Vault / AWS Secrets Manager / Google Secret Manager を利用
- API経由でパスワードを登録・取得
- 管理者はクラウドポータルや専用アプリからアクセス
- 簡易クラウドストレージ
- OneDrive / Google Drive に暗号化したテキストファイルを一時保存
- 管理者は共有リンクから取得
VBAサンプル(SQL Serverに保存)
Option Explicit
'=== パスワードをDBに保存 ===
Sub SavePasswordToDB(password As String)
Dim conn As Object, cmd As Object
' ADO接続
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=SERVERNAME;Initial Catalog=PasswordDB;User ID=dbuser;Password=dbpass;"
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = conn
cmd.CommandText = "INSERT INTO PasswordTable (PasswordValue, CreatedAt, ExpireAt) VALUES (?, GETDATE(), DATEADD(hour, 24, GETDATE()))"
cmd.Parameters.Append cmd.CreateParameter(, 8, 1, 255, password) ' 8=adVarChar, 1=adParamInput
cmd.Execute
conn.Close
End Sub
VB👉 管理者は SELECT PasswordValue FROM PasswordTable WHERE ExpireAt > GETDATE() で取得可能。
VBAサンプル(Azure Key Vaultに保存)
Sub SavePasswordToAzure(password As String)
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
Dim vaultURL As String, token As String
vaultURL = "https://yourvault.vault.azure.net/secrets/zipPassword?api-version=7.2"
token = "Bearer " & "your_access_token" ' 事前にOAuthで取得
Dim payload As String
payload = "{""value"":""" & password & """,""attributes"":{""exp"":""" & Format(Now + 1, "yyyy-mm-ddThh:nn:ssZ") & """}}"
http.Open "PUT", vaultURL, False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", token
http.Send payload
MsgBox "パスワードをAzure Key Vaultに保存しました", vbInformation
End Sub
VB👉 管理者は Azure Portal や API から取得可能。
この拡張版のポイント
- 一時保存 → 有効期限付きで管理
- 安全な取得 → 管理者のみアクセス可能
- クラウドやDBを利用 → セキュリティ強化
実務でのメリット
- セキュリティ強化 → パスワードをメールやSMSで直接送らず、安全に保管
- 監査対応 → 誰がいつ取得したかログを残せる
- 柔軟性 → 管理者が必要なタイミングで取得可能
✅ まとめ
- パスワードを自動生成 → ZIPに設定
- 一時的にDBやクラウドに保存 → 有効期限付き
- 管理者が必要時に取得 → セキュリティ強化された運用が完成


