← Rust

LESSON / ARTICLE

安全なデータ処理と秘密情報の管理

安全なデータ処理と秘密情報の管理を学び、実務での設計判断につなげます。

データのライフサイクル

入力・保存・処理・出力・削除までデータの流れを把握します。保存場所、アクセス権、バックアップ、保持期間、ログも設計対象です。

秘密情報

APIトークンやパスワードをソースコードやGit履歴へ直接書きません。環境変数やSecret Managerから取得し、ログやエラー応答へ出さないようにします。

use std::env;
fn endpoint()->Result<String,env::VarError>{env::var("SERVICE_ENDPOINT")}

ハッシュは一方向の要約、暗号化は鍵を使って復元可能な形で保護する仕組みです。パスワード保存には専用方式を使い、暗号方式を自作せず検証されたライブラリを選びます。

ファイルパス

利用者指定のパスを無条件に使わず、許可領域内に収まるか検証します。シンボリックリンクや競合状態も考慮します。

設計演習

ログにユーザーID、メールアドレス、アクセストークンを記録するサービスで、残す情報・マスキングする情報・記録しない情報を分類してください。