Stouts / Trellis Backup S3 Permissions Error

I’m getting the below output when trying to use duply to connect to Amazon S3 using the tasks set by the Trellis Backup.

I have duply backups working on two other servers. There is one difference between the two working servers and the 2 non-working servers. The working servers are using Trellis commit #762 and the two non-working servers are using Trellis commit #837 - so maybe something changed between these commits that made the Trellis backups tasks stop work?

I copied the Amazon permissions exactly from a working instance and just changed the bucket names.

Amazon file backups with the S3 Uploads plugin is working (successfully) with the same IAM user key/secret as I’m using for the trellis backups.

I’ve tried recreating the IAM user and recreating the buckets.

I’m stuck and your help would be greatly appreciated!

admin@DO-AllureWebSolutions-1:/srv/www/allureprojects.com/current$ duply allureprojects.com_database backup
Start duply v1.9.1, time is 2017-08-30 22:31:36.
Using profile '/etc/duply/allureprojects.com_database'.
Using installed duplicity version 0.7.06, python 2.7.12, gpg 1.4.20 (Home: ~/.gnupg), awk 'GNU Awk 4.1.3, API: 1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0)', bash '4.3.48(1)-release (x86_64-pc-linux-gnu)'.
Checking TEMP_DIR '/tmp' is a folder (OK)
Checking TEMP_DIR '/tmp' is writable (OK)
TODO: reimplent tmp space check
Test - En/Decryption skipped. (GPG disabled)

--- Start running command PRE at 22:31:36.539 ---
Running '/etc/duply/allureprojects.com_database/pre' - OK
--- Finished state OK at 22:31:37.772 - Runtime 00:00:01.233 ---

--- Start running command BKP at 22:31:37.792 ---
Warning: Option --exclude-globbing-filelist is pending deprecation and will be removed in a future release.
--include-filelist and --exclude-filelist now accept globbing characters and should be used instead.
Traceback (most recent call last):
  File "/usr/bin/duplicity", line 1532, in <module>
    with_tempdir(main)
  File "/usr/bin/duplicity", line 1526, in with_tempdir
    fn()
  File "/usr/bin/duplicity", line 1364, in main
    action = commandline.ProcessCommandLine(sys.argv[1:])
  File "/usr/lib/python2.7/dist-packages/duplicity/commandline.py", line 1116, in ProcessCommandLine
    backup, local_pathname = set_backend(args[0], args[1])
  File "/usr/lib/python2.7/dist-packages/duplicity/commandline.py", line 1005, in set_backend
    globals.backend = backend.get_backend(bend)
  File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 223, in get_backend
    obj = get_backend_object(url_string)
  File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 209, in get_backend_object
    return factory(pu)
  File "/usr/lib/python2.7/dist-packages/duplicity/backends/_boto_single.py", line 161, in __init__
    self.resetConnection()
  File "/usr/lib/python2.7/dist-packages/duplicity/backends/_boto_single.py", line 194, in resetConnection
    raise e
S3ResponseError: S3ResponseError: 403 Forbidden


22:31:38.090 Task 'BKP' failed with exit code '30'.
--- Finished state FAILED 'code 30' at 22:31:38.090 - Runtime 00:00:00.298 ---

--- Start running command POST at 22:31:38.108 ---
Running '/etc/duply/allureprojects.com_database/post' - OK
--- Finished state OK at 22:31:38.126 - Runtime 00:00:00.018 ---