For the sake of pointing out the AWS creds which I think is what you are hinting at with "check permission keys". As I was in my original bash script, and for testing I am exporting in my shell: AWS_ACCESS_KEY_ID=$akey AWS_SECRET_ACCESS_KEY=$sakey PASSPHRASE=$passphrase
s3cmd seemed to like this without intervention, but I manually made ~/.s3cfg and verified that working as well. I also created an .aws/credentials file with [default] aws_access_key_id = $akey aws_secret_access_key = $sakey I then verified that boto3 was seeing this with ubuntu@duplicity-f:~$ python3 Python 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import boto3 >>> client = boto3.client('s3') >>> client.list_buckets() {'ResponseMetadata': {'RequestId': '$responseid', 'HostId': '$hostid', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amz-id-2': '$amz-id-2', 'x-amz-request-id': 'amz-request-id',[snip],}} And this properly returns the buckets in this IAM account, so I assume boto3 is properly able to hit the s3 credentials file. I sanitized some data, hopefully which doesn't nullify the utility. Attaching the full sanitized response as boto3_demo_working.log My python is very rusty, I'm more or less bashing my way through verifying all of this so if something would be more effective please let me know. That said, I am still unable to get past the 403 in the duplicity run. Attaching full 2>&1 output as duplicity_demo_nonworking.log. Again, sanitized as much as possible, while still not obfuscating the important parts (hopefully). And just to provide some clean and clear repro steps: I am using a fresh focal image in multipass for consistent clean testing. # apt update; apt dist-upgrade; apt install duplicity python3-boto3 ubuntu@duplicity-f:~$ lsb_release -a ; uname -a ; dpkg -l | grep duplicity ; dpkg -l | grep -i boto No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.1 LTS Release: 20.04 Codename: focal Linux duplicity-f 5.4.0-54-generic #60-Ubuntu SMP Fri Nov 6 10:37:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux ii duplicity 0.8.11.1612-1 amd64 encrypted bandwidth-efficient backup ii python3-boto3 1.9.253-1 all Python interface to Amazon's Web Services - Python 3.x ii python3-botocore 1.16.19+repack-1ubuntu0.20.04.1 all Low-level, data-driven core of boto 3 (Python 3) Please let me know what else I may be able to provide. ** Attachment added: "duplicity -v9 output with command" https://bugs.launchpad.net/ubuntu/+source/duplicity/+bug/1904622/+attachment/5436047/+files/duplicity_demo_nonworking.log -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to duplicity in Ubuntu. https://bugs.launchpad.net/bugs/1904622 Title: boto3+s3 bucket fails Status in Duplicity: Incomplete Status in duplicity package in Ubuntu: New Bug description: I have a duplicity job that runs on multiple hosts, and am now having failures on my 20.04 hosts. The syntax for the job (as I am currently testing to debug) is: duplicity --dry-run list-current-files --name $name --s3-use-ia --archive-dir $archiveDir --tempdir $tmpDir --s3-multipart-chunk-size 256 --s3-use-multiprocessing --volsize 1024 --verbosity 8 boto3+s3://s3.amazonaws.com/bucket.name Using the duplicity packages from focal/main duplicity=0.8.11.1612-1 And I installed the boto packages from focal/universe python3-boto3=1.9.253-1 python3-botocore=1.14.14+repack-1 This runs into the error: Using temporary directory $tmpDir/duplicity-iyhq3se4-tempdir Traceback (innermost last): File "/usr/bin/duplicity", line 106, in <module> with_tempdir(main) File "/usr/bin/duplicity", line 92, in with_tempdir fn() File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 1525, in main action = commandline.ProcessCommandLine(sys.argv[1:]) File "/usr/lib/python3/dist-packages/duplicity/commandline.py", line 1175, in ProcessCommandLine globals.backend = backend.get_backend(args[0]) File "/usr/lib/python3/dist-packages/duplicity/backend.py", line 225, in get_backend obj = get_backend_object(url_string) File "/usr/lib/python3/dist-packages/duplicity/backend.py", line 211, in get_backend_object return factory(pu) File "/usr/lib/python3/dist-packages/duplicity/backends/s3_boto3_backend.py", line 85, in __init__ self.reset_connection() File "/usr/lib/python3/dist-packages/duplicity/backends/s3_boto3_backend.py", line 96, in reset_connection self.s3.meta.client.head_bucket(Bucket=self.bucket_name) File "/home/ubuntu/.local/lib/python3.8/site-packages/botocore/client.py", line 357, in _api_call return self._make_api_call(operation_name, kwargs) File "/home/ubuntu/.local/lib/python3.8/site-packages/botocore/client.py", line 676, in _make_api_call raise error_class(parsed_response, operation_name) botocore.exceptions.ClientError: An error occurred (403) when calling the HeadBucket operation: Forbidden I then tried the duplicity snap from the snap store, both the stable and edge builds, with the same issue: Main action: list-current ================================================================================ duplicity 0.8.17 Args: /snap/duplicity/138/bin/duplicity --dry-run --ignore-errors list-current-files --name $name --s3-use-ia --archive-dir $archiveDir --tempdir $tmpDir --s3-multipart-chunk-size 256 --s3-use-multiprocessing --volsize 1024 --verbosity 8 boto3+s3://s3.amazonaws.com/bucket.name Linux duplicity 5.4.0-53-generic #59-Ubuntu SMP Wed Oct 21 09:38:44 UTC 2020 x86_64 x86_64 /snap/duplicity/141/usr/bin/python3 3.6.9 (default, Oct 8 2020, 12:12:24) [GCC 8.4.0] ================================================================================ Attempt 1 failed. ClientError: An error occurred (403) when calling the HeadBucket operation: Forbidden Main action: list-current ================================================================================ duplicity 0.8.18.dev11 Args: /snap/duplicity/141/bin/duplicity --dry-run --ignore-errors list-current-files --name $name --s3-use-ia --archive-dir $archiveDir --tempdir $tmpDir --s3-multipart-chunk-size 256 --s3-use-multiprocessing --volsize 1024 --verbosity 8 boto3+s3://s3.amazonaws.com/bucket.name Linux duplicity 5.4.0-53-generic #59-Ubuntu SMP Wed Oct 21 09:38:44 UTC 2020 x86_64 x86_64 /snap/duplicity/141/usr/bin/python3 3.6.9 (default, Oct 8 2020, 12:12:24) [GCC 8.4.0] ================================================================================ Attempt 1 failed. ClientError: An error occurred (403) when calling the HeadBucket operation: Forbidden I also tried to update the boto3/botocore packages by way of pip3: pip3 freeze | grep boto boto3==1.16.19 botocore==1.19.19 And lastly as a last ditch, I tried to pull the packages from the groovy/universe repo, bringing them to: python3-boto3 1.13.14-1 python3-botocore 1.17.22+repack-1_all I have also tried in a 20.10 system as well to see if any changes there, but same results. Hoping for something I can look at to get this back working as it was in 18.04 since 14.04. For good measure, I verified in a bionic build that using the same arguments as above with duplicity=0.7.17 python-boto=2.44.0-1ubuntu2.18.04.1 I then verified by uninstalling the deb and installing the snap (0.8.17) on bionic that the behavior stays the same. And just to satisfy the 1-4 guidelines: 1. The main system I am having issues with: $ lsb_release -rd Description: Ubuntu 20.04.1 LTS Release: 20.04 Also tested against $ lsb_release -rd Description: Ubuntu 18.04.5 LTS Release: 18.04 $ lsb_release -rd Description: Ubuntu 20.10 Release: 20.10 2. $ apt-cache policy duplicity duplicity: Installed: 0.8.11.1612-1 Candidate: 0.8.11.1612-1 Version table: *** 0.8.11.1612-1 500 500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages 100 /var/lib/dpkg/status 3. Expect duplicity to function against my s3 bucket. 4. botocore.exceptions.ClientError: An error occurred (403) when calling the HeadBucket operation: Forbidden To manage notifications about this bug go to: https://bugs.launchpad.net/duplicity/+bug/1904622/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp