github編集

Python SDK

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

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

PIPによるインストール

Python要件

Python 3.6以降が必要です (Python 3.8+を推奨)。

circle-info

Python 3.6以降はサポート対象ですが、最新のセキュリティ更新を利用するため、Python 3.10以降の使用を推奨します。なお、Python 3.6および3.7のサポートは、今後のリリースで廃止される予定です。

ソースコード

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

SDKの使用

初期化

circle-info

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

パラメータ
必須
説明

token

はい

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

String

config

はい

ストレージの設定

KeyValueStorage

circle-info

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

シークレットの取得

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

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)

Keeperでは、GraphSyncを使用してレコードを他のレコードと関連付けることができます。Python SDKでは、レコードの links プロパティを通じて、これらの関連情報にアクセスできます。

リンクオブジェクトの構造

各リンクオブジェクトには、以下のプロパティが含まれます。

プロパティ
タイプ
説明

recordUid

String

リンク先レコードのUID

data

String (任意)

Base64形式でエンコードされたリンクデータ

path

String (任意)

リンクに関するパス情報

circle-info

GraphSyncリンクを使用すると、ボルト内のレコード同士を参照関係で関連付けることができます。これにより、データベースのパスワードをデータベースサーバーの構成に関連付けるなど、認証情報間の関係を構築できます。

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

circle-info

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

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

query

String

はい

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

戻り値

型: string or string[]

照会したフィールドの値

TOTPコードを取得

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

url

String

はい

TOTP Url

シークレットを更新

circle-exclamation

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

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

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

オプション

64

lowercase

int

オプション

0

uppercase

int

オプション

0

digits

int

オプション

0

specialCharacters

int

オプション

0

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

ファイルのダウンロード

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

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

circle-info

ファイルを削除した後に追加の更新を行う場合は、レコードのリビジョンが変更されているため、get_secrets() を使用してレコードを再読み込みしてください。

シークレットの作成

要件

  • 共有フォルダのUID

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

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

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

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

    • レコードタイプごとの適切なフィールド形式については、こちらのページをご参照ください。

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

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

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

folder_uid

String

はい

record

KeeperRecord

はい

戻り値

型: string

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

シークレットの削除

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

パラメータ
必須

record_uid

string

はい

キャッシュ

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

キャッシュの設定と構成

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

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

triangle-exclamation
circle-exclamation

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

まず、次の引数を使用してキャッシュ関数を作成し、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 フラグを使用します。

circle-info

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

circle-info

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

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

folder_uids

List[str]

はい

フォルダUIDリスト

force_deletion

bool

いいえ

False

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

使用例

プロキシのサポート

環境変数

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

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

circle-info

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

SecretsManagerのパラメータ

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

circle-info

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

最終更新