Skip to content

Commit dfad92b

Browse files
KMS: return NotImplementedError for rotation of imported keys (#12932)
1 parent 691b777 commit dfad92b

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

localstack-core/localstack/services/kms/provider.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1408,9 +1408,7 @@ def rotate_key_on_demand(
14081408
if key.metadata["KeySpec"] != KeySpec.SYMMETRIC_DEFAULT:
14091409
raise UnsupportedOperationException()
14101410
if key.metadata["Origin"] == OriginType.EXTERNAL:
1411-
raise UnsupportedOperationException(
1412-
f"{key.metadata['Arn']} origin is EXTERNAL which is not valid for this operation."
1413-
)
1411+
raise NotImplementedError("Rotation of imported keys is not supported yet.")
14141412

14151413
key.rotate_key_on_demand()
14161414

tests/aws/services/kms/test_kms.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,21 @@ def test_create_key(
138138
assert f":{region_name}:" in response["Arn"]
139139
assert f":{account_id}:" in response["Arn"]
140140

141+
@markers.aws.only_localstack
142+
def test_unsupported_rotate_key_on_demand_with_imported_key_material(
143+
self, kms_create_key, aws_client, snapshot
144+
):
145+
key_id = kms_create_key(Origin="EXTERNAL")["KeyId"]
146+
147+
with pytest.raises(ClientError) as e:
148+
aws_client.kms.rotate_key_on_demand(KeyId=key_id)
149+
150+
assert e.value.response["ResponseMetadata"]["HTTPStatusCode"] == 501
151+
assert (
152+
e.value.response["Error"]["Message"]
153+
== "Rotation of imported keys is not supported yet."
154+
)
155+
141156
@markers.aws.validated
142157
def test_tag_existing_key_and_untag(
143158
self, kms_client_for_region, kms_create_key, snapshot, region_name
@@ -1459,6 +1474,9 @@ def test_rotate_key_on_demand_raises_error_given_non_symmetric_key(
14591474
snapshot.match("error-response", e.value.response)
14601475

14611476
@markers.aws.validated
1477+
@pytest.mark.skip(
1478+
reason="This needs to be fixed as AWS introduced support for on demand rotation of imported keys."
1479+
)
14621480
def test_rotate_key_on_demand_raises_error_given_key_with_imported_key_material(
14631481
self, kms_create_key, aws_client, snapshot
14641482
):

0 commit comments

Comments
 (0)