Skip to content

torchbox/buckup

Repository files navigation

Buckup logo

buckup

Create S3 bucket, policy and user with one command. After creation it is ready to use on your project.

Features

  • Create bucket
  • Enable versioning
  • Set CORS
  • Create user and generate access key pair and give it permissions to the bucket.
  • Set policy to enable s3:GetObject permission on every object in your bucket to the public.

Dependencies

Installation

PyPI (pip)

python3 -m pip install buckup

Arch User Repository

Buckup can be found on AUR.

cd /tmp
git clone https://aur.archlinux.org/buckup.git
cd buckup
makepkg -si

Homebrew

Buckup can be installed from Torchbox's Homebrew tap.

brew tap torchbox/tap
brew install buckup

Development build

You can easily install buckup inside a virtual environment and work on it there, e.g.

git clone [email protected]:torchbox/buckup.git
cd buckup
python3 -m venv venv
source venv/bin/activate
pip install -e .
buckup

Usage

  1. First you need an AWS account. You need programmatic access key to use it with buckup.

    • If you have AWS CLI installed, you can save your credentials with aws configure; or
    • you can set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variable containing your credentials.

    Read boto3 documentation for more detail.

    1. If you want to restrict your access only to essential credentials to use buckup, please set them to:
      • iam:ListAccountAliases (not required to use)
      • s3:PutBucketPolicy
      • s3:CreateBucket
      • iam:GetUser
      • iam:CreateUser
      • s3:PutBucketCORS
      • s3:PutBucketVersioning
      • iam:CreateAccessKey
  2. After you set that up, you can type buckup and that should open the prompt.

    1. If you want to specify other than the default region, please use --region flag with buckup, e.g. buckup --region eu-west-2.
  3. After you answer all the questions you should obtain your bucket details that are ready to use in your application.

Screenshot of buckup’s command line output, showing the creation of a test bucket