For the complete documentation index, see llms.txt. This page is also available as Markdown.

Python SDK

Keeperシークレットマネージャー向けPython SDKの詳細情報

ダウンロードとインストール

PIPによるインストール

Pythonのバージョン: 3.9以降

詳細については、keeper-secrets-manager-core (PyPI)をご参照ください。

ソースコード

Pythonのソースコードは、GitHubリポジトリで入手できます。

関連パッケージ

SDKの使用

初期化

パラメータ
必須
デフォルト
説明

token

str

オプション

None

ワンタイムアクセストークン。初回実行時にアプリケーションを紐付けるために必要。構成が紐付け済みの場合は省略

config

KeyValueStorage

オプション

FileKeyValueStorage()

ストレージバックエンド。未指定の場合、現在のディレクトリの client-config.json がデフォルト

hostname

str

オプション

None

サーバーホスト名の上書き。リージョンプレフィックスなしのトークンを使用する場合は必須

verify_ssl_certs

bool

オプション

True

送信リクエスト時のSSL証明書検証

構成ファイルは、v17.1.0以降では安全な権限で自動的に作成されます (Unix系システムでは0600)。

バインディングライフサイクル

ワンタイムトークンは、クライアント作成時ではなく、最初の get_secrets() 呼び出し時に引き換えられます。構成を外部ストア (AWS Secrets Manager、Azure Key Vault など) に保存する場合は、バインド後に読み出してから永続化します。詳しくは、バインディングライフサイクルをご参照ください。

シークレットの取得

パラメータ

必須

デフォルト

説明

uids

String[]

オプション

None

取得するレコードのUID

戻り値

型: Record[]

Keeperのすべてのレコード、または指定されたUIDを持つレコード。

シークレットから値を取得

パスワードを取得

Keeperシークレットマネージャーからシークレットを取得すると、このショートカットでそのシークレットのパスワードを取得します。

標準フィールドを取得

パラメータ

必須

デフォルト

説明

field_type

String

はい

取得するフィールドタイプ

value

String またはString[]

オプション

None

指定すると、フィールドの値を指定値に設定

single

boolean

オプション

False

最初の値のみを返す

フィールドタイプはKeeperレコードタイプに基づきます。利用可能なフィールドの詳細な一覧については、コマンダーで record-type-info コマンドをご参照ください。

カスタムフィールドを取得

パラメータ

必須

デフォルト

説明

label

String

はい

カスタムフィールドのラベル

field_type

String

オプション

None

取得するフィールドタイプ

value

StringまたはString[]

オプション

None

指定すると、フィールドの値を指定値に設定

single

boolean

オプション

False

最初の値のみを返す

カスタムフィールドとは、レコードタイプの定義に含まれていないが、ユーザーが追加できるフィールドのことです。

同じカスタムタイプの複数のフィールドを1つのレコードに表示することができます。これらのフィールドを区別するには、フィールドラベルが必要です。

戻り値

型: String または String[]

フィールドの1つまたは複数の値。 single=Trueオプションを指定した場合のみ、単一の値になります。

タイトルによってシークレットを取得

パラメータ
必須
説明

record_title

String

はい

検索するレコードタイトル

リンクされたレコードへのアクセス (GraphSync)

PAMレコードは認証情報レコードへのリンクを保持できます。リンクはデフォルトでは get_secrets() のレスポンスに含まれません。request_links=True を指定して get_secrets_with_options() を呼び出し、record.get_links() で型付きの KeeperRecordLink オブジェクトとして取得できます。

KeeperRecordLink 属性

属性
説明

record_uid

str

リンク先レコードのUID

path

str または None

リンクタイプの識別子。None = 別レコードへの認証情報リンク、"meta" = PAM設定の自己リンク、"ai_settings" / "jit_settings" = 暗号化設定の自己リンク

data

str または None

Base64形式のリンクペイロード (生データ)。直接参照せず、アクセサメソッドを使用

KeeperRecordLink メソッド

メソッド
戻り値
説明

is_admin_user()

bool

リンク先が管理者ユーザー

is_launch_credential()

bool

