aws-encryption-sdk-cli
This command line tool can be used to encrypt and decrypt files and directories using the AWS Encryption SDK.
What it is and what it does
aws-encryption-sdk-cli is a command-line wrapper around the AWS Encryption SDK that lets you encrypt and decrypt files and directories from the shell. It handles single files, stdin/stdout, pattern-matched files, and entire directory trees, with optional recursive processing. You specify an AWS KMS key (or keys) as the master key provider, and the tool manages the encryption envelope and metadata.
The tool is designed for operational workflows where you need to protect files at rest using AWS KMS without writing custom code. It supports encryption context (key-value metadata that travels with the ciphertext), metadata output in JSON format, and flexible input/output modes similar to Unix utilities like cp. On decrypt, you can require that specific encryption context keys or pairs be present in the message, and the tool will skip files that don't match those requirements.
Use it for:
- Encrypt sensitive files before uploading to S3 or other storage, using AWS KMS for key management.
- Batch-encrypt entire directory trees in CI/CD pipelines with consistent encryption context for audit trails.
- Decrypt archived encrypted files in shell scripts, verifying encryption context requirements before processing.
- Protect configuration files or secrets on disk using AWS KMS without embedding encryption logic in application code.
- Generate encrypted backups with metadata logging for compliance and forensic purposes.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Command-line tool to encrypt and decrypt files and directories using AWS Encryption SDK, with support for AWS KMS key management and encryption context.
Yes, if you need a straightforward CLI for AWS KMS-based file encryption in operational workflows. The tool is stable, has no known vulnerabilities, and low install friction. The aging maintenance status (260 days since last release) is a minor concern for long-term support, but the package is marked Production/Stable and the underlying aws-encryption-sdk is actively maintained. Install it if your use case fits; avoid it if you need active feature development or prefer a more frequently updated tool.
Install
aws-encryption-sdk-cli on PyPI
pip
pip install aws-encryption-sdk-cliuv
uv add aws-encryption-sdk-clipoetry
poetry add aws-encryption-sdk-cliInstalling aws-encryption-sdk-cli
Before you install
Low install friction with a pure Python wheel distribution. Maintenance status is aging—last release was 260 days ago—but the package is marked Production/Stable and carries no known vulnerabilities.
License in practice
Licensed under Apache License 2.0 (permissive), so you can use, modify, and distribute it freely as long as you include the license notice and state changes.
Quickstart
pip install aws-encryption-sdk-cli
aws-encryption-cli encrypt --master-keys provider=aws-kms key=arn:aws:kms:region:account:key/id --input plaintext.txt --output plaintext.txt.encrypted
Requires Python 3.10+; aws-encryption-sdk >= 3.1.0 must be installed; cryptography library may require system-level build dependencies (see cryptography installation guide for your OS).
Verify before relying
- Whether the package actively maintains compatibility with Python 3.12 or if it is tested against it despite the classifier.
- Current state of the GitHub repository and whether it is actively maintained by AWS or community-driven.
- Performance characteristics for large files or directories and any memory constraints.
Package facts
| License | Apache License 2.0 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — base64io, aws-encryption-sdk, setuptools, attrs |
| Maintenance | aging — 260 days since the last release |
| First released | |
| Downloads | 97,274/month — #13,158 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: aws_encryption_sdk_cli-4.3.0-py2.py3-none-any.whl
Keywords: aws-encryption-sdk, aws, kms, encryption, cli, command, line
Tags
More Security packages
Provides Python bindings to the FreeDesktop.org…
permissive · top 1,000 on PyPI
msalMSAL for Python handles OAuth2 and OpenID…
permissive · top 1,000 on PyPI
joserfcjoserfc implements JOSE standards (JWS, JWE,…
permissive · top 1,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
argon2-cffi-bindingsProvides low-level CFFI bindings to the…
permissive · top 1,000 on PyPI
adalADAL for Python authenticates applications with…
permissive · top 1,000 on PyPI
aws-encryption-sdkEncrypts and decrypts data using AWS KMS keys…
permissive · top 5,000 on PyPI
sopsySOPSy wraps the SOPS command-line tool to…
permissive · top 15,000 on PyPI
credstashCredStash stores and retrieves secrets using…
permissive · top 15,000 on PyPI
cryptoProvides command-line tools to encrypt and…
permissive · top 5,000 on PyPI
aws-cdk.aws-kmsProvides AWS CDK constructs for defining and…
permissive · top 15,000 on PyPI
aws-cryptographic-material-providersProvides cryptographic material management and…
unclear · top 15,000 on PyPI
ansible-vaultReads and writes Ansible vault-encrypted YAML…
copyleft · top 15,000 on PyPI
dynamodb-encryption-sdkEncrypts and decrypts DynamoDB items…
permissive · top 15,000 on PyPI
kasa-cryptProvides fast encryption and decryption…
permissive · top 15,000 on PyPI
daveyImplements the Discord Audio & Video End-to-End…
permissive · top 5,000 on PyPI