Skip to content

Commit a815e23

Browse files
committed
fix KMSMasterKeyProvider to determine the default region before trying to create the requested master keys
1 parent ff499ad commit a815e23

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/aws_encryption_sdk/key_providers/kms.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,7 @@ def __init__(self, **kwargs): # pylint: disable=unused-argument
116116
def _process_config(self):
117117
"""Traverses the config and adds master keys and regional clients as needed."""
118118
self._user_agent_adding_config = botocore.config.Config(user_agent_extra=USER_AGENT_SUFFIX)
119-
if self.config.key_ids:
120-
self.add_master_keys_from_list(self.config.key_ids)
119+
121120
if self.config.region_names:
122121
self.add_regional_clients_from_list(self.config.region_names)
123122
self.default_region = self.config.region_names[0]
@@ -126,6 +125,9 @@ def _process_config(self):
126125
if self.default_region is not None:
127126
self.add_regional_client(self.default_region)
128127

128+
if self.config.key_ids:
129+
self.add_master_keys_from_list(self.config.key_ids)
130+
129131
def add_regional_client(self, region_name):
130132
"""Adds a regional client for the specified region if it does not already exist.
131133

test/unit/test_providers_kms_master_key_provider.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@
2525
pytestmark = [pytest.mark.unit, pytest.mark.local]
2626

2727

28+
def test_init_with_regionless_key_ids_and_region_names():
29+
key_ids = ("alias/key_1",)
30+
region_names = ("test-reqion-1",)
31+
provider = KMSMasterKeyProvider(region_names=region_names, key_ids=key_ids)
32+
assert provider.master_key("alias/key_1").config.client.meta.region_name == region_names[0]
33+
34+
2835
class TestKMSMasterKeyProvider(unittest.TestCase):
2936
def setUp(self):
3037
self.mock_botocore_session_patcher = patch("aws_encryption_sdk.key_providers.kms.botocore.session.Session")

0 commit comments

Comments
 (0)