---
title: "AWS SDK for Python (boto3) With Wasabi"
slug: "how-do-i-use-aws-sdk-for-python-boto3-with-wasabi"
updated: 2026-05-28T16:00:58Z
published: 2026-05-28T16:00:58Z
canonical: "docs.wasabi.com/how-do-i-use-aws-sdk-for-python-boto3-with-wasabi"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wasabi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AWS SDK for Python (boto3) With Wasabi

[AWS SDK for Python (boto3)](https://aws.amazon.com/sdk-for-python/) has been validated for use with Wasabi. To use the AWS SDK for Python:

1. Install the [AWS SDK for Python using pip](https://aws.amazon.com/sdk-for-python/).
2. Configure an additional [AWS CLI profile for Wasabi](https://docs.wasabi.com/docs/how-do-i-use-aws-cli-with-wasabi) account using the Wasabi keys (optional).

In the following IAM and S3 examples, the profile name is set as "wasabi" in the "~/.aws/credentials" file. While the examples use Wasabi's us-east-1 storage region, you can use another appropriate [Wasabi service URL](https://docs.wasabi.com/docs/what-are-the-service-urls-for-wasabis-different-storage-regions).

Refer to the [AWS documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html) for additional examples.

Send all IAM requests to [iam.wasabisys.com](http://sts.wasabisys.com/).

## Setting the Credentials

Set the connection in boto3 via the client method.

```plaintext
import boto3

# Use the following code to connect using Wasabi profile from .aws/credentials file
# for IAM us-east-1 is the default endpoint.
session = boto3.Session(profile_name="wasabi")
credentials = session.get_credentials()
aws_access_key_id = credentials.access_key
aws_secret_access_key = credentials.secret_key

iam = boto3.client('<connection name>',
                  endpoint_url='<endpoint-url>',
                  aws_access_key_id=aws_access_key_id,
                  aws_secret_access_key=aws_secret_access_key)

# Use the following code to connect directly via raw credentials.
# iam = boto3.client('<connection name>',
#                    endpoint_url='<endpoint-url>',
#                    aws_access_key_id="<insert-access-key>",
#                    aws_secret_access_key="<insert-secret-key>")
```

## Connecting to IAM and S3 Endpoints

### IAM

```plaintext
import boto3

# Use the following code to connect using Wasabi profile from .aws/credentials file
# for IAM us-east-1 is the default endpoint.
session = boto3.Session(profile_name="wasabi")
credentials = session.get_credentials()
aws_access_key_id = credentials.access_key
aws_secret_access_key = credentials.secret_key

iam = boto3.client('iam',
                  endpoint_url='https://iam.wasabisys.com',
                  aws_access_key_id=aws_access_key_id,
                  aws_secret_access_key=aws_secret_access_key,
                  region_name='us-east-1')

# Use the following code to connect directly via raw credentials.
# for IAM us-east-1 is the default endpoint.
# iam = boto3.client('iam',
#                    endpoint_url='https://iam.wasabisys.com',
#                    aws_access_key_id="<insert-access-key>",
#                    aws_secret_access_key="<insert-secret-key>",
#                    region_name='us-east-1')
```

### S3

```plaintext
import boto3

# Use the following code to connect using Wasabi profile from .aws/credentials file
session = boto3.Session(profile_name="wasabi")
credentials = session.get_credentials()
aws_access_key_id = credentials.access_key
aws_secret_access_key = credentials.secret_key

s3 = boto3.client('s3',
                  endpoint_url='https://s3.wasabisys.com',
                  aws_access_key_id=aws_access_key_id,
                  aws_secret_access_key=aws_secret_access_key)

# Use the following code to connect directly via raw credentials.
# s3 = boto3.client('s3',
#                   endpoint_url='https://s3.wasabisys.com',
#                   aws_access_key_id="<insert-access-key>",
#                   aws_secret_access_key="<insert-secret-key>")
```

## Creating a User Using IAM

```plaintext
import boto3

# Use the following code to connect using Wasabi profile from .aws/credentials file
# for IAM us-east-1 is the default endpoint.
session = boto3.Session(profile_name="wasabi")
credentials = session.get_credentials()
aws_access_key_id = credentials.access_key
aws_secret_access_key = credentials.secret_key

iam = boto3.client('iam',
                  endpoint_url='https://iam.wasabisys.com',
                  aws_access_key_id=aws_access_key_id,
                  aws_secret_access_key=aws_secret_access_key,
                  region_name='us-east-1')

# Use the following code to connect directly via raw credentials.
# for IAM us-east-1 is the default endpoint.
# iam = boto3.client('iam',
#                    endpoint_url='https://iam.wasabisys.com',
#                    aws_access_key_id="<insert-access-key>",
#                    aws_secret_access_key="<insert-secret-key>",
#                    region_name='us-east-1')

iam.create_user(UserName='<iam-user>')
```

## Creating a Bucket

```plaintext
import boto3

# Use the following code to connect using Wasabi profile from .aws/credentials file
session = boto3.Session(profile_name="wasabi")
credentials = session.get_credentials()
aws_access_key_id = credentials.access_key
aws_secret_access_key = credentials.secret_key

s3 = boto3.client('s3',
                  endpoint_url='https://s3.wasabisys.com',
                  aws_access_key_id=aws_access_key_id,
                  aws_secret_access_key=aws_secret_access_key)

# Use the following code to connect directly via raw credentials.
# s3 = boto3.client('s3',
#                   endpoint_url='https://s3.wasabisys.com',
#                   aws_access_key_id="<insert-access-key>",
#                   aws_secret_access_key="<insert-secret-key>")

bucket_name = "<bucket-name>"

s3.create_bucket(Bucket=bucket_name)
```

## Uploading an Object to the Bucket

```plaintext

import boto3

# Use the following code to connect using Wasabi profile from .aws/credentials file
session = boto3.Session(profile_name="wasabi")
credentials = session.get_credentials()
aws_access_key_id = credentials.access_key
aws_secret_access_key = credentials.secret_key

s3 = boto3.client('s3',
                  endpoint_url='https://s3.wasabisys.com',
                  aws_access_key_id=aws_access_key_id,
                  aws_secret_access_key=aws_secret_access_key)

# Use the following code to connect directly via raw credentials.
# s3 = boto3.client('s3',
#                   endpoint_url='https://s3.wasabisys.com',
#                   aws_access_key_id="<insert-access-key>",
#                   aws_secret_access_key="<insert-secret-key>")

file_path = "<file-to-upload>"
bucket_name = "<bucket-name>"
key_name = "<key-name>"

s3.put_object(Body=file_path, Bucket=bucket_name, Key=key_name)
```

## Reading an Object From the Bucket

```plaintext
import boto3

# Use the following code to connect using Wasabi profile from .aws/credentials file
session = boto3.Session(profile_name="wasabi")
credentials = session.get_credentials()
aws_access_key_id = credentials.access_key
aws_secret_access_key = credentials.secret_key

s3 = boto3.client('s3',
                  endpoint_url='https://s3.wasabisys.com',
                  aws_access_key_id=aws_access_key_id,
                  aws_secret_access_key=aws_secret_access_key)

# Use the following code to connect directly via raw credentials.
# s3 = boto3.client('s3',
#                   endpoint_url='https://s3.wasabisys.com',
#                   aws_access_key_id="<insert-access-key>",
#                   aws_secret_access_key="<insert-secret-key>")

bucket_name = "<bucket-name>"
key_name = "<key-name>"

s3.get_object(Bucket=bucket_name, Key=key_name)
```

## Deleting the Object From the Bucket

```plaintext
import boto3

# Use the following code to connect using Wasabi profile from .aws/credentials file
session = boto3.Session(profile_name="wasabi")
credentials = session.get_credentials()
aws_access_key_id = credentials.access_key
aws_secret_access_key = credentials.secret_key

s3 = boto3.client('s3',
                  endpoint_url='https://s3.wasabisys.com',
                  aws_access_key_id=aws_access_key_id,
                  aws_secret_access_key=aws_secret_access_key)

# Use the following code to connect directly via raw credentials.
# s3 = boto3.client('s3',
#                   endpoint_url='https://s3.wasabisys.com',
#                   aws_access_key_id="<insert-access-key>",
#                   aws_secret_access_key="<insert-secret-key>")

bucket_name = "<bucket-name>"
key_name = "<key-name>"

s3.delete_object(Bucket=bucket_name, Key=key_name)
```
