45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | from __future__ import unicode_literals | ||
|  | 
 | ||
|  | import boto3 | ||
|  | import sure  # noqa | ||
|  | 
 | ||
|  | from moto import mock_ec2, mock_kms | ||
|  | from tests import EXAMPLE_AMI_ID | ||
|  | 
 | ||
|  | 
 | ||
|  | @mock_ec2 | ||
|  | @mock_kms | ||
|  | def test_run_instance_with_encrypted_ebs(): | ||
|  |     kms = boto3.client("kms", region_name="us-east-1") | ||
|  |     resp = kms.create_key(Description="my key", KeyUsage="ENCRYPT_DECRYPT") | ||
|  |     key_id = resp["KeyMetadata"]["Arn"] | ||
|  | 
 | ||
|  |     ec2 = boto3.client("ec2", region_name="us-east-1") | ||
|  |     kwargs = { | ||
|  |         "MinCount": 1, | ||
|  |         "MaxCount": 1, | ||
|  |         "ImageId": EXAMPLE_AMI_ID, | ||
|  |         "KeyName": "the_key", | ||
|  |         "InstanceType": "t1.micro", | ||
|  |         "BlockDeviceMappings": [ | ||
|  |             { | ||
|  |                 "DeviceName": "/dev/sda2", | ||
|  |                 "Ebs": { | ||
|  |                     "VolumeSize": 50, | ||
|  |                     "VolumeType": "gp2", | ||
|  |                     "Encrypted": True, | ||
|  |                     "KmsKeyId": key_id, | ||
|  |                 }, | ||
|  |             } | ||
|  |         ], | ||
|  |     } | ||
|  |     ec2.run_instances(**kwargs) | ||
|  | 
 | ||
|  |     instances = ec2.describe_instances().get("Reservations")[0].get("Instances") | ||
|  |     volume = instances[0]["BlockDeviceMappings"][0]["Ebs"] | ||
|  | 
 | ||
|  |     volumes = ec2.describe_volumes(VolumeIds=[volume["VolumeId"]]) | ||
|  |     volumes["Volumes"][0]["Size"].should.equal(50) | ||
|  |     volumes["Volumes"][0]["Encrypted"].should.equal(True) | ||
|  |     volumes["Volumes"][0]["KmsKeyId"].should.equal(key_id) |