JumpCloud AWS CLI Authentication with Device Trust
Project description
JumpCloud AWS CLI Authentication Utility
A Python utility for authenticating with AWS CLI using JumpCloud SAML and Device Trust certificates.
Features
- Browser-based authentication with JumpCloud
- Automatic Device Trust certificate handling
- SAML assertion capture and parsing
- AWS STS role assumption
- AWS CLI credential configuration
- Cross-platform (works on macOS, Windows, and Linux)
- Built-in ChromeDriver management support
Installation
Basic Installation
pip install jumpcloud-awscli
Installation with Automatic WebDriver Management
pip install jumpcloud-awscli[auto-webdriver]
Requirements
- Python 3.6+
- Chrome or Chromium browser
The package will use ChromeDriver in one of these ways:
- System-installed ChromeDriver (if available in your PATH)
- Automatic download via webdriver-manager (if you installed with
[auto-webdriver])
Usage
Basic Usage
# Authenticate with JumpCloud and update AWS credentials
jumpcloud-awscli login --url "https://sso.jumpcloud.com/saml2/yourapp"
All Options
jumpcloud-awscli login --url "https://sso.jumpcloud.com/saml2/yourapp" \
--profile "jumpcloud" \
--duration 43200 \
--region "us-west-2" \
--debug
Using Environment Variables
You can set the JumpCloud URL as an environment variable:
# Set the environment variable
export JUMPCLOUD_AWS_URL="https://sso.jumpcloud.com/saml2/yourapp"
# Then you can run without the --url parameter
jumpcloud-awscli login
Help Information
# Show help for all commands
jumpcloud-awscli --help
# Show help for the login command
jumpcloud-awscli login --help
How It Works
- Launches a Chrome browser session to authenticate with JumpCloud
- The browser automatically presents your Device Trust certificate during authentication
- After successful authentication, it captures the SAML assertion
- Parses the SAML assertion to extract available AWS roles
- Lets you select a role (if multiple are available)
- Uses AWS STS to assume the selected role with the SAML assertion
- Updates your AWS CLI credentials file with temporary credentials
Troubleshooting
Chrome/ChromeDriver Issues
If you encounter issues with Chrome or ChromeDriver:
-
First, try installing the package with automatic WebDriver management:
pip install jumpcloud-awscli[auto-webdriver]
-
If that doesn't work, you can install ChromeDriver manually:
For macOS:
brew install --cask chromedriver xattr -d com.apple.quarantine $(which chromedriver)
For Windows: Download from ChromeDriver website and add to PATH
For Linux:
# Debian/Ubuntu sudo apt-get install chromium-chromedriver # CentOS/RHEL sudo yum install chromedriver
Debug Mode
For more detailed output, use the --debug flag:
jumpcloud-awscli login --url "https://sso.jumpcloud.com/saml2/yourapp" --debug
macOS SSL Certificate Issues
If you encounter SSL certificate errors on macOS:
# Fix SSL certificates
/Applications/Python*/Install\ Certificates.command
Common Issues
- Certificate selection problems: If prompted for a certificate and it fails, check that your JumpCloud Device Trust certificate is properly installed.
- Authentication timeouts: If the process times out during authentication, check your network connection and ensure you're using the correct JumpCloud credentials.
- No roles found: Verify that your JumpCloud user has the proper AWS application role assignments.
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jumpcloud_awscli-0.2.1.tar.gz.
File metadata
- Download URL: jumpcloud_awscli-0.2.1.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5623bb9f72cbab8e054135ead8e698a2048f05d99e870be28d7d50a74da2346c
|
|
| MD5 |
fa483c7dcfb75dbd50cbb7c75594bb77
|
|
| BLAKE2b-256 |
f49207bd710646da987ef027dccfbc6aacd3fe29840a52866d0d20893af6c10f
|
File details
Details for the file jumpcloud_awscli-0.2.1-py3-none-any.whl.
File metadata
- Download URL: jumpcloud_awscli-0.2.1-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf12fc2936ebe33d77d6c64526fdf59badca3ad5314fbdf27f1422133ac1ae7e
|
|
| MD5 |
caeec8c9923b309e49385add1aa66b69
|
|
| BLAKE2b-256 |
88da73911a09a998ddd456da3622d3da032f0d6c368ab3f4f56ca7401d24ab5c
|