起動用認証情報へのリンク

is_iam_user()

bool

リンク先がIAMユーザー

belongs_to()

bool

リンク先認証情報がレコードに属する

allows_rotation()

bool

ローテーション許可 (認証情報またはmetaリンク)

allows_connections()

bool

接続許可

allows_port_forwards()

bool

ポートフォワーディング許可

allows_session_recording()

bool

セッション記録の有効化

get_rotation_settings()

dict または None

ローテーションスケジュールとパスワード複雑性の設定

get_meta_data()

dict または None

PAM設定ペイロード全体 (path == "meta")

get_link_data()

dict または None

任意パスの解析済みリンクペイロード

Keeper表記法を使用して値を取得

Keeper表記法の形式と機能については、Keeper表記法のページをご参照ください。

パラメータ

必須

デフォルト

説明

query

String

はい

指定したフィールドの値を取得するためのKeeper表記法を使用したクエリ

戻り値

型: string または string[]

クエリで取得したフィールドの値

TOTPコードを取得

パラメータ

必須

デフォルト

説明

url

str

はい

otpauth:// 形式のTOTP URI。URIスキームが otpauth でない場合は ValueError を送出

PAMレコードタイプ

SDKが返すPAMレコードは record.type で識別できます。

全11種類のPAMレコードタイプのフィールド定義は、PAMレコードタイプをご参照ください。

リンク済み認証情報

PAMレコードには認証情報レコードへのリンクを保持できます。リンクはデフォルトでは get_secrets() のレスポンスに含まれません。get_secrets_with_options()request_links=True を指定して取得し、record.get_links() から型付きの KeeperRecordLink オブジェクトとして参照できます。

KeeperRecordLink 属性

属性
説明

record_uid

str

リンク先レコードのUID

path

str or None

リンク種別の判別子。None = 別レコードへの認証情報リンク、"meta" = PAM設定の自己リンク、"ai_settings" / "jit_settings" = 暗号化設定の自己リンク

data

str or None

Base64形式の生リンクペイロード。直接参照せずアクセサメソッドを使用

KeeperRecordLink メソッド

メソッド
戻り値
説明

is_admin_user()

bool

管理者ユーザー向けリンク

is_launch_credential()

bool

接続用認証情報リンク

is_iam_user()

bool

IAMユーザー向けリンク

belongs_to()

bool

レコードに所属するリンク

allows_rotation()

bool

ローテーション許可 (認証情報または meta リンク)

allows_connections()

bool

接続許可

allows_port_forwards()

bool

ポートフォワーディング許可

allows_session_recording()

bool

セッション記録有効

get_rotation_settings()

dict or None

ローテーションスケジュールと複雑性の設定

get_meta_data()

dict or None

PAM設定ペイロード全体 (path == "meta")

get_link_data()

dict or None

任意の path 向け解析済みリンクペイロード

シークレットを更新

変更をシークレットに保存

record

KeeperRecord

はい

ストレージとクエリの設定

fieldメソッドを使用してフィールド値を設定します。

利用可能なフィールドの詳細な一覧については、コマンダーで record-type-info コマンドをご参照ください。一部のフィールドは複数の値を持つことができ、その場合は値をリストとして設定できます。

標準フィールド値を更新

パラメータ

必須

デフォルト

説明

field_type

String

はい

取得するフィールドタイプ

value

String または String[]

オプション

None

指定すると、フィールドの値を指定値に設定

single

boolean

オプション

False

最初の値のみを返す

カスタムフィールド値の更新

パラメータ

必須

デフォルト

説明

label

String

はい

カスタムフィールドのラベル

field_type

String

オプション

None

取得するフィールドタイプ

value

StringまたはString[]

オプション

None

指定すると、フィールドの値を指定値に設定

single

boolean

オプション

False

最初の値のみを返す

ランダムなパスワードを生成

パラメータ
必須
デフォルト
説明

length

int

オプション

32

パスワードの最小文字数

lowercase

int

オプション

None

小文字の最小数 (正の値)、正確な数 (0または負)、制約なし (None)

uppercase

int

オプション

