github編集

Ruby SDK

Keeperシークレットマネージャー用Ruby SDK資料

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

インストール

Ruby SDKでは、Ruby 3.1以降がサポートされています。詳細についてはこちらのウェブサイトarrow-up-rightをご参照ください。

gemを使用してインストールする場合

Gemfileに追加する場合

次に以下を実行します。

ソースコード

RubyのソースコードはGitHubリポジトリarrow-up-rightで公開されています。

SDKの使用

ストレージの初期化

KeeperシークレットマネージャーSDKでは、クライアントデバイス上にストレージを初期化するためにワンタイムアクセストークンが必要です。初期化後は、SDKが構成を保存し、以降の利用時に再読み込みします。

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

token

String

任意

nil

初期バインディングに使用するワンタイムアクセストークン

config

KeyValueStorage

必須

なし

構成を永続化するためのストレージ実装

hostname

String

任意

'keepersecurity.com'

APIホスト名 (例: EUデータセンターの場合は 'keepersecurity.eu')

verify_ssl_certs

Boolean

任意

true

SSL証明書検証の有効/無効の設定

circle-info

ワンタイムアクセストークンを使用する場合、トークンを紐付けて構成を完全に取得するために最低1つの読み取り操作が必要です。

使用例

ワンタイムアクセストークンを使用する場合

ファイルベースのストレージを使用する場合

アプリケーション再起動後も構成を永続的に保持する場合

ボルトで生成されたBase64構成ファイルを使用する場合

環境変数を使用する場合

環境変数から読み取り専用の構成をロードする方法

シークレットの取得

シークレットの取得

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

uids

Array<String>

任意

[]

取得対象のレコードUID一覧。空配列の場合はすべてのシークレットを取得します。

レスポンス

型: Array<KeeperRecord>

すべてのKeeperレコード、または指定したUIDに一致するレコードの配列が返されます。

使用例

すべてのシークレットを取得する

UIDを指定して取得する

タイトルでシークレットを取得する

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

title

String

必須

なし

検索対象のレコードタイトル (完全一致)

レスポンス

  • get_secrets_by_titleArray<KeeperRecord>

  • get_secret_by_titleKeeperRecord

同じタイトルに一致するすべてのレコード、または最初に一致したレコードを返します。

使用例

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

シークレットを取得した後、フィールド値には複数の方法でアクセスできます。

動的フィールドアクセスを使用する方法

明示的なフィールドメソッドを使用する方法

Keeper表記法を使用する方法

TOTPコードの取得

TOTPコードを生成するには、まずレコードからTOTP URLを取得し、KeeperSecretsManager::TOTP モジュールを使用します。

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

secret

String

必須

なし

Base32形式でエンコードされたTOTPシークレット

algorithm

String

任意

'SHA1'

使用するハッシュアルゴリズム  (SHA1 / SHA256 / SHA512)

digits

Integer

任意

6

生成するコードの桁数

period

Integer

任意

30

コードの有効期間 (秒)

レスポンス

型: String

2要素認証に使用する現在のTOTP (Time-Based One-Time Password) コードが返されます。

使用例

circle-info

TOTPコードの生成には、Base32デコード用の base32 gem が必要です。

インストール方法

ランダムパスワードの生成

暗号学的に安全なランダムパスワードを生成できます。文字種や長さなどを柔軟に指定でき、シークレットをプログラムから作成または更新する際に便利です。

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

length

Integer

任意

64

パスワード全体の長さ

lowercase

Integer

任意

0

使用する小文字 (a–z) の最小数

uppercase

Integer

任意

0

使用する大文字 (A–Z) の最小数

digits

Integer

任意

0

使用する数字 (0–9) の最小数

special_characters

Integer

任意

0

使用する記号 (!@#$%^&*()_+-=[]{} など) の最小数

レスポンス

型: String

指定した要件を満たす、暗号学的に安全なランダムパスワードを返します。

circle-info

この関数は、暗号学的に安全な乱数生成を行うRubyの SecureRandom を使用しており、適切な文字分布を確保するためにFisher–Yatesシャッフルを適用します。

使用例

デフォルト設定で64文字のパスワードを生成

生成要件を指定する例

新しいシークレットを作成する際に使用する例

既存のシークレットを更新する際に使用する例

パスワードローテーションスクリプト例

シークレットの更新

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

record

KeeperRecord

はい

なし

ボルト内で更新する、変更済みのレコード

レスポンス

型: void

変更された値を使って、ボルト内のシークレットが更新されます。

使用例

ファイルのダウンロード

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

file

KeeperFile

必須

なし

ダウンロード対象となるKeeperRecord内のファイルオブジェクト

レスポンス

型: Hash

以下の情報を含むハッシュを返します。

  • 'name' — ファイル名

  • 'data' — バイナリ文字列としてのファイルデータ

  • 'size' — ファイルサイズ(バイト単位)

  • 'type' — ファイルのMIMEタイプ

使用例

ファイルのアップロード

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

owner_record_uid

String

必須

なし

ファイルを添付する対象レコードのUID

file_data

String

必須

なし

ファイル内容 (バイナリまたはテキスト)

file_name

String

必須

なし

Keeper上でのファイル名

file_title

String

任意

nil

Keeper上でのファイルのタイトル/説明

レスポンス

型: String

アップロードされたファイルのUIDを返します。

使用例

シークレットの作成

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

record_data

Hash

必須

なし

レコード構造 (type、title、fields、custom、notes) を含むハッシュ

options

CreateOptions

必須

なし

folder_uid (必須) と任意設定を含むCreateOptionsオブジェクト

レスポンス

型: String

作成されたシークレットのUIDを返します。

要件

  • 共有フォルダUID (folder_uid) を指定する場合、そのUIDが必要

  • 共有フォルダがシークレットマネージャーアプリケーションからアクセス可能であること

  • あなた自身とシークレットマネージャーアプリケーションの両方に編集権限があること

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

  • レコードのフィールド形式が正しく構成されていること (フィールドタイプの仕様を参照)

使用例

カスタムタイプレコードの作成例

シークレットの削除

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

uids

String または Array<String>

必須

なし

削除対象のレコードUID (複数指定可)

レスポンス

: void

指定したシークレットをボルトから削除します。

使用例

フォルダ

Ruby SDKでは、フォルダ操作に対して完全なCRUD (作成・取得・更新・削除) が利用できます。

フォルダの取得

レスポンス

: Array<KeeperFolder>

シークレットマネージャーアプリケーションがアクセス可能なすべてのフォルダを返します。

使用例

フォルダパスの取得

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

folder_uid

String

必須

なし

パスを取得する対象フォルダのUID

レスポンス

型: String

フォルダの完全なパス("/" 区切りのパンくずリスト形式)を返します。

使用例

名前でフォルダを検索

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

name

String

必須

なし

検索するフォルダ名

parent_uid

String

任意

nil

指定した親フォルダ内を対象に検索する場合に指定

レスポンス

: KeeperFolder または nil

最初に一致したフォルダ、または一致しない場合は nil を返します。

使用例

フォルダツリーの構築

フォルダの作成

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

name

String

必須

-

作成するフォルダ名

parent_uid

String

必須

-

フォルダを配置する親フォルダのUID

レスポンス

型: String

作成されたフォルダのUIDを返します。

使用例

フォルダの更新

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

folder_uid

String

はい

-

名前を変更する対象フォルダのUID

new_name

String

はい

-

新しいフォルダ名

レスポンス

型: void

指定したフォルダの名前を変更します。

使用例

フォルダの削除

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

folder_uid

String

はい

-

削除対象のフォルダUID

force

Boolean

任意

false

true の場合、フォルダ内の内容物もすべて削除

レスポンス

型: void

指定したフォルダをボルトから削除します。

使用例

キャッシュ

シークレットをローカルにキャッシュすることで、パフォーマンスを向上できます。

CachingStorageの使用

高度な構成

カスタムホスト名

SSL証明書検証

カスタムロギング

すべての構成オプション

フィールドタイプヘルパー

タイプ付きフィールドを簡単に作成するための便利な方法が用意されています。

ダイナミックレコードアクセス

Ruby SDKでは、method_missing を利用して JavaScript のような動的フィールドアクセスを実現しています。

最終更新