From eae6cb28a074f2aa1b9d4b728073c3f91abd181b Mon Sep 17 00:00:00 2001 From: dwreeves Date: Fri, 25 Nov 2022 01:00:11 -0500 Subject: [PATCH 1/4] make AWS Secrets Manager consistent with the Airflow base secrets API --- .../amazon/aws/secrets/secrets_manager.py | 239 ++++-------------- .../img/aws-secrets-manager-json.png | Bin 0 -> 86477 bytes .../img/aws-secrets-manager-uri.png | Bin 0 -> 60559 bytes .../img/aws-secrets-manager.png | Bin 28060 -> 0 bytes .../secrets-backends/aws-secrets-manager.rst | 86 +++---- .../aws/secrets/test_secrets_manager.py | 49 +--- 6 files changed, 98 insertions(+), 276 deletions(-) create mode 100644 docs/apache-airflow-providers-amazon/img/aws-secrets-manager-json.png create mode 100644 docs/apache-airflow-providers-amazon/img/aws-secrets-manager-uri.png delete mode 100644 docs/apache-airflow-providers-amazon/img/aws-secrets-manager.png diff --git a/airflow/providers/amazon/aws/secrets/secrets_manager.py b/airflow/providers/amazon/aws/secrets/secrets_manager.py index 684a8d4afbee9..b3a3e3b68a729 100644 --- a/airflow/providers/amazon/aws/secrets/secrets_manager.py +++ b/airflow/providers/amazon/aws/secrets/secrets_manager.py @@ -18,11 +18,10 @@ """Objects relating to sourcing secrets from AWS Secrets Manager""" from __future__ import annotations -import ast import json import warnings from typing import TYPE_CHECKING, Any -from urllib.parse import unquote, urlencode +from urllib.parse import unquote from airflow.compat.functools import cached_property from airflow.providers.amazon.aws.utils import get_airflow_version, trim_none_values @@ -74,7 +73,7 @@ class SecretsManagerBackend(BaseSecretsBackend, LoggingMixin): .. code-block:: python possible_words_for_conn_fields = { - "login": ["user", "username", "login", "user_name"], + "login": ["login", "user", "username", "user_name"], "password": ["password", "pass", "key"], "host": ["host", "remote_host", "server"], "port": ["port"], @@ -96,12 +95,6 @@ class SecretsManagerBackend(BaseSecretsBackend, LoggingMixin): If set to None (null value in the configuration), requests for configurations will not be sent to AWS Secrets Manager. If you don't want a config_prefix, set it as an empty string :param sep: separator used to concatenate secret_prefix and secret_id. Default: "/" - :param full_url_mode: if True, the secrets must be stored as one conn URI in just one field per secret. - If False (set it as false in backend_kwargs), you can store the secret using different - fields (password, user...). - :param are_secret_values_urlencoded: If True, and full_url_mode is False, then the values are assumed to - be URL-encoded and will be decoded before being passed into a Connection object. This option is - ignored when full_url_mode is True. :param extra_conn_words: for using just when you set full_url_mode as false and store the secrets in different fields of secrets manager. You can add more words for each connection part beyond the default ones. The extra words to be searched should be passed as a dict of lists, @@ -115,8 +108,6 @@ def __init__( variables_prefix: str = "airflow/variables", config_prefix: str = "airflow/config", sep: str = "/", - full_url_mode: bool = True, - are_secret_values_urlencoded: bool | None = None, extra_conn_words: dict[str, list[str]] | None = None, **kwargs, ): @@ -134,27 +125,29 @@ def __init__( else: self.config_prefix = config_prefix self.sep = sep - self.full_url_mode = full_url_mode - if are_secret_values_urlencoded is None: - self.are_secret_values_urlencoded = True - else: + if kwargs.pop("full_url_mode", None) is not None: + warnings.warn( + "The `full_url_mode` kwarg is deprecated. Going forward, the `SecretsManagerBackend`" + " will support both URL-encoded and JSON-encoded secrets at the same time. The encoding" + " of the secret will be determined automatically.", + DeprecationWarning, + stacklevel=2 + ) + + if kwargs.get("are_secret_values_urlencoded") is not None: warnings.warn( - "The `secret_values_are_urlencoded` kwarg only exists to assist in migrating away from" - " URL-encoding secret values when `full_url_mode` is False. It will be considered deprecated" - " when values are not required to be URL-encoded by default.", + "The `secret_values_are_urlencoded` is deprecated. This kwarg only exists to assist in" + " migrating away from URL-encoding secret values for JSON secrets." + " To remove this warning, make sure your JSON secrets are *NOT* URL-encoded, and then" + " remove this kwarg from backend_kwargs.", DeprecationWarning, stacklevel=2, ) - if full_url_mode and not are_secret_values_urlencoded: - warnings.warn( - "The `secret_values_are_urlencoded` kwarg for the SecretsManagerBackend is only used" - " when `full_url_mode` is False. When `full_url_mode` is True, the secret needs to be" - " URL-encoded.", - UserWarning, - stacklevel=2, - ) - self.are_secret_values_urlencoded = are_secret_values_urlencoded + self.are_secret_values_urlencoded = kwargs.pop("are_secret_values_urlencoded", None) + else: + self.are_secret_values_urlencoded = False + self.extra_conn_words = extra_conn_words or {} self.profile_name = kwargs.get("profile_name", None) @@ -185,59 +178,10 @@ def client(self): session = SessionFactory(conn=conn_config).create_session() return session.client(service_name="secretsmanager", **client_kwargs) - @staticmethod - def _format_uri_with_extra(secret, conn_string: str) -> str: - try: - extra_dict = secret["extra"] - except KeyError: - return conn_string - - extra = json.loads(extra_dict) # this is needed because extra_dict is a string and we need a dict - conn_string = f"{conn_string}?{urlencode(extra)}" - - return conn_string - - def get_connection(self, conn_id: str) -> Connection | None: - if not self.full_url_mode: - # Avoid circular import problems when instantiating the backend during configuration. - from airflow.models.connection import Connection - - secret_string = self._get_secret(self.connections_prefix, conn_id) - secret_dict = self._deserialize_json_string(secret_string) - - if not secret_dict: - return None - - if "extra" in secret_dict and isinstance(secret_dict["extra"], str): - secret_dict["extra"] = self._deserialize_json_string(secret_dict["extra"]) - - data = self._standardize_secret_keys(secret_dict) - - if self.are_secret_values_urlencoded: - data = self._remove_escaping_in_secret_dict(secret=data, conn_id=conn_id) - - port: int | None = None - - if data["port"] is not None: - port = int(data["port"]) - - return Connection( - conn_id=conn_id, - login=data["user"], - password=data["password"], - host=data["host"], - port=port, - schema=data["schema"], - conn_type=data["conn_type"], - extra=data["extra"], - ) - - return super().get_connection(conn_id=conn_id) - def _standardize_secret_keys(self, secret: dict[str, Any]) -> dict[str, Any]: """Standardize the names of the keys in the dict. These keys align with""" possible_words_for_conn_fields = { - "user": ["user", "username", "login", "user_name"], + "login": ["login", "user", "username", "user_name"], "password": ["password", "pass", "key"], "host": ["host", "remote_host", "server"], "port": ["port"], @@ -247,6 +191,9 @@ def _standardize_secret_keys(self, secret: dict[str, Any]) -> dict[str, Any]: } for conn_field, extra_words in self.extra_conn_words.items(): + if conn_field == "user": + # Support `user` for backwards compatibility. + conn_field = "login" possible_words_for_conn_fields[conn_field].extend(extra_words) conn_d: dict[str, Any] = {} @@ -258,96 +205,16 @@ def _standardize_secret_keys(self, secret: dict[str, Any]) -> dict[str, Any]: return conn_d - def get_uri_from_secret(self, secret: dict[str, str]) -> str: - conn_d: dict[str, str] = {k: v if v else "" for k, v in self._standardize_secret_keys(secret).items()} - conn_string = "{conn_type}://{user}:{password}@{host}:{port}/{schema}".format(**conn_d) - return self._format_uri_with_extra(secret, conn_string) - - def _deserialize_json_string(self, value: str | None) -> dict[Any, Any] | None: - if not value: - return None - try: - # Use ast.literal_eval for backwards compatibility. - # Previous version of this code had a comment saying that using json.loads caused errors. - # This likely means people were using dict reprs instead of valid JSONs. - res: dict[str, Any] = json.loads(value) - except json.JSONDecodeError: - try: - res = ast.literal_eval(value) if value else None - warnings.warn( - f"In future versions, `{type(self).__name__}` will only support valid JSONs, not dict" - " reprs. Please make sure your secret is a valid JSON." - ) - except ValueError: # 'malformed node or string: ' error, for empty conns - return None - - return res - - def _remove_escaping_in_secret_dict(self, secret: dict[str, Any], conn_id: str) -> dict[str, Any]: - # When ``unquote(v) == v``, then removing unquote won't affect the user, regardless of - # whether or not ``v`` is URL-encoded. For example, "foo bar" is not URL-encoded. But - # because decoding it doesn't affect the value, then it will migrate safely when - # ``unquote`` gets removed. - # - # When parameters are URL-encoded, but decoding is idempotent, we need to warn the user - # to un-escape their secrets. For example, if "foo%20bar" is a URL-encoded string, then - # decoding is idempotent because ``unquote(unquote("foo%20bar")) == unquote("foo%20bar")``. - # - # In the rare situation that value is URL-encoded but the decoding is _not_ idempotent, - # this causes a major issue. For example, if "foo%2520bar" is URL-encoded, then decoding is - # _not_ idempotent because ``unquote(unquote("foo%2520bar")) != unquote("foo%2520bar")`` - # - # This causes a problem for migration because if the user decodes their value, we cannot - # infer that is the case by looking at the decoded value (from our vantage point, it will - # look to be URL-encoded.) - # - # So when this uncommon situation occurs, the user _must_ adjust the configuration and set - # ``parameters_are_urlencoded`` to False to migrate safely. In all other cases, we do not - # need the user to adjust this object to migrate; they can transition their secrets with - # the default configuration. - - warn_user = False - idempotent = True - + def _remove_escaping_in_secret_dict(self, secret: dict[str, Any]) -> dict[str, Any]: + """Un-escape secret values that are URL-encoded""" for k, v in secret.copy().items(): - if k == "extra" and isinstance(v, dict): # The old behavior was that extras were _not_ urlencoded inside the secret. - # If they were urlencoded (e.g. "foo%20bar"), then they would be re-urlencoded - # (e.g. "foo%20bar" becomes "foo%2520bar") and then unquoted once when parsed. # So we should just allow the extra dict to remain as-is. continue elif v is not None: - v_unquoted = unquote(v) - if v != v_unquoted: - secret[k] = unquote(v) - warn_user = True - - # Check to see if decoding is idempotent. - if v_unquoted == unquote(v_unquoted): - idempotent = False - - if warn_user: - msg = ( - "When full_url_mode=False, URL-encoding secret values is deprecated. In future versions, " - f"this value will not be un-escaped. For the conn_id {conn_id!r}, please remove the " - "URL-encoding.\n\n" - "This warning was raised because the SecretsManagerBackend detected that this " - "connection was URL-encoded." - ) - if idempotent: - msg = f" Once the values for conn_id {conn_id!r} are decoded, this warning will go away." - if not idempotent: - msg += ( - " In addition to decoding the values for your connection, you must also set" - " secret_values_are_urlencoded=False for your config variable" - " secrets.backend_kwargs because this connection's URL encoding is not idempotent." - " For more information, see:" - " https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/secrets-backends" - "/aws-secrets-manager.html#url-encoding-of-secrets-when-full-url-mode-is-false" - ) - warnings.warn(msg, DeprecationWarning, stacklevel=2) + secret[k] = unquote(v) return secret @@ -360,38 +227,28 @@ def get_conn_value(self, conn_id: str) -> str | None: if self.connections_prefix is None: return None - if self.full_url_mode: - return self._get_secret(self.connections_prefix, conn_id) + secret = self._get_secret(self.connections_prefix, conn_id) + + if secret is not None and secret.startswith("{"): + # Before Airflow 2.3, the AWS SecretsManagerBackend added support for JSON secrets. + # + # The way this was implemented differs a little from how Airflow's core API handle JSON secrets. + # + # The most notable difference is that SecretsManagerBackend supports extra aliases for the + # Connection parts, e.g. "users" is allowed instead of "login". + # + # This means we need to deserialize then re-serialize the secret if it's a JSON, potentially + # renaming some keys in the process. + import ast + # secret_dict = json.loads(secret) + secret_dict = ast.literal_eval(secret) + standardized_secret_dict = self._standardize_secret_keys(secret_dict) + if self.are_secret_values_urlencoded: + standardized_secret_dict = self._remove_escaping_in_secret_dict(standardized_secret_dict) + standardized_secret = json.dumps(standardized_secret_dict) + return standardized_secret else: - warnings.warn( - f"In future versions, `{type(self).__name__}.get_conn_value` will return a JSON string when" - " full_url_mode is False, not a URI.", - DeprecationWarning, - ) - - # It is very rare for user code to get to this point, since: - # - # - When full_url_mode is True, the previous statement returns. - # - When full_url_mode is False, get_connection() does not call - # `get_conn_value`. Additionally, full_url_mode defaults to True. - # - # So the code would have to be calling `get_conn_value` directly, and - # the user would be using a non-default setting. - # - # As of Airflow 2.3.0, get_conn_value() is allowed to return a JSON - # string in the base implementation. This is a way to deprecate this - # behavior gracefully. - - secret_string = self._get_secret(self.connections_prefix, conn_id) - - secret = self._deserialize_json_string(secret_string) - connection = None - - # These lines will check if we have with some denomination stored an username, password and host - if secret: - connection = self.get_uri_from_secret(secret) - - return connection + return secret def get_conn_uri(self, conn_id: str) -> str | None: """ diff --git a/docs/apache-airflow-providers-amazon/img/aws-secrets-manager-json.png b/docs/apache-airflow-providers-amazon/img/aws-secrets-manager-json.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed71508581eebae3880dda63a14d4a74aca5813 GIT binary patch literal 86477 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%0AB()n6-16cE;%#(K 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 z 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 &NwPg%HkTUrQ>)bdDKn^QpvT^L9esxPo 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 or set @@ -42,25 +42,39 @@ To authenticate you can either supply arguments listed in Storing and Retrieving Connections -"""""""""""""""""""""""""""""""""" -You can store the different values for a secret in two forms: storing the conn URI in one field (default mode) or using different -fields in Amazon Secrets Manager (setting ``full_url_mode`` as ``false`` in the backend config), as follows: +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: /img/aws-secrets-manager.png +There are two ways to store Airflow connections in AWS Secrets Manager. -By default you must use some of the following words for each kind of field: +Storing a Connection as a URI +""""""""""""""""""""""""""""" -* For storing passwords, valid key names are password, pass and key -* Users: user, username, login, user_name -* Host: host, remote_host, server -* Port: port -* You should also specify the type of connection, which can be done naming the key as conn_type, conn_id, - connection_type or engine. Valid values for this field are postgres, mysql, snowflake, google_cloud, mongo... -* For the extra value of the connections, a field called extra must exists. Please note this extra field - should be a valid JSON. +You can store the connection as an Airflow connection URI: + +.. image:: /img/aws-secrets-manager-uri.png + +Note that every field is assumed to be URL-encoded if you store the connection as a URI. +For example, if you want to use the value ``my password``, in the URI, it should be represented as ``my%20password``. + +Storing a Connection as a JSON +"""""""""""""""""""""""""""""" + +You can also store the connection as a JSON with the appropriate key-value pairs: + +.. image:: /img/aws-secrets-manager-json.png + +Using Airflow default names for connection fields is encouraged, but different aliases are allowed for each field: + +* Connection type: ``conn_type``, ``conn_id``, ``connection_type``, ``engine`` +* Login: ``login``, ``user``, ``username``, ``user_name`` +* Password: ``password``, ``pass``, ``key`` +* Host: ``host``, ``remote_host``, ``server`` +* Port: ``port`` +* Extra: ``extra``. Note that this extra field should be a valid JSON. + +More words can be added to the list using the parameter ``extra_conn_words`` in the configuration. This +parameter has to be a dict of lists with the following optional keys: user, password, host, schema, conn_type. -However, more words can be added to the list using the parameter ``extra_conn_words`` in the configuration. This -parameter has to be a dict of lists with the following optional keys: user, password, host, schema, conn_type As an example, if you have set ``connections_prefix`` as ``airflow/connections``, then for a connection id of ``smtp_default``, you would want to store your connection at ``airflow/connections/smtp_default``. This can be done through the AWS web console or through Amazon CLI as shown below: @@ -69,7 +83,7 @@ console or through Amazon CLI as shown below: aws secretsmanager put-secret-value \ --secret-id airflow/connections/smtp_default \ - --secret-string '{"user": "nice_user","pass": "this_is_the_password","host": "ec2.8399.com","port": "999"}' + --secret-string '{"login": "nice_user", "password": "this_is_the_password", "host": "ec2.8399.com", "port": "999"}' Verify that you can get the secret: @@ -80,7 +94,7 @@ Verify that you can get the secret: "ARN": "arn:aws:secretsmanager:us-east-2:314524341751:secret:airflow/connections/smtp_default-7meuul", "Name": "airflow/connections/smtp_default", "VersionId": "34f90eff-ea21-455a-9c8f-5ee74b21be672", - "SecretString": "{\n \"user\":\"nice_user\",\n \"pass\":\"this_is_the_password\"\n, + "SecretString": "{\n \"login\":\"nice_user\",\n \"password\":\"this_is_the_password\"\n, \n \"host\":\"ec2.8399.com\"\n,\n \"port\":\"999\"\n}\n", "VersionStages": [ "AWSCURRENT" @@ -90,42 +104,14 @@ Verify that you can get the secret: If you don't want to use any ``connections_prefix`` for retrieving connections, set it as an empty string ``""`` in the configuration. -URL-Encoding of Secrets When Full URL Mode is False -""""""""""""""""""""""""""""""""""""""""""""""""""" - -Previous versions of the Amazon provider package required values in the AWS secret to be URL-encoded when the setting ``full_url_mode`` is ``false``. -This behavior is now deprecated, and will be removed at a future date. - -In most cases, you should not have any issues migrating your secrets to not being URL-encoded in advance of the deprecation. -Simply decoding your secret values will work, and no further changes are required. - -In rare circumstances, the ``DeprecationWarning`` will tell you to add a new parameter to your ``backend_kwargs``. -This warning occurs when decoding is not idempotent. -A decoding is idempotent when decoding it once using the ``urllib.parse.unquote`` function is equivalent to decoding it two or more times using that function. -For example: - -* If ``"foo%20bar"`` is a URL-encoded value, then decoding is idempotent because ``unquote(unquote("foo%20bar")) == unquote("foo%20bar")`` -* If ``"foo%2520bar"`` is a URL-encoded value, then decoding is _not_ idempotent because ``unquote(unquote("foo%2520bar")) != unquote("foo%2520bar")`` - -Setting ``secret_values_are_urlencoded`` to ``false`` will force the ``SecretsManagerBackend`` to stop treating secret values as being URL-encoded. - -.. code-block:: ini - - [secrets] - backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend - backend_kwargs = {"connections_prefix": "airflow/connections", "full_url_mode": false, "secret_values_are_urlencoded": false} - - -Note that if ``full_url_mode`` is ``true``, it is still necessary to URL-encode the entire secret. - Storing and Retrieving Variables -"""""""""""""""""""""""""""""""" +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you have set ``variables_prefix`` as ``airflow/variables``, then for an Variable key of ``hello``, you would want to store your Variable at ``airflow/variables/hello``. Optional lookup -""""""""""""""" +^^^^^^^^^^^^^^^ Optionally connections, variables, or config may be looked up exclusive of each other or in any combination. This will prevent requests being sent to AWS Secrets Manager for the excluded type. @@ -141,7 +127,7 @@ For example, if you want to set parameter ``connections_prefix`` to ``"airflow/c backend_kwargs = {"connections_prefix": "airflow/connections", "variables_prefix": null, "profile_name": "default"} Example of storing Google Secrets in AWS Secrets Manager -"""""""""""""""""""""""""""""""""""""""""""""""""""""""" +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For connecting to a google cloud conn, all the fields must be in the extra field, and their names follow the pattern ``extra_google_cloud_platform__value``. For example: diff --git a/tests/providers/amazon/aws/secrets/test_secrets_manager.py b/tests/providers/amazon/aws/secrets/test_secrets_manager.py index 1488ffe3b2da4..5d875b69d8a47 100644 --- a/tests/providers/amazon/aws/secrets/test_secrets_manager.py +++ b/tests/providers/amazon/aws/secrets/test_secrets_manager.py @@ -52,14 +52,14 @@ def test_get_conn_value_full_url_mode(self): assert "postgresql://airflow:airflow@host:5432/airflow" == returned_uri @pytest.mark.parametrize( - "full_url_mode, login, host", + "are_secret_values_urlencoded, login, host", [ - (False, "is url encoded", "not%20idempotent"), - (True, "is%20url%20encoded", "not%2520idempotent"), + (True, "is url encoded", "not%20idempotent"), + (False, "is%20url%20encoded", "not%2520idempotent"), ], ) @mock_secretsmanager - def test_get_connection_broken_field_mode_url_encoding(self, full_url_mode, login, host): + def test_get_connection_broken_field_mode_url_encoding(self, are_secret_values_urlencoded, login, host): secret_id = "airflow/connections/test_postgres" create_param = { "Name": secret_id, @@ -78,16 +78,13 @@ def test_get_connection_broken_field_mode_url_encoding(self, full_url_mode, logi ), } - secrets_manager_backend = SecretsManagerBackend(full_url_mode=full_url_mode) + secrets_manager_backend = SecretsManagerBackend( + are_secret_values_urlencoded=are_secret_values_urlencoded + ) secrets_manager_backend.client.create_secret(**create_param) secrets_manager_backend.client.put_secret_value(**param) - if full_url_mode: - conn = secrets_manager_backend.get_connection(conn_id="test_postgres") - else: - warning_match = r"When full_url_mode=False, URL-encoding secret values is deprecated\..+" - with pytest.warns(DeprecationWarning, match=warning_match): - conn = secrets_manager_backend.get_connection(conn_id="test_postgres") + conn = secrets_manager_backend.get_connection(conn_id="test_postgres") assert conn.login == login assert conn.password == "not url encoded" @@ -139,13 +136,9 @@ def test_get_conn_value_broken_field_mode(self): secrets_manager_backend.client.create_secret(**create_param) secrets_manager_backend.client.put_secret_value(**param) - warning_match = ( - r"In future versions, `SecretsManagerBackend\.get_conn_value` will return a JSON string when " - r"full_url_mode is False, not a URI\." - ) - with pytest.warns(DeprecationWarning, match=warning_match): - returned_uri = secrets_manager_backend.get_conn_value(conn_id="test_postgres") - assert "postgresql://airflow:airflow@host:5432/airflow" == returned_uri + conn = secrets_manager_backend.get_connection(conn_id="test_postgres") + returned_uri = conn.get_uri() + assert "postgres://airflow:airflow@host:5432/airflow" == returned_uri @mock_secretsmanager def test_get_conn_value_broken_field_mode_extra_words_added(self): @@ -166,23 +159,9 @@ def test_get_conn_value_broken_field_mode_extra_words_added(self): secrets_manager_backend.client.create_secret(**create_param) secrets_manager_backend.client.put_secret_value(**param) - warning_match = ( - r"In future versions, `SecretsManagerBackend\.get_conn_value` will return a JSON string when " - r"full_url_mode is False, not a URI\." - ) - with pytest.warns(DeprecationWarning, match=warning_match): - returned_uri = secrets_manager_backend.get_conn_value(conn_id="test_postgres") - assert "postgresql://airflow:airflow@host:5432/airflow" == returned_uri - - @mock_secretsmanager - def test_format_uri_with_extra(self): - secret = {"extra": '{"key1": "value1", "key2": "value2"}'} - conn_string = "CS" - secrets_manager_backend = SecretsManagerBackend() - - conn_string_with_extra = secrets_manager_backend._format_uri_with_extra(secret, conn_string) - - assert conn_string_with_extra == "CS?key1=value1&key2=value2" + conn = secrets_manager_backend.get_connection(conn_id="test_postgres") + returned_uri = conn.get_uri() + assert "postgres://airflow:airflow@host:5432/airflow" == returned_uri @mock_secretsmanager def test_get_conn_value_non_existent_key(self): From 779905838bfd71180c162fd13e09bf23de198377 Mon Sep 17 00:00:00 2001 From: dwreeves Date: Fri, 25 Nov 2022 14:27:10 -0500 Subject: [PATCH 2/4] fix unused import --- airflow/providers/amazon/aws/secrets/secrets_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airflow/providers/amazon/aws/secrets/secrets_manager.py b/airflow/providers/amazon/aws/secrets/secrets_manager.py index 354766d822f0c..4dae33c8830f4 100644 --- a/airflow/providers/amazon/aws/secrets/secrets_manager.py +++ b/airflow/providers/amazon/aws/secrets/secrets_manager.py @@ -20,7 +20,7 @@ import json import warnings -from typing import TYPE_CHECKING, Any +from typing import Any from urllib.parse import unquote from airflow.compat.functools import cached_property From bd882af50a39445e55803478f3b9d45cb563be16 Mon Sep 17 00:00:00 2001 From: dwreeves Date: Fri, 25 Nov 2022 19:44:12 -0500 Subject: [PATCH 3/4] remove ast.literal_eval --- airflow/providers/amazon/aws/secrets/secrets_manager.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/airflow/providers/amazon/aws/secrets/secrets_manager.py b/airflow/providers/amazon/aws/secrets/secrets_manager.py index 4dae33c8830f4..f1893a9ccdc36 100644 --- a/airflow/providers/amazon/aws/secrets/secrets_manager.py +++ b/airflow/providers/amazon/aws/secrets/secrets_manager.py @@ -235,10 +235,8 @@ def get_conn_value(self, conn_id: str) -> str | None: # # This means we need to deserialize then re-serialize the secret if it's a JSON, potentially # renaming some keys in the process. - import ast - # secret_dict = json.loads(secret) - secret_dict = ast.literal_eval(secret) + secret_dict = json.loads(secret) standardized_secret_dict = self._standardize_secret_keys(secret_dict) if self.are_secret_values_urlencoded: standardized_secret_dict = self._remove_escaping_in_secret_dict(standardized_secret_dict) From 6ad333422e25ccb3a355e20a8b82ccb196d4b613 Mon Sep 17 00:00:00 2001 From: dwreeves Date: Fri, 25 Nov 2022 22:44:41 -0500 Subject: [PATCH 4/4] add .strip() to secret --- airflow/providers/amazon/aws/secrets/secrets_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airflow/providers/amazon/aws/secrets/secrets_manager.py b/airflow/providers/amazon/aws/secrets/secrets_manager.py index f1893a9ccdc36..8b50864baa168 100644 --- a/airflow/providers/amazon/aws/secrets/secrets_manager.py +++ b/airflow/providers/amazon/aws/secrets/secrets_manager.py @@ -225,7 +225,7 @@ def get_conn_value(self, conn_id: str) -> str | None: secret = self._get_secret(self.connections_prefix, conn_id) - if secret is not None and secret.startswith("{"): + if secret is not None and secret.strip().startswith("{"): # Before Airflow 2.3, the AWS SecretsManagerBackend added support for JSON secrets. # # The way this was implemented differs a little from how Airflow's core API handle JSON secrets.