None

大文字の最小数 (正の値)、正確な数 (0または負)、制約なし (None)

digits

int

オプション

None

数字の最小数 (正の値)、正確な数 (0または負)、制約なし (None)

special_characters

int

オプション

None

特殊文字の最小数 (正の値)、正確な数 (0または負)、制約なし (None)

special_characterset

str

オプション

"!@#$%()+;<>=?[]{}^.,

特殊文字部分の生成時に使用するカスタム文字セット

各文字クラスのパラメータは、正の値なら最小文字数、0または負の値なら正確な文字数、None (デフォルト) なら制約なしを意味します。4文字クラスすべてが None の場合、または正確な文字数の合計が length 未満の場合、残りは有効な文字クラスからランダムに選ばれます。

ファイルのダウンロード

パラメータ

必須

デフォルト

説明

file_path

String

はい

ファイルの保存先のパス

create_folders

boolean

いいえ

False

存在しない場合はfile_pathにフォルダを作成

ファイルのアップロード

ファイルのアップロード

Keeperファイルアップロードオブジェクトを作成

ファイルのアップロード

パラメータ
必須
説明

owner_record

KeeperRecord

はい

アップロードされたファイルを添付するレコード

file

KeeperFileUpload

はい

アップロードするファイル

ファイルからのKeeperファイルのアップロード

パラメータ
必須
デフォルト
説明

path

string

はい

アップロードするファイルへのパス

file_name

string

いいえ

None

アップロード後にKeeperに格納されるファイルの名前

file_title

string

いいえ

None

アップロード後にKeeperに格納されるファイルのタイトル

mime_type

string

いいえ

None

ファイル内のデータの種類。 何も指定しない場合は、「application/octet-stream」が使用されます。

戻り値

型: string

添付ファイルのファイルUID

添付ファイルの削除

パラメーター
タイプ
必須
説明

record

KeeperRecord

はい

更新対象となるレコード

links_to_remove

String または List[String]

いいえ

レコードから削除するファイルのUID

シークレットの作成

要件

  • 共有フォルダのUID

    • 共有フォルダには、シークレットマネージャーアプリケーションからアクセスできること

    • あなたとシークレットマネージャーアプリケーションに編集権限が付与されていること

    • 共有フォルダには、少なくとも1つのレコードが存在すること。

  • 作成されたレコードとレコードのフィールドが正しく書式設定されていること。

    • 各レコードタイプで想定されるフィールド形式については、レコードタイプをご参照ください。

  • TOTPフィールドには、KSM SDK以外で生成されたURLのみを指定できます。

  • レコードの作成後は、upload_fileを使用して添付ファイルをアップロードできます。

パラメータ
必須
デフォルト

folder_uid

String

はい

record

KeeperRecord

はい

パラメータ
必須
デフォルト

create_options

CreateOptions

はい

record

KeeperRecord

はい

この例では、ログイン値と生成されたパスワードを含むログインタイプのレコードを作成します。

例にある [FOLDER UID] をシークレットマネージャーがアクセスできる共有フォルダのUIDに置き換えます。

この例では、カスタムのレコードタイプのレコードを作成します。

例にある[FOLDER UID]をシークレットマネージャーがアクセスできる共有フォルダのUIDに置き換えます。

戻り値

型: string

新規レコードのレコードUID

シークレットの削除

Python KSM SDKでKeeperボルトのレコードを削除できます。

パラメータ
必須
説明

record_uids

str または List[str]

はい

削除するレコードのUID、またはUIDのリスト

キャッシュ

ネットワークアクセスが失われたときにシークレットにアクセスできなくなる状況を避けるため、Python SDKを使用してシークレットを暗号化されたファイルでローカルマシンにキャッシュできます。

キャッシュの設定と構成

Python SDKでキャッシュを設定するには、SecretsManager オブジェクトを作成するときにキャッシュポスト関数を含める必要があります。

