(kms_client)
| 257 | |
| 258 | |
| 259 | def 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. |
no test coverage detected