Skip to main content

S3 Encryption Client for Python

Project description

Latest Version Supported Python Versions ci

Client-side encryption for S3

You can find the source on GitHub.

Getting Started

Required Prerequisites

  • Python 3.6+

Installation

Usage

import boto3
from s3_encryption_sdk import EncryptedClient
from s3_encryption_sdk.materials_providers import KmsMaterialsProvider


materials_provider = KmsMaterialsProvider(
   key_id="alias/YourAlias",
   client=boto3.client("kms", region_name="us-east-1"),
)

s3 = boto3.client("s3", region_name="us-east-1")

crypto_s3 = EncryptedClient(
   client=s3,
   materials_provider=materials_provider,
)

key = "4711"
plaintext = "foo bar"

crypto_s3.put_object(
   Bucket=bucket.name,
   Key=key,
   Body=plaintext,
)

encrypted_obj = s3.get_object(
   Bucket=bucket.name,
   Key="object",
)

decrypted_obj = crypto_s3.get_object(
   Bucket=bucket.name,
   Key="object",
)

assert plaintext != encrypted_obj["Body"].read().decode("utf8")
assert plaintext == decrypted_obj["Body"].read().decode("utf8")

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

s3-encryption-sdk-0.0.3.tar.gz (9.3 kB view hashes)

Uploaded Source

Built Distribution

s3_encryption_sdk-0.0.3-py2.py3-none-any.whl (16.6 kB view hashes)

Uploaded Python 2 Python 3

Supported by

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