Python SDKには、KSMCache クラスにデフォルトのキャッシュ機能が含まれており、キャッシュされたクエリをローカルファイルに保存し、復旧機能として使用できます (ネットワーク接続がある場合は常にネットワークデータを優先し、ウェブボルトにアクセスできない場合にのみキャッシュを使用します)。独自のキャッシュ機能を作成することも可能で、KSMCache を出発点として利用できます。例えば、ネットワークアクセスよりもローカルキャッシュを優先し、独自のキャッシュ管理を行う (例: キャッシュデータを5分ごとに更新する) 機能を作成できます。

独自のキャッシュ関数の作成

まず、以下の引数を使用してキャッシュ関数を作成し、post_function を呼び出します。

次に、KSMCacheを使用して任意のキャッシュ処理ロジックを実装できます。

以下は基本的なサンプルです。

フォルダ

フォルダは完全なCRUD (作成、読み取り、更新、削除操作) が利用できます。

フォルダの読み取り

フォルダの完全な階層構造をダウンロードします。

レスポンス

型: List[KeeperFolder]

使用例

フォルダの作成

CreateOptions とフォルダ名の指定が必要です。CreateOptions はフォルダのUIDパラメータ (共有フォルダのUID) が必須ですが、サブフォルダのUIDはオプションであり、指定されていない場合は、通常の新しいフォルダが親 (共有フォルダ) の直下に作成されます。サブフォルダは、親の共有フォルダの直接の下位オブジェクトである必要はありません。親フォルダから何階層も深い位置にサブフォルダを作成することができます。

パラメータ
必須
デフォルト
説明

create_options

CreateOptions

はい

親およびサブフォルダのUID

folder_name

str

はい

フォルダ名

folders

List[KeeperFolder]

いいえ

None

CreateOptionsで作成した親とサブフォルダの検索に使用するフォルダのリスト

使用例

フォルダの更新

フォルダのメタデータ (現在はフォルダ名のみ) を更新します。

パラメータ
必須
デフォルト
説明

folder_uid

str

はい

フォルダのUID

folder_name

str

はい

新しいフォルダ名

folders

List[KeeperFolder]

いいえ

None

親フォルダの検索に使用するフォルダのリスト

使用例

フォルダの削除

フォルダのリストを削除します。空でないフォルダを削除するには、force_deletion フラグを使用します。

force_deletion を使用する場合は、親フォルダと子フォルダのUIDを一緒に送信しないようにしてください。削除する順序によっては、エラーが発生する可能性があります。たとえば、親が子を先に強制削除した場合などです。リストが必ずしもFIFO順で処理される保証はありません。

ボルトに存在しないフォルダのUIDやKSMアプリケーションで共有されていないフォルダのUIDはエラーになりません。

パラメータ
必須
デフォルト
説明

folder_uids

List[str]

はい

フォルダUIDリスト

force_deletion

bool

いいえ

False

空でないフォルダを強制的に削除

使用例

プロキシのサポート

環境変数

KeeperシークレットマネージャーSDKは、デフォルトrequestsライブラリを使用し、HTTPS_PROXY環境変数に対応しています。

この設定を行うと、Keeperシークレットマネージャーへのリクエストを含むすべてのリクエストが、指定したプロキシを経由して送信されます。

プロキシ設定は、環境変数で行うことを推奨します。コードに設定を直接記述せずに済み、ツール間で同じ設定を使い回せるほか、導入や運用も容易になります。

SecretsManagerのパラメータ

SDK内でのみプロキシを使用したい場合は、SecretsManager にプロキシURLを渡すこともできます。

プロキシで認証が必要な場合は、プロキシURLにユーザー名とパスワードを含めて指定してください。

高度な構成

カスタムサーバー公開鍵

SDKにサーバー公開鍵を同梱できない分離環境やプライベート環境では、EC P-256公開鍵を以下の2通りで指定できます。優先順位はプログラム指定 > 既存の構成です。

プログラム指定: SecretsManager()server_public_keyserver_public_key_id を渡します。

構成ファイル: 初回呼び出しの前に、紐付け済みの ksm-config.jsonserverPublicKeyserverPublicKeyId を追加します。これら2つのフィールドは紐付け済み構成を補完するものであり、置き換えるものではありません。

最終更新