1
0
mirror of https://github.com/mail-in-a-box/mailinabox.git synced 2025-03-27 23:07:05 +00:00

Allow boto to get S3 credentials for backups from environment variables if access key is blank (#2260)

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)
This commit is contained in:
Michael Meidlinger 2025-02-16 21:51:48 +00:00 committed by GitHub
parent c0103045be
commit 01996141ad
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -519,10 +519,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: