genvid.toolbox.VaultTool

警告

これは API のベータ版で、今後のリリースで変更される可能性があります。

class genvid.toolbox.VaultTool(vault_policies_folder: str = '', vault_roles_folder: str = '', vault_token_file: str = '', vault_keys_file: str = '', use_wan: bool = False, **kwargs)

ベースクラス: ConsulTool

Vault の処理を行うための class。

警告

これは、class のベータ実装版です。

バージョン 1.16.0 で変更: Vault ファイルの中身より、環境変数が優先されます。

バージョン 1.20.0 で変更: use_wan パラメータで、サービスアドレスを TaggedAddress "wan" に置き換えます。デフォルトでは、内部登録アドレスを使用します。

NAME = 'Vault'

このツールのロガー名。子 class (children) で再定義する必要があります。

DESCRIPTION = 'A tool for interfacing with Vault.'

ヘルプパーサーで使用されるツールの説明。子 class (children) で再定義する必要があります。

VAULT_TOKEN_FILE

Vault トークンの保存場所へのファイルパスを含む VAULT_TOKEN_FILE のミラー。

バージョン 1.30.0 で追加.

VAULT_KEYS_FILE

Vault キーの保存場所へのファイルパスを含む VAULT_KEYS_FILE のミラー。

バージョン 1.30.0 で追加.

VAULT_TOKEN

認証に使用する Vault トークンが含まれる VAULT_TOKEN のミラー。

VAULT_KEYS

コンマ区切りの Vault シールキーが含まれる VAULT_KEYS のミラー。

VAULT_ADDR

Vault サービスアドレス (プロトコルを含む) が含まれる VAULT_ADDR のミラー。

GENVID_VAULT_POLICIES_FOLDER

Vault ポリシーが含まれるフォルダを表す GENVID_VAULT_POLICIES_FOLDER のミラー。

GENVID_VAULT_TOKEN_ROLES_FOLDER

Vault トークンのルールが含まれるフォルダを表す GENVID_VAULT_TOKEN_ROLES_FOLDER のミラー。

DEFAULT_PKI_PATH

これは、デフォルトで使用する pki エンジンパスです。

get_vault_client_addr(timeout: float = 30.0, passing: bool = True)

Vault サーバーのアドレスを返す。

バージョン 1.20.0 で変更: 構築時に use_wan を渡し易くするように、use_wan パラメータを削除しました。

get_vault_client_url(timeout: float = 0, use_https: bool = False, passing: bool = True)

Vault サーバーの URL を返す。

バージョン 1.20.0 で変更: 構築時に use_wan を渡し易くするように、use_wan パラメータを削除しました。

property vault

Vault クライアント

init_vault_client(timeout: float = 30.0, passing: bool = True)

Vault クライアントを初期化する。

クライアントが初期化に VAULT_ADDR を使用する。指定されていない場合、照会サービスで Vault サービスのクエリを行い、 VAULT_ADDR がセットされる。

パラメータ

timeout -- サービスクエリのタイムアウト (秒)。

mount_vault_engines()

Bastion の動作に必要なシークレットエンジンをマウント。

::versionadded: 1.29.0

mount_pki_engine(mount_point)

vault pki シークレットエンジンを設定し、 root ca を作成

パラメータ

mount_point -- pki エンジンをマウントしたマウントポイント

::versionadded: 1.29.0

vault_load_policies(folder: Optional[str] = None)

指定のフォルダからポリシーを読み込む。

ポリシーの拡張子は、.hcl です。ポリシー名は、拡張子をとったベースファイル名になります。

パラメータ

folder -- 検索するフォルダ。None の場合は GENVID_VAULT_POLICIES_FOLDER を使用する。

vault_load_roles(folder: Optional[str] = None)

指定のフォルダから役割を読み込む。

ロールは、ロールのプロパティを含む .json 拡張子を持つ必要があります。フォルダは、ファイル名が指定されていない場合、ベースとなるファイル名から拡張子を除いたものを使用します。

デフォルトでは、ロールタイプは token です。ただし、デフォルトではロール json ファイルが vault-role フォルダのサブフォルダにある場合、サブフォルダ名がロールタイプに対応します。 現在、 token および pki のロールタイプがサポートされています。

ロールネームは、jsonファイル名から取得します。もし name の設定が json ファイルに存在する場合は、この名前が代わりに使用されます。

パラメータ

folder -- 検索するフォルダ。None の場合は GENVID_VAULT_TOKEN_ROLES_FOLDER を使用する。

バージョン 1.29.0 で変更: vault_load_token_roles() renamed to vault_load_roles()

vault_load_token_roles(folder: Optional[str] = None)

バージョン 1.29.0 で非推奨: vault_load_roles() を使用してください。

vault_setup()

初期化されていない場合、Vault を設定する。

vault_setup_secret_engines()

vault シークレットエンジンを設定し、ロールを読み込む

param vault_roles_folder: vault ロールの格納フォルダ

refresh_token(force: bool = False)

Vault 情報を更新する。

param force: 値が設定されている場合でも、変数を強制的に変更する。

バージョン 1.16.0 で変更: force param を追加し、すでに設定されている場合はオーバーライドしない。

init_vault(key_shares=1, key_threshold=1)

Vault を初期化する。

このメソッドは環境変数 VAULT_TOKENVAULT_KEYS を連続で作成し、既存の値をオーバーライドする。

auth_vault(token=None)

Vault クライアントを認証する。

param token: vault 処理のトークン。None の場合、VAULT_TOKEN を使用。

バージョン 1.16.0 で変更: オプションのトークンパラメータを追加する。

unseal_vault(timeout: float = 30.0) bool

VAULT_KEYS で Vault のシールを解除する。

パラメータ

timeout -- seal status の変更の待機時間(秒)

Raises

vault keys が設定されていない場合 RuntimeError が発生。

バージョン 1.29.0 で変更: 空のキーをチェックして、パラメータが見つからないという未知のエラーとなります。

create_vault_token(*, role=None, orphan=False, wrap_ttl=None, **properties)

指定したプロパティで、新しいトークンを作成する。

save_vault_token()

Vault トークンをホームフォルダに保存する。

save_vault_keys()

Vault key をホームフォルダに保存する。

load_vault_token() str

VAULT_TOKEN_FILE から vault key を読み込む。

load_vault_keys() str

VAULT_KEYS_FILE から vault key を読み込む。

clear_vault_files()

Vault シークレットファイルを消去する。

create_vault_token_role(role, *, wrap_ttl=None, **properties)

指定したプロパティで、新しいトークンの役割を作成する。

class vault.VaultTool

genvid.toolbox.VaultTool の実装