Skip to content

Commit 0ff2ad0

Browse files
committed
Improved ErrorHandling for kms-key-rotation fast-fix
1 parent 5e6e4b2 commit 0ff2ad0

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

kms-key-rotation/enable-kms-key-rotation.py

+15-9
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,24 @@ def main(args, logger):
4141
if e.response['Error']['Code'] == 'AccessDeniedException':
4242
logger.warning(f"Unable to get details of key {k} in {region}: AccessDenied")
4343
continue
44-
else:
45-
raise
44+
else:
45+
raise
4646

4747
def enable_key_rotation(kms_client, KeyId):
4848
'''Actually perform the enabling of Key rotation and checking of the status code'''
49-
response = kms_client.enable_key_rotation(KeyId=KeyId)
50-
if response['ResponseMetadata']['HTTPStatusCode'] == 200:
51-
return(True)
52-
else:
53-
logger.error(f"Attempt to enable key rotation for {KeyId} returned {response}")
54-
return(False)
55-
49+
try:
50+
response = kms_client.enable_key_rotation(KeyId=KeyId)
51+
if response['ResponseMetadata']['HTTPStatusCode'] == 200:
52+
return(True)
53+
else:
54+
logger.error(f"Attempt to enable key rotation for {KeyId} returned {response}")
55+
return(False)
56+
except ClientError as e:
57+
if e.response['Error']['Code'] == 'KMSInvalidStateException':
58+
logger.warning(f"KMS Key {KeyId} is pending deletion")
59+
return(True)
60+
else:
61+
raise
5662

5763
def get_all_keys(kms_client):
5864
'''Return an array of all KMS keys for this region'''

0 commit comments

Comments
 (0)