Back up Android photos to Amazon S3 — step-by-step

Updated May 2026 · ~15 minutes

TL;DR.

Create a private S3 bucket in a region of your choice, create an IAM user with a least-privilege policy scoped to that bucket, generate access keys, paste them into Breazzy. Cost: $2.30 per 100 GB per month on S3 Standard, or $0.40 on Glacier Instant Retrieval if you add a lifecycle rule.

What you need

Step 1 — Create the S3 bucket

  1. Sign into the AWS Console, open the S3 service.
  2. Click Create bucket.
  3. Bucket name: must be globally unique. Try yourname-breazzy-photos.
  4. AWS Region: pick the one closest to you (us-east-1, eu-west-2, ap-southeast-2…). Note this — Breazzy needs it.
  5. Object Ownership: ACLs disabled (Bucket owner enforced).
  6. Block Public Access: leave Block all public access on.
  7. Bucket Versioning: optional. Enabling protects against accidental deletes from your phone; doubles storage when files change.
  8. Default encryption: SSE-S3 (Amazon S3 managed keys). Free, transparent.
  9. Click Create bucket.

Step 2 — Create an IAM user for the phone

  1. Open the IAM service, click Users → Create user.
  2. Username: breazzy-phone.
  3. Do not grant console access. Programmatic only.
  4. Permissions: Attach policies directly → click Create policy in a new tab.

Step 3 — Attach a least-privilege policy

In the policy editor, paste this JSON, replacing your-bucket with your bucket name:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
      "Resource": "arn:aws:s3:::your-bucket"
    },
    {
      "Effect": "Allow",
      "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"],
      "Resource": "arn:aws:s3:::your-bucket/*"
    }
  ]
}

Name it breazzy-phone-policy, create. Back on the user creation tab, refresh the policies list, tick breazzy-phone-policy, click Next → Create user.

Step 4 — Generate access keys

  1. Click the new breazzy-phone user → Security credentials tab → Create access key.
  2. Use case: Application running outside AWS. Acknowledge the warning, click Next.
  3. Description tag: breazzy-phone. Click Create access key.
  4. Copy the Access key ID and Secret access key. AWS shows the secret exactly once.

Step 5 — Configure Breazzy and back up

  1. Open Breazzy, Add destination, choose Amazon S3.
  2. Fill in:
    • Region — the AWS region from step 1, e.g. us-east-1.
    • Access Key — from step 4.
    • Secret Key — from step 4.
    • Bucket — your bucket name.
  3. Tap Test connection, then Save.
  4. Pick albums, plug in the charger, connect to Wi-Fi, start backup.

Optional — Auto-tier to Glacier Instant Retrieval

Standard S3 at $23/TB/mo is overkill for photos you might look at once a year. Add a lifecycle rule to move objects to Glacier Instant Retrieval (~$4/TB/mo) after 30 days:

  1. In the bucket, open Management → Lifecycle rules → Create lifecycle rule.
  2. Name: photos-to-glacier-ir.
  3. Apply to All objects in the bucket.
  4. Lifecycle actions: Move current versions to Glacier Instant Retrieval after 30 days.
  5. Create.

Glacier IR has millisecond retrieval like Standard, but charges $0.03/GB per retrieval. For a backup that you only download in emergencies, this is the cheapest tier worth using.

AWS-specific gotchas

Frequently asked

What does Amazon S3 cost for 100 GB of photos?

$2.30 per month for S3 Standard, or about $0.40 per month if you add a lifecycle rule to Glacier Instant Retrieval. Plus negligible request costs. Verified May 2026.

Why is S3 more expensive than B2 or R2?

Amazon prices for enterprise reliability and durability — many nines, multi-AZ, decades of track record. For a backup workload of one Android phone, that premium is hard to justify. Backblaze B2 is the more rational default.

Should I use S3 Intelligent-Tiering instead?

Intelligent-Tiering moves objects between tiers based on access. For a write-once-read-rarely photo backup, an explicit lifecycle rule straight to Glacier IR is cheaper and predictable.

What if I lose my phone?

In IAM, delete the access key for the breazzy-phone user. The bucket and its photos remain. Issue new keys for a replacement device.