Python SDK

Keeper Secrets Manager用Python SDKの詳細なドキュメント

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

PIPによるインストール

pip3 install -U keeper-secrets-manager-core

ソースコード

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

SDKの使用

初期化

トークンのみを使用して (後で使用するために) 新しい設定を生成するには、トークンをバインドして、config.jsonに完全に読み込むための読み取り操作が少なくとも1回必要です。

SecretsManager(token, config)
# トークンのみを使用して(後で使用するために)設定を生成するには、
# トークンをバインドするアクセス操作が少なくとも1回必要です
#get_secrets(uids=None)

パラメータ

必須

説明

token

はい

ワンタイムアクセストークン

String

config

はい

ストレージの設定

KeyValueStorage

シークレットの取得

get_secrets(uids=None)

パラメータ

必須

デフォルト

説明

uids

String[]

オプション

None

取得するUID記録

戻り値

型:Record[]

Keeperのすべての記録、または指定されたUIDを持つ記録

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

パスワードを取得

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

secret.field('password', single=True)

標準フィールドを取得

secret.field(field_type, single=False, value=None)

パラメータ

必須

デフォルト

説明

field_type

String

はい

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

single

boolean

オプション

False

最初の値のみを返す

value

StringまたはString[]

オプション

None

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

フィールドはタイプで検索されます。フィールドタイプの一覧は、記録タイプのドキュメントをご参照ください。

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

secret.custom_field(label, field_type=None, single=False, value=None)

パラメータ

必須

デフォルト

説明

label

String

はい

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

field_type

String

はい

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

single

boolean

オプション

False

最初の値のみを返す

value

StringまたはString[]

オプション

None

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

カスタムフィールドは、記録タイプ定義の一部ではありませんが、ユーザーが追加できるフィールドです。 各標準記録タイプのフィールドの一覧は、記録タイプのドキュメントをご参照ください。

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

戻り値

型:StringまたはString[]

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

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

# 一致する記録をすべて取得
get_secrets_by_title(record_title)

# 最初に一致する記録のみを取得
get_secret_by_title(record_title)
パラメータ必須説明

record_title

String

はい

検索する記録タイトル

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

get_notation(query)

Keeper表記法の形式と機能については、Keeper表記法のドキュメントをご参照ください

パラメータ

必須

デフォルト

説明

query

String

はい

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

戻り値

型: string or string[]

照会したフィールドの値

TOTPコードを取得

get_totp_code(url)

パラメータ

必須

デフォルト

説明

url

String

はい

TOTP Url

シークレットを更新

記録更新コマンドは、成功時にローカルの記録データ (特に更新された記録リビジョン) を更新しないため、既に更新された記録を継続的に更新してもリビジョンの不一致により失敗となります。各更新バッチの後に、更新済みの記録をすべてリロードするようにしてください。

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

save(record:KeeperRecord)
パラメータ必須デフォルト説明

record

KeeperRecord

はい

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

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

フィールドはタイプで検索されます。フィールドタイプの一覧は、記録タイプのドキュメントをご参照ください。複数の値を持つフィールドもあります。このような場合は、値をリストに設定できます。

標準フィールド値を更新

secret.field(field_type, single=False, value=None)

パラメータ

必須

デフォルト

説明

field_type

String

はい

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

single

boolean

オプション

False

最初の値のみを返す

value

StringまたはString[]

オプション

None

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

フィールドはタイプで検索されます。フィールドタイプの一覧は、記録タイプのドキュメントをご参照ください。

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

secret.custom_field(label, field_type=None, single=False, value=None)

パラメータ

必須

デフォルト

説明

label

String

はい

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

field_type

String

はい

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

single

boolean

オプション

False

最初の値のみを返す

value

StringまたはString[]

オプション

None

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

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

generate_password(length, lowercase, uppercase, digits, specialCharacters)
パラメータ必須デフォルト

length

int

オプション

64

lowercase

int

オプション

0

uppercase

int

オプション

0

digits

int

オプション

0

specialCharacters

int

オプション

0

各パラメータは、使用する文字の種類の最小数を示します。たとえば、「uppercase」は、使用する大文字の最小数を示します。

