> For the complete documentation index, see [llms.txt](https://newdocs.keeper.io/jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://newdocs.keeper.io/jp/release-notes/enterprise/keeper-secrets-manager/2026/python-storage-1.1.0.md).

# 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](https://nvd.nist.gov/vuln/detail/CVE-2026-26007)、SECT曲線に対するECDHサブグループ攻撃、HIGH、CVSS 8.2)、`urllib3>=2.6.3`、`requests>=2.32.4` ([CVE-2024-47081](https://nvd.nist.gov/vuln/detail/CVE-2024-47081)、`.netrc` による認証情報漏洩、MEDIUM、CVSS 5.3) が間接的に必須となります。

**リンク:**

* [PyPIパッケージ](https://pypi.org/project/keeper-secrets-manager-storage/1.1.0/)
* [Python SDKに関するドキュメント](/jp/keeperpam/secrets-manager/developer-sdk-library/python-sdk.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://newdocs.keeper.io/jp/release-notes/enterprise/keeper-secrets-manager/2026/python-storage-1.1.0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
