From 32cfd1ed52002bdcc9e7f97560f9bf74824be0f1 Mon Sep 17 00:00:00 2001 From: Michael Meidlinger Date: Fri, 19 May 2023 13:25:18 +0200 Subject: [PATCH] Change how backup.py script deals with S3 backups. In case that no static AWS credentials are specified, we try to create the boto3 client without explicitly passing static credentials. This way, we can benedit from dynamic credentials in AWS environments (e.g. using EC2 instance roles) --- management/backup.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/management/backup.py b/management/backup.py index 06285ba5..1afe9e93 100755 --- a/management/backup.py +++ b/management/backup.py @@ -492,10 +492,13 @@ def list_target_files(config): # connect to the region & bucket try: - s3 = boto3.client('s3', \ - endpoint_url=f'https://{target.hostname}', \ - aws_access_key_id=config['target_user'], \ - aws_secret_access_key=config['target_pass']) + if config['target_user'] == "" and config['target_pass'] == "": + s3 = boto3.client('s3', endpoint_url=f'https://{target.hostname}') + else: + s3 = boto3.client('s3', \ + endpoint_url=f'https://{target.hostname}', \ + aws_access_key_id=config['target_user'], \ + aws_secret_access_key=config['target_pass']) bucket_objects = s3.list_objects_v2(Bucket=bucket, Prefix=path)['Contents'] backup_list = [(key['Key'][len(path):], key['Size']) for key in bucket_objects] except ClientError as e: