Skip to content

Commit 0361363

Browse files
authored
fix(auth): Disable MDS mTLS feature by default. (googleapis#16786)
mTLS connection to MDS is failing after a python update. There is a bug in the failover logic that is affecting some users. This PR: - disables the feature until the failover logic and mTLS connection are fixed. - fixes metadata unit tests which were failing due to some get_and_parse_agent_identity_certificate requirement Fixes googleapis#16090
1 parent c7105d3 commit 0361363

3 files changed

Lines changed: 21 additions & 7 deletions

File tree

packages/google-auth/google/auth/compute_engine/_mtls.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,7 @@ class MdsMtlsMode(enum.Enum):
8787

8888
def _parse_mds_mode():
8989
"""Parses the GCE_METADATA_MTLS_MODE environment variable."""
90-
mode_str = os.environ.get(
91-
environment_vars.GCE_METADATA_MTLS_MODE, "default"
92-
).lower()
90+
mode_str = os.environ.get(environment_vars.GCE_METADATA_MTLS_MODE, "none").lower()
9391
try:
9492
return MdsMtlsMode(mode_str)
9593
except ValueError:

packages/google-auth/tests/compute_engine/test__metadata.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -638,12 +638,18 @@ def test_get_universe_domain_other_error():
638638
)
639639

640640

641+
@mock.patch(
642+
"google.auth._agent_identity_utils.get_and_parse_agent_identity_certificate",
643+
return_value=None,
644+
)
641645
@mock.patch(
642646
"google.auth.metrics.token_request_access_token_mds",
643647
return_value=ACCESS_TOKEN_REQUEST_METRICS_HEADER_VALUE,
644648
)
645649
@mock.patch("google.auth._helpers.utcnow", return_value=datetime.datetime.min)
646-
def test_get_service_account_token(utcnow, mock_metrics_header_value):
650+
def test_get_service_account_token(
651+
utcnow, mock_metrics_header_value, mock_get_agent_cert
652+
):
647653
ttl = 500
648654
request = make_request(
649655
json.dumps({"access_token": "token", "expires_in": ttl}),
@@ -665,12 +671,18 @@ def test_get_service_account_token(utcnow, mock_metrics_header_value):
665671
assert expiry == utcnow() + datetime.timedelta(seconds=ttl)
666672

667673

674+
@mock.patch(
675+
"google.auth._agent_identity_utils.get_and_parse_agent_identity_certificate",
676+
return_value=None,
677+
)
668678
@mock.patch(
669679
"google.auth.metrics.token_request_access_token_mds",
670680
return_value=ACCESS_TOKEN_REQUEST_METRICS_HEADER_VALUE,
671681
)
672682
@mock.patch("google.auth._helpers.utcnow", return_value=datetime.datetime.min)
673-
def test_get_service_account_token_with_scopes_list(utcnow, mock_metrics_header_value):
683+
def test_get_service_account_token_with_scopes_list(
684+
utcnow, mock_metrics_header_value, mock_get_agent_cert
685+
):
674686
ttl = 500
675687
request = make_request(
676688
json.dumps({"access_token": "token", "expires_in": ttl}),
@@ -695,13 +707,17 @@ def test_get_service_account_token_with_scopes_list(utcnow, mock_metrics_header_
695707
assert expiry == utcnow() + datetime.timedelta(seconds=ttl)
696708

697709

710+
@mock.patch(
711+
"google.auth._agent_identity_utils.get_and_parse_agent_identity_certificate",
712+
return_value=None,
713+
)
698714
@mock.patch(
699715
"google.auth.metrics.token_request_access_token_mds",
700716
return_value=ACCESS_TOKEN_REQUEST_METRICS_HEADER_VALUE,
701717
)
702718
@mock.patch("google.auth._helpers.utcnow", return_value=datetime.datetime.min)
703719
def test_get_service_account_token_with_scopes_string(
704-
utcnow, mock_metrics_header_value
720+
utcnow, mock_metrics_header_value, mock_get_agent_cert
705721
):
706722
ttl = 500
707723
request = make_request(

packages/google-auth/tests/compute_engine/test__mtls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def test__MdsMtlsConfig_non_windows_defaults():
5555

5656
def test__parse_mds_mode_default(monkeypatch):
5757
monkeypatch.delenv(environment_vars.GCE_METADATA_MTLS_MODE, raising=False)
58-
assert _mtls._parse_mds_mode() == _mtls.MdsMtlsMode.DEFAULT
58+
assert _mtls._parse_mds_mode() == _mtls.MdsMtlsMode.NONE
5959

6060

6161
@pytest.mark.parametrize(

0 commit comments

Comments
 (0)