56
56
EXAMPLE_DATA : bytes = b"Hello World"
57
57
58
58
59
+ def get_aws_region_from_kms_key_id (kms_key_id : str ) -> str :
60
+ """
61
+ Get the AWS Region from the KMS Key ID.
62
+
63
+ Usage: get_aws_region_from_kms_key_id(kms_key_id)
64
+ :param kms_key_id: KMS Key identifier for the KMS key you want to use
65
+ :type kms_key_id: string
66
+ :return: AWS Region
67
+ :rtype: string
68
+ """
69
+ return kms_key_id .split (":" )[3 ]
70
+
71
+
59
72
def encrypt_and_decrypt_with_keyring (
60
73
default_region_kms_key_id : str ,
61
74
second_region_kms_key_id : str
@@ -144,7 +157,8 @@ def encrypt_and_decrypt_with_keyring(
144
157
# `default_region_kms_key_id` directly.
145
158
146
159
# 7a. Create a boto3 client for KMS for the default region.
147
- default_region_kms_client = boto3 .client ('kms' , region_name = "us-west-2" )
160
+ default_region = get_aws_region_from_kms_key_id (default_region_kms_key_id )
161
+ default_region_kms_client = boto3 .client ('kms' , region_name = default_region )
148
162
149
163
# 7b. Create KMS keyring
150
164
default_region_kms_keyring_input : CreateAwsKmsKeyringInput = CreateAwsKmsKeyringInput (
@@ -170,7 +184,8 @@ def encrypt_and_decrypt_with_keyring(
170
184
# `second_region_kms_key_id` directly.
171
185
172
186
# 8a. Create a boto3 client for KMS for the second region.
173
- second_region_kms_client = boto3 .client ('kms' , region_name = "eu-central-1" )
187
+ second_region = get_aws_region_from_kms_key_id (second_region_kms_key_id )
188
+ second_region_kms_client = boto3 .client ('kms' , region_name = second_region )
174
189
175
190
# 8b. Create KMS keyring
176
191
second_region_kms_keyring_input : CreateAwsKmsKeyringInput = CreateAwsKmsKeyringInput (
0 commit comments