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)

ベースクラス: genvid.toolbox.consul.ConsulTool

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

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

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

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

NAME = 'Vault'
DESCRIPTION = 'A tool for interfacing with Vault.'
VAULT_TOKEN_FILE = None

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

バージョン 1.30.0 で追加.

VAULT_KEYS_FILE = None

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

バージョン 1.30.0 で追加.

VAULT_TOKEN = None

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

VAULT_KEYS = None

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

VAULT_ADDR = None

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

GENVID_VAULT_POLICIES_FOLDER = None

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

GENVID_VAULT_TOKEN_ROLES_FOLDER = None

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

DEFAULT_PKI_PATH = None

これは、デフォルトで使用する 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 パラメータを削除しました。

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: typing.Union[str, NoneType] = None)

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

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

パラメータ:folder – 検索するフォルダ。None の場合は GENVID_VAULT_POLICIES_FOLDER を使用する。
vault_load_roles(folder: typing.Union[str, NoneType] = 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: typing.Union[str, NoneType] = 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 の実装