vault-get


Namevault-get JSON
Version 0.0.1.post1 PyPI version JSON
download
home_pageNone
SummaryPython hvac cli wrapper: get kv from hashicorp vault by auth token or jwt.
upload_time2024-11-19 13:02:10
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords vault kv secret hvac
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # vault-get
Python hvac cli wrapper: get kv from hashicorp vault by auth token or jwt. 

# Why
This tool helps when you don't have access to vanilla hashicorp **vault** binary and need only to retrieve kv from vault.

# Usage

vault-get can be used to print kv secrets via token or jwt auth to stdout.

## vault auth token

```bash
export VAULT_TOKEN=xxx
export VAULT_ADDRESS=https://vault.local

vault-get -a $VAULT_ADDRESS -m MyMountPoint -p my_secret_path -k my_secret_key
topsecret
```

## jwt gitlab-ci
Check your vault authentication method to know auth path.

```bash
vault read auth/jwt-1
```

```yaml
varables:
  CI_JWT_ROLE: role_gitlab_ci
  VAULT_JWT_PATH: jwt-1

job01:
  stage: test
  id_tokens:
    VAULT_ID_TOKEN:
      aud: $VAULT_ADDR
  before_script:
    - export MY_VALUE="$(vault-get -a $VAULT_ADDR -j $VAULT_ID_TOKEN -ap $VAULT_JWT_PATH -r $CI_JWT_ROLE -m MyMountPoint -p my_secret_path -k my_secret_key)"
  script:
    - echo $MY_VALUE

```


## cli help