ファイルのダウンロード

file.save_file(file_path, create_folders=False)

パラメータ

必須

デフォルト

説明

file_path

String

はい

ファイルの保存先のパス

create_folders

boolean

いいえ

False

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

ファイルのアップロード

ファイルのアップロード:

upload_file(owner_record, file: my_file)

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

KeeperFileUpload.from_file(path, file_name=None, file_title=None, mime_type=None)

ファイルのアップロード

パラメータ必須説明

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

シークレットの作成

前提条件:

  • 共有フォルダのUID

    • 共有フォルダには、Secrets Managerアプリケーションからアクセスできる必要があります

    • あなたとSecrets Managerアプリケーションには編集権限が必要です

    • 共有フォルダには、少なくとも1つの記録が存在する必要があります

  • 作成された記録と記録のフィールドは正しく書式設定されている必要があります

    • 記録タイプごとの適切なフィールド形式については、このドキュメントをご参照ください。

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

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

secrets_manager.create_secret(folder_uid, record)
パラメータ必須デフォルト

folder_uid

String

はい

record

KeeperRecord

はい

戻り値

型: string

新規記録の記録UID

シークレットの削除

Python KSM SDKでKeeperボルトの記録を削除できます。

secrets_manager.delete_secret(record_uid)
パラメータ必須

record_uid

string

はい

キャッシュ

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

キャッシュの設定と構成

Python SDKでキャッシュを設定するには、SecretsManagerオブジェクトを作成するときにPOSTキャッシュ関数を指定します。

Python SDKには、クエリをキャッシュしてファイルに保存するデフォルトのキャッシュ関数KSMCacheが含まれています。

secrets_manager = SecretsManager(
    token='<One Time Access Token>',
    config=FileKeyValueStorage('ksm-config.json'),
    custom_post_function=KSMCache.caching_post_function
)

フォルダ

フォルダは完全なCRUD (作成、読み取り、更新、削除操作) をサポートしています。

フォルダの読み取り

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

get_folders()

レスポンス

型:List[KeeperFolder]

使用例

from keeper_secrets_manager_core import SecretsManager
from keeper_secrets_manager_core.storage import FileKeyValueStorage

secrets_manager = SecretsManager(config=FileKeyValueStorage('ksm-config.json'))
folders = secrets_manager.get_folders()

フォルダの作成

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

create_folder(create_options:CreateOptions, folder_name: str, folders=None)
パラメータ必須デフォルト説明

create_options

CreateOptions

はい

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

folder_name

str

はい

フォルダ名

folders

List[KeeperFolder]

いいえ

None

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

使用例

from keeper_secrets_manager_core import SecretsManager
from keeper_secrets_manager_core.storage import FileKeyValueStorage

secrets_manager = SecretsManager(config=FileKeyValueStorage('ksm-config.json'))
co = CreateOptions(folder_uid="[SHARED_FOLDER_UID]", subfolder_uid="")
new_folder_uid = secrets_manager.create_folder(co, "new_folder")

フォルダの更新

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

update_folder(folder_uid: str, folder_name: str, folders=None)
パラメータ必須デフォルト説明

folder_uid

str

はい

フォルダのUID

folder_name

str

はい

新しいフォルダ名

folders

List[KeeperFolder]

いいえ

None

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

使用例

from keeper_secrets_manager_core import SecretsManager
from keeper_secrets_manager_core.storage import FileKeyValueStorage

secrets_manager = SecretsManager(config=FileKeyValueStorage('ksm-config.json'))
secrets_manager.update_folder("[FOLDER_UID]", "new_folder_name")

フォルダの削除

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

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

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

delete_folder(folder_uids:List[str], force_deletion: bool = False)
パラメータ必須デフォルト説明

folder_uids

List[str]

はい

フォルダUIDリスト

force_deletion

bool

いいえ

False

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

使用例

from keeper_secrets_manager_core import SecretsManager
from keeper_secrets_manager_core.storage import FileKeyValueStorage

secrets_manager = SecretsManager(config=FileKeyValueStorage('ksm-config.json'))
secrets_manager.delete_folder(["[FOLDER_UID1]", "[FOLDER_UID2]"], True)

最終更新