AWS code-library documentation change
Summary
Added PowerShell V5 examples for EC2 RunInstances API, including security group usage, key pairs, DryRun validation, and tagging
Security assessment
Examples demonstrate security features like SecurityGroupId, KeyName, and DryRun parameter for permission validation. However, no evidence of addressing a specific security vulnerability.
Diff
diff --git a/code-library/latest/ug/ec2_example_ec2_RunInstances_section.md b/code-library/latest/ug/ec2_example_ec2_RunInstances_section.md index 09e8ec307..6e91f8328 100644 --- a//code-library/latest/ug/ec2_example_ec2_RunInstances_section.md +++ b//code-library/latest/ug/ec2_example_ec2_RunInstances_section.md @@ -797,0 +798,67 @@ PowerShell +**Tools for PowerShell V5** + + +**Example 1: This example launches a single instance of the specified AMI in EC2-Classic or a default VPC.** + + + New-EC2Instance -ImageId ami-12345678 -MinCount 1 -MaxCount 1 -InstanceType m3.medium -KeyName my-key-pair -SecurityGroup my-security-group + + +**Example 2: This example launches a single instance of the specified AMI in a VPC.** + + + New-EC2Instance -ImageId ami-12345678 -MinCount 1 -MaxCount 1 -SubnetId subnet-12345678 -InstanceType t2.micro -KeyName my-key-pair -SecurityGroupId sg-12345678 + + +**Example 3: To add an EBS volume or an instance store volume, define a block device mapping and add it to the command. This example adds an instance store volume.** + + + $bdm = New-Object Amazon.EC2.Model.BlockDeviceMapping + $bdm.VirtualName = "ephemeral0" + $bdm.DeviceName = "/dev/sdf" + + New-EC2Instance -ImageId ami-12345678 -BlockDeviceMapping $bdm ... + + +**Example 4: To specify one of the current Windows AMIs, get its AMI ID using Get-SSMLatestEC2Image. This example launches an instance from the current base AMI for Windows Server 2016.** + + + $ami = (Get-SSMLatestEC2Image -Path 'ami-windows-latest' -ImageName 'WINDOWS*2016*English*Core*BASE').Value + + New-EC2Instance -ImageId $ami ... + + +**Example 5: Launches an instance into the specified dedicated host environment.** + + + New-EC2Instance -ImageId ami-1a2b3c4d -InstanceType m4.large -KeyName my-key-pair -SecurityGroupId sg-1a2b3c4d -AvailabilityZone us-west-1a -Tenancy host -HostID h-1a2b3c4d5e6f1a2b3 + + +**Example 6: This request launches two instances and applies a tag with a key of webserver and a value of production to the instances. The request also applies a tag with a key of cost-center and a value of cc123 to the volumes that are created (in this case, the root volume for each instance).** + + + $tag1 = @{ Key="webserver"; Value="production" } + $tag2 = @{ Key="cost-center"; Value="cc123" } + + $tagspec1 = new-object Amazon.EC2.Model.TagSpecification + $tagspec1.ResourceType = "instance" + $tagspec1.Tags.Add($tag1) + + $tagspec2 = new-object Amazon.EC2.Model.TagSpecification + $tagspec2.ResourceType = "volume" + $tagspec2.Tags.Add($tag2) + + New-EC2Instance -ImageId "ami-1a2b3c4d" -KeyName "my-key-pair" -MaxCount 2 -InstanceType "t2.large" -SubnetId "subnet-1a2b3c4d" -TagSpecification $tagspec1,$tagspec2 + + +**Example 7: This example validates permissions for launching an EC2 instance using the DryRun parameter without actually creating the instance. Note: This throws an exception if succeeded which is the expected behavior.** + + + New-EC2Instance -ImageId 'ami-12345678' -InstanceType 't2.micro' -KeyName 'my-key-pair' -Region 'us-west-2' -DryRun $true + + + * For API details, see [RunInstances](https://docs.aws.amazon.com/powershell/v5/reference) in _AWS Tools for PowerShell Cmdlet Reference (V5)_. + + + +