Skip to content

Commit 036662f

Browse files
committed
fix
1 parent 3c41753 commit 036662f

4 files changed

+26
-5
lines changed

examples/src/keyrings/aws_kms_discovery_multi_keyring_example.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,16 @@ def get_aws_region_from_kms_key_id(kms_key_id: str) -> str:
8181

8282
def encrypt_and_decrypt_with_keyring(
8383
kms_key_id: str,
84-
aws_regions: list(str)
84+
aws_regions: list[str]
8585
):
8686
"""Demonstrate an encrypt/decrypt cycle using an AWS KMS Discovery Multi Keyring.
8787
88-
Usage: encrypt_and_decrypt_with_keyring(kms_key_id)
88+
Usage: encrypt_and_decrypt_with_keyring(kms_key_id, aws_regions)
8989
:param kms_key_id: KMS Key identifier for the KMS key you want to use for creating
9090
the kms_keyring used for encryption
9191
:type kms_key_id: string
92+
:param aws_regions: List of AWS Regions to use for creating the discovery multi keyring
93+
:type aws_regions: list[string]
9294
9395
For more information on KMS Key identifiers, see
9496
https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id

examples/src/keyrings/aws_kms_multi_keyring_example.py

+17-2
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,19 @@
5656
EXAMPLE_DATA: bytes = b"Hello World"
5757

5858

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+
5972
def encrypt_and_decrypt_with_keyring(
6073
default_region_kms_key_id: str,
6174
second_region_kms_key_id: str
@@ -144,7 +157,8 @@ def encrypt_and_decrypt_with_keyring(
144157
# `default_region_kms_key_id` directly.
145158

146159
# 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)
148162

149163
# 7b. Create KMS keyring
150164
default_region_kms_keyring_input: CreateAwsKmsKeyringInput = CreateAwsKmsKeyringInput(
@@ -170,7 +184,8 @@ def encrypt_and_decrypt_with_keyring(
170184
# `second_region_kms_key_id` directly.
171185

172186
# 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)
174189

175190
# 8b. Create KMS keyring
176191
second_region_kms_keyring_input: CreateAwsKmsKeyringInput = CreateAwsKmsKeyringInput(

examples/src/keyrings/aws_kms_rsa_keyring_example.py

+3
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ def encrypt_and_decrypt_with_keyring(
8181
config=MaterialProvidersConfig()
8282
)
8383

84+
# # Create the AWS KMS RSA keyring input
85+
# For more information on the allowed encryption algorithms, please see
86+
# https://github.com/awslabs/aws-encryption-sdk-specification/blob/master/framework/aws-kms/aws-kms-rsa-keyring.md#supported-padding-schemes
8487
keyring_input: CreateAwsKmsRsaKeyringInput = CreateAwsKmsRsaKeyringInput(
8588
public_key=public_key,
8689
kms_key_id=kms_rsa_key_id,

examples/test/keyrings/test_i_aws_kms_discovery_multi_keyring_example.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@
1111
def test_encrypt_and_decrypt_with_keyring():
1212
"""Test function for encrypt and decrypt using the AWS KMS Discovery Multi Keyring example."""
1313
kms_key_id = "arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f"
14-
encrypt_and_decrypt_with_keyring(kms_key_id)
14+
aws_regions = ["us-east-1", "us-west-2"]
15+
encrypt_and_decrypt_with_keyring(kms_key_id, aws_regions)

0 commit comments

Comments
 (0)