diff --git a/dvc/config_schema.py b/dvc/config_schema.py index 84ee1a1207..41e9d4efbc 100644 --- a/dvc/config_schema.py +++ b/dvc/config_schema.py @@ -145,6 +145,7 @@ class RelPath(str): "session_token": str, Optional("listobjects", default=False): Bool, # obsoleted Optional("use_ssl", default=True): Bool, + Optional("ssl_verify", default=True): Bool, "sse": str, "sse_kms_key_id": str, "acl": str, diff --git a/dvc/fs/s3.py b/dvc/fs/s3.py index 17176058a3..f201ffeb58 100644 --- a/dvc/fs/s3.py +++ b/dvc/fs/s3.py @@ -38,6 +38,7 @@ def __init__(self, repo, config): self.endpoint_url = config.get("endpointurl") self.use_ssl = config.get("use_ssl", True) + self.ssl_verify = config.get("ssl_verify", True) self.extra_args = {} @@ -136,6 +137,7 @@ def s3(self): return session.resource( "s3", endpoint_url=self.endpoint_url, + verify=self.ssl_verify, use_ssl=self.use_ssl, config=boto3.session.Config( signature_version="s3v4", s3=s3_config diff --git a/tests/unit/fs/test_s3.py b/tests/unit/fs/test_s3.py index 5685342333..030de7a027 100644 --- a/tests/unit/fs/test_s3.py +++ b/tests/unit/fs/test_s3.py @@ -29,6 +29,22 @@ def test_init(dvc): assert fs.path_info == url +def test_verify_ssl_default_param(dvc): + config = { + "url": url, + } + fs = S3FileSystem(dvc, config) + + assert fs.ssl_verify + + +def test_ssl_verify_bool_param(dvc): + config = {"url": url, "ssl_verify": False} + fs = S3FileSystem(dvc, config) + + assert fs.ssl_verify == config["ssl_verify"] + + def test_grants(dvc): config = { "url": url,