garage/doc/book/src/getting_started/bucket.md
2021-03-17 22:06:37 +01:00

2 KiB

Create buckets and keys

We use a command named garagectl which is in fact an alias you must define as explained in the Control the daemon section.

In this section, we will suppose that we want to create a bucket named nextcloud-bucket that will be accessed through a key named nextcloud-app-key.

Don't forget that help command and --help subcommands can help you anywhere, the CLI tool is self-documented! Two examples:

garagectl help
garagectl bucket allow --help

Create a bucket

Fine, now let's create a bucket (we imagine that you want to deploy nextcloud):

garagectl bucket create nextcloud-bucket

Check that everything went well:

garagectl bucket list
garagectl bucket info nextcloud-bucket

Create an API key

Now we will generate an API key to access this bucket. Note that API keys are independent of buckets: one key can access multiple buckets, multiple keys can access one bucket.

Now, let's start by creating a key only for our PHP application:

garagectl key new --name nextcloud-app-key

You will have the following output (this one is fake, key_id and secret_key were generated with the openssl CLI tool):

Key { 
  key_id: "GK3515373e4c851ebaad366558", 
  secret_key: "7d37d093435a41f2aab8f13c19ba067d9776c90215f56614adad6ece597dbb34", 
  name: "nextcloud-app-key", 
  name_timestamp: 1603280506694, 
  deleted: false, 
  authorized_buckets: [] 
}

Check that everything works as intended (be careful, info works only with your key identifier and not with its friendly name!):

garagectl key list
garagectl key info GK3515373e4c851ebaad366558

Allow a key to access a bucket

Now that we have a bucket and a key, we need to give permissions to the key on the bucket!

garagectl bucket allow \
  --read \
  --write 
  nextcloud-bucket \
  --key GK3515373e4c851ebaad366558

You can check at any times allowed keys on your bucket with:

garagectl bucket info nextcloud-bucket