Skip to main content

1Password aws-vault like utility

Project description

op-aws-vault 🚀

A handy aws-vault-like utility built entirely on 1Password!

🤔 What is it?

Ever wished aws-vault played nicely with 1Password? Or found the official 1Password AWS plugin a little... quirky? This tool scratches that itch! ✨

It's a small Python script that mimics aws-vault's core behavior but integrates seamlessly with your 1Password vault. It leverages the power of the 1Password CLI (op).

Prerequisites:

  • A 1Password account
  • The 1Password CLI (op) installed and configured
  • The 1Password desktop app running and unlocked

Tested and working on macOS, Linux, Windows, and WSL2! ✅

Core Features:

  • 🔑 Execute commands or open a shell with temporary AWS credentials (including MFA support!) for any role you can assume.
  • 🌐 Log in to the AWS Management Console via federation with a single command.

No more juggling configuration files! All settings – AWS credentials, OTP secrets, and assumable roles – live securely within your 1Password vault. Set it up once, use it everywhere! 🌍

🛠️ How to install

  1. Create a Python Virtual Environment (recommended):
    python -m venv .venv
    source .venv/bin/activate # On Linux/macOS
    # .\.venv\Scripts\activate # On Windows
    
  2. Install using pip:
    pip install op-aws-vault
    

Tip: You might want to disable the 1Password AWS integration (unalias aws in your shell profile if needed) to avoid potential conflicts.

⚙️ Setup in 1Password

Create a new Login item (or use an existing one) in 1Password and add the following fields with these exact labels:

  • access key id (Your AWS Access Key ID)
  • secret access key (Your AWS Secret Access Key)
  • mfa serial (Your MFA device ARN, e.g., arn:aws:iam::123456789012:mfa/YourUser. Recommended!)
  • one-time password (Link this to the TOTP secret for your MFA device)
  • default-region (e.g., us-east-1, eu-west-1)
  • session name (Optional: A custom name for the AWS session. Defaults to op-aws-vault if omitted)
  • session duration (Optional: Set the default session duration, e.g., 15m, 1h, 8h. Overridden by the --duration command-line option. Defaults to 1h if neither is set.)

Adding Assumable Roles:

For each AWS role you want to assume, add a Text field with the label following the pattern role-{your-role-name}. The value should be the full ARN of the role.

Example:

  • Label: role-developer
  • Value: arn:aws:iam::987654321098:role/DeveloperRole

Add as many roles as you need!

Tagging:

Finally, add the tag aws-credentials to this 1Password item. This is how op-aws-vault finds your configuration.

Your item should look something like this:

Example Configuration

🚀 Usage

All commands require the role name as the first argument. This can be:

  • The name you defined after role- (e.g., developer from the example above).
  • default to use the base credentials directly (MFA will still be used if configured).

Expect 1Password to prompt for authentication periodically.

Common Optional Arguments:

  • --region <aws-region>: Specify the AWS region for the command (overrides default-region).
  • --duration <duration>: Set the session validity period (e.g., 15m, 1h, 8h). Defaults to 1h.

op-aws-vault exec 💻

Opens an authenticated shell or runs a command with the specified role's credentials.

Examples:

  • Open your default shell with the developer role credentials:
    op-aws-vault exec developer
    
  • Run a specific command (aws s3 ls) with the developer role:
    op-aws-vault exec developer -- aws s3 ls
    
  • Open a specific shell (/bin/bash) with the default credentials:
    op-aws-vault exec default -- /bin/bash
    

Unlike the original aws-vault, op-aws-vault sessions can be safely nested if needed.


op-aws-vault login 🌐

Generates a federated login URL for the AWS Management Console and opens it in your default web browser.

Example:

  • Log in to the console as the developer role:
    op-aws-vault login developer
    

Get URL Only:

If you prefer to copy the URL instead of opening a browser, use the --stdout flag:

op-aws-vault login developer --stdout

Happy vaulting! 🎉

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

op_aws_vault-0.0.9.tar.gz (20.5 MB view details)

Uploaded Source

Built Distribution

op_aws_vault-0.0.9-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file op_aws_vault-0.0.9.tar.gz.

File metadata

  • Download URL: op_aws_vault-0.0.9.tar.gz
  • Upload date:
  • Size: 20.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.2

File hashes

Hashes for op_aws_vault-0.0.9.tar.gz
Algorithm Hash digest
SHA256 47325e02eb76f8df35ec02deb5257ac8e5e03ab2d7fee68ff82f6bb5f469e20b
MD5 b9d47097780ae11bbc8da12f18c8a3b8
BLAKE2b-256 d4c95c4ae0c5f68ddde57a2b4cbbae28cdcd344f15b55b7074bb082cdc1022d1

See more details on using hashes here.

File details

Details for the file op_aws_vault-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for op_aws_vault-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 ee0c869745856f878478288828082e401eb64cb8b31aa1c4a0cc67a1e17d4d3a
MD5 037896874d4d77e1a5c7e38905703335
BLAKE2b-256 834663583165305925c42d54b15756815db99d1740ed965ce95569e9b80923af

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page