MCPcopy Create free account
hub / github.com/awsdocs/aws-doc-sdk-examples / key_management

Function key_management

python/example_code/kms/key_management.py:259–328  ·  view source on GitHub ↗
(kms_client)

Source from the content-addressed store, hash-verified

257
258
259def key_management(kms_client):
260 logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
261
262 print("-" * 88)
263 print("Welcome to the AWS Key Management Service (AWS KMS) key management demo.")
264 print("-" * 88)
265
266 key_manager = KeyManager(kms_client)
267
268 answer = "y"
269 while answer.lower() == "y":
270 key_desc = input("\nLet's create a key. Describe it for me: ")
271 if not key_desc:
272 key_desc = "Key management demo key"
273 try:
274 key = key_manager.create_key(key_desc)
275 except ClientError as err:
276 logging.error(
277 "Couldn't create your key. Here's why: %s",
278 err.response["Error"]["Message"],
279 )
280 raise
281 else:
282 print("Key created:")
283 pprint(key)
284 answer = input("Create another (y/n)? ")
285
286 print("-" * 88)
287 key_manager.list_keys()
288 print("-" * 88)
289 key_id = input("Enter a key ID or ARN here to get information about the key: ")
290 if key_id:
291 key = key_manager.describe_key(key_id)
292 print(f"Got key {key_id}:")
293 pprint(key)
294 if key_id:
295 answer = input("Do you want to disable and then enable that key (y/n)? ")
296 if answer.lower() == "y":
297 key_manager.disable_key(key_id)
298 key = key_manager.describe_key(key_id)
299 print(f"AWS KMS says your key state is: {key['KeyState']}.")
300 key_manager.enable_key(key_id)
301 key = key_manager.describe_key(key_id)
302 print(f"AWS KMS says your key state is: {key['KeyState']}.")
303
304 print("-" * 88)
305 key_manager.generate_data_key(key_id)
306 print("-" * 88)
307 print("For this demo, we created these keys:")
308 for key in key_manager.created_keys:
309 print(f"\tKeyId: {key['KeyId']}")
310 print(f"\tDescription: {key['Description']}")
311 print("-" * 66)
312 print(
313 """
314 Warning:
315 Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is deleted,
316 all data that was encrypted under the KMS key is unrecoverable.

Callers 1

key_management.pyFile · 0.85

Calls 8

create_keyMethod · 0.95
list_keysMethod · 0.95
describe_keyMethod · 0.95
disable_keyMethod · 0.95
enable_keyMethod · 0.95
generate_data_keyMethod · 0.95
delete_keyMethod · 0.95
KeyManagerClass · 0.85

Tested by

no test coverage detected