```bash
vault-get --help
usage: vault-get [-h] [-v] [-a VAULT_ADDRESS] [-ap AUTH_PATH] [-r JWT_AUTH_ROLE] [-j JWT] -m MOUNT_POINT -p SECRET_PATH -k SECRET_KEY

Vault get secret. Simple hvac wrapper used to pull from hvault. Print kv-secret from vault to stdout.

options:
  -h, --help            show this help message and exit
  -v, --verbose         Set logging level to DEBUG. Warning: secrets will be revealed.

Vault:
  If jwt-auth-role and jwt are not set uses $VAULT_TOKEN env variable for auth.

  -a VAULT_ADDRESS, --vault-address VAULT_ADDRESS
                        Vault address. Example "https://vault.local". Default="https://127.0.0.1"
  -ap AUTH_PATH, --auth-path AUTH_PATH
                        Vault auth method auth path. Example "jwt-test". Default="jwt"
  -r JWT_AUTH_ROLE, --jwt-auth-role JWT_AUTH_ROLE
                        Auth role for jwt auth. Used in pair with --jwt.
  -j JWT, --jwt JWT     JWT for jwt auth. Used in pair with --jwt-auth-role.

Get secret by path and key:
  Printout secret value by mount-point, secret-path and secret-key.

  -m MOUNT_POINT, --mount-point MOUNT_POINT
                        Vault mount point. Example "MyMountPoint".
  -p SECRET_PATH, --secret-path SECRET_PATH
                        Vault secret path. Example "my_super_secret"
  -k SECRET_KEY, --secret-key SECRET_KEY
                        Vault secret key. Example "access_token"

Usage 
vault-get -m MyMountPoint -p my_secret_path -k my_secret_key

Examples:
    Use $VAULT_ADDR and $VAULT_TOKEN to access vault and auth:
        vault-get -m MyMountPoint -p my_secret_path -k my_secret_key
    Use JWT auth method in gitlab-ci job:
        vault-get -a https://vault.local -j $CI_JOB_JWT -r role_gitlab_ci -m MyMountPoint -p my_secret_path -k my_secret_key
```


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "vault-get",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "vault, kv, secret, hvac",
    "author": null,
    "author_email": "Alexander Onishchenko <alexonishchenko@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/d6/aa/b9df107cdaf0970d860327efe4d0c0f6afa90ad0c3779e66fd8db2331d3d/vault_get-0.0.1.post1.tar.gz",
    "platform": null,
    "description": "# vault-get\nPython hvac cli wrapper: get kv from hashicorp vault by auth token or jwt. \n\n# Why\nThis tool helps when you don't have access to vanilla hashicorp **vault** binary and need only to retrieve kv from vault.\n\n# Usage\n\nvault-get can be used to print kv secrets via token or jwt auth to stdout.\n\n## vault auth token\n\n```bash\nexport VAULT_TOKEN=xxx\nexport VAULT_ADDRESS=https://vault.local\n\nvault-get -a $VAULT_ADDRESS -m MyMountPoint -p my_secret_path -k my_secret_key\ntopsecret\n```\n\n## jwt gitlab-ci\nCheck your vault authentication method to know auth path.\n\n```bash\nvault read auth/jwt-1\n```\n\n```yaml\nvarables:\n  CI_JWT_ROLE: role_gitlab_ci\n  VAULT_JWT_PATH: jwt-1\n\njob01:\n  stage: test\n  id_tokens:\n    VAULT_ID_TOKEN:\n      aud: $VAULT_ADDR\n  before_script:\n    - export MY_VALUE=\"$(vault-get -a $VAULT_ADDR -j $VAULT_ID_TOKEN -ap $VAULT_JWT_PATH -r $CI_JWT_ROLE -m MyMountPoint -p my_secret_path -k my_secret_key)\"\n  script:\n    - echo $MY_VALUE\n\n```\n\n\n## cli help\n\n```bash\nvault-get --help\nusage: vault-get [-h] [-v] [-a VAULT_ADDRESS] [-ap AUTH_PATH] [-r JWT_AUTH_ROLE] [-j JWT] -m MOUNT_POINT -p SECRET_PATH -k SECRET_KEY\n\nVault get secret. Simple hvac wrapper used to pull from hvault. Print kv-secret from vault to stdout.\n\noptions:\n  -h, --help            show this help message and exit\n  -v, --verbose         Set logging level to DEBUG. Warning: secrets will be revealed.\n\nVault:\n  If jwt-auth-role and jwt are not set uses $VAULT_TOKEN env variable for auth.\n\n  -a VAULT_ADDRESS, --vault-address VAULT_ADDRESS\n                        Vault address. Example \"https://vault.local\". Default=\"https://127.0.0.1\"\n  -ap AUTH_PATH, --auth-path AUTH_PATH\n                        Vault auth method auth path. Example \"jwt-test\". Default=\"jwt\"\n  -r JWT_AUTH_ROLE, --jwt-auth-role JWT_AUTH_ROLE\n                        Auth role for jwt auth. Used in pair with --jwt.\n  -j JWT, --jwt JWT     JWT for jwt auth. Used in pair with --jwt-auth-role.\n\nGet secret by path and key:\n  Printout secret value by mount-point, secret-path and secret-key.\n\n  -m MOUNT_POINT, --mount-point MOUNT_POINT\n                        Vault mount point. Example \"MyMountPoint\".\n  -p SECRET_PATH, --secret-path SECRET_PATH\n                        Vault secret path. Example \"my_super_secret\"\n  -k SECRET_KEY, --secret-key SECRET_KEY\n                        Vault secret key. Example \"access_token\"\n\nUsage \nvault-get -m MyMountPoint -p my_secret_path -k my_secret_key\n\nExamples:\n    Use $VAULT_ADDR and $VAULT_TOKEN to access vault and auth:\n        vault-get -m MyMountPoint -p my_secret_path -k my_secret_key\n    Use JWT auth method in gitlab-ci job:\n        vault-get -a https://vault.local -j $CI_JOB_JWT -r role_gitlab_ci -m MyMountPoint -p my_secret_path -k my_secret_key\n```\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python hvac cli wrapper: get kv from hashicorp vault by auth token or jwt.",
    "version": "0.0.1.post1",
    "project_urls": {
        "homepage": "https://github.com/alexonishchenko/vault-get",
        "repository": "https://github.com/alexonishchenko/vault-get"
    },
    "split_keywords": [
        "vault",
        " kv",
        " secret",
        " hvac"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "789a7a5835765dd609f8934525108d4a9bb803f3046ded32350e36e231d77029",
                "md5": "3ce3c92ced83cb492e06a4f171b5854f",
                "sha256": "ec696400e8205972a7fe4ad7954fba5d2d8404af58580a87a94974084185ce50"
            },
            "downloads": -1,
            "filename": "vault_get-0.0.1.post1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3ce3c92ced83cb492e06a4f171b5854f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 4210,
            "upload_time": "2024-11-19T13:02:09",
            "upload_time_iso_8601": "2024-11-19T13:02:09.624007Z",
            "url": "https://files.pythonhosted.org/packages/78/9a/7a5835765dd609f8934525108d4a9bb803f3046ded32350e36e231d77029/vault_get-0.0.1.post1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d6aab9df107cdaf0970d860327efe4d0c0f6afa90ad0c3779e66fd8db2331d3d",
                "md5": "95b3a2296d95e9e42c94c894076c5aa0",
                "sha256": "5927545f44f83f3a77e511dc0d2ad42c7e7a6e51e36646445edff085c8995053"
            },
            "downloads": -1,
            "filename": "vault_get-0.0.1.post1.tar.gz",
            "has_sig": false,
            "md5_digest": "95b3a2296d95e9e42c94c894076c5aa0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 3647,
            "upload_time": "2024-11-19T13:02:10",
            "upload_time_iso_8601": "2024-11-19T13:02:10.786617Z",
            "url": "https://files.pythonhosted.org/packages/d6/aa/b9df107cdaf0970d860327efe4d0c0f6afa90ad0c3779e66fd8db2331d3d/vault_get-0.0.1.post1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-19 13:02:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "alexonishchenko",
    "github_project": "vault-get",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "vault-get"
}
        
Elapsed time: 0.39963s