Python Storage 1.1.0
互換性に影響する変更
Python最低対応バージョン: 3.6から3.9.2に引き上げられました。Python 3.6~3.8を継続利用する場合は、
keeper-secrets-manager-storage<1.1.0を使用してください。コアSDK最低対応バージョン: 要件なしから17.2.0に引き上げられました。
KSM-964 —
decrypt_config()のautosaveデフォルト:TrueからFalseに変更されました。引数なしでdecrypt_config()を呼び出しても、平文の認証情報がディスクに書き込まれなくなりました。従来の動作を維持する場合は、明示的にautosave=Trueを指定してください。
KSM-959: 5つのバックエンドすべてでスレッドセーフに対応。
threading.RLockを追加し、同時読み書き時のデータ破損を防止します。KSM-960: 変更検知用ハッシュアルゴリズムをMD5からSHA-256へ変更。また、Azure AES-GCMのノンス長を16バイトから12バイトへ修正し、NIST SP 800-38D準拠としました。
KSM-961: 暗号化・復号処理に失敗した際、ストレージ状態を破損したまま処理を継続するのではなく、適切に例外を送出するよう改善。
KSM-962:
delete_all()実行時に空の暗号化データを書き込む代わりに、構成ファイルを削除するよう変更。KSM-963:
__save_configが、メモリ上の状態を更新する前にディスクへの保存を完了するよう改善。書き込み失敗時にメモリとディスクの不整合を防止。KSM-965: 平文の
{}だけを含む初期設定ファイルを初回読み込み時に正しく再暗号化するよう修正。従来は誤ってバイナリ復号処理へ進む場合がありました。KSM-966: AWS Secrets Managerプロバイダーの
_get_instance_regionおよびread_configが、失敗時に空の値を返すのではなく、例外を送出するよう変更。KSM-967:
AwsSecretStorage.__init__がインスタンス生成時に設定を即座に読み込むよう変更し、他のバックエンドと動作を統一。また、有効なJSON辞書であればprivateKeyの有無にかかわらず受け付けるようになりました。KSM-972: 有効な暗号化データではない非UTF-8バイトに対し、すべての暗号化バックエンド (nfast、AWS KMS、Azure KeyVault) で、有効な暗号化設定ファイルではないことを示す明確な例外を返すよう改善。
KSM-977: 基盤となるAWS Secrets Manager呼び出しが失敗した場合、
AwsSecretStorage.__load_config()が例外を送出するよう変更。従来は例外がログに記録されるだけで伝播せず、config = {}のまま処理が継続されていました。KSM-978: HsmNfastおよびAwsKmsにおいて、復号結果が空の場合に、有効な暗号化設定ファイルではない例外を返すよう修正。従来はHsmNfast
JSONDecodeErrorを直接返し、AwsKmsはエラーをログ出力するだけでした。KSM-979:
__save_configおよびcreate_config_file_if_missingでアトミック書き込みを採用。Azure Key Vault、AWS KMS、HsmNfastの各バックエンドで、一時ファイル (<path>.tmpへ書き込み後os.replace) を実行する方式へ変更しました。書き込み失敗時に既存の設定ファイルが0バイトになる不具合や、create_config_file_if_missingの暗号化失敗時に空ファイルが残る不具合を防止します。
セキュリティ更新
KSM-777:
keeper-secrets-manager-coreの最低バージョンを17.2.0以上に引き上げ。これによりcryptography>=46.0.5(CVE-2026-26007、SECT曲線に対するECDHサブグループ攻撃、HIGH、CVSS 8.2)、urllib3>=2.6.3、requests>=2.32.4(CVE-2024-47081、.netrcによる認証情報漏洩、MEDIUM、CVSS 5.3) が間接的に必須となります。
リンク:
最終更新

