Skip to content

Commit

Permalink
nat gateway and launch template
Browse files Browse the repository at this point in the history
  • Loading branch information
JamesWoolfenden committed Aug 30, 2022
1 parent a63c33e commit 5c0fc5d
Show file tree
Hide file tree
Showing 9 changed files with 138 additions and 17 deletions.
1 change: 1 addition & 0 deletions src/aws.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ func GetAWSResourcePermissions(result ResourceV2) []string {
"aws_ssm_maintenance_window": awsSsmMaintenanceWindow,
"aws_ssm_maintenance_window_target": awsSsmMaintenanceWindowTarget,
"aws_ssm_maintenance_window_task": awsSsmMaintenanceWindowTask,
"aws_launch_template": awsLaunchTemplate,
}

var Permissions []string
Expand Down
5 changes: 4 additions & 1 deletion src/files.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ var awsRouteTable []byte
//go:embed mapping/aws/resource/ec2/aws_route_table_association.json
var awsRouteTableAssociation []byte

//go:embed mapping/aws/resource/aws_nat_gateway.json
//go:embed mapping/aws/resource/ec2/aws_nat_gateway.json
var awsNatGateway []byte

//go:embed mapping/aws/resource/rds/aws_db_option_group.json
Expand Down Expand Up @@ -364,5 +364,8 @@ var awsSsmMaintenanceWindowTarget []byte
//go:embed mapping/aws/resource/ssm/aws_ssm_maintenance_window_task.json
var awsSsmMaintenanceWindowTask []byte

//go:embed mapping/aws/resource/ec2/aws_launch_template.json
var awsLaunchTemplate []byte

//go:embed mapping/gcp/google_compute_instance.json
var googleComputeInstance []byte
11 changes: 0 additions & 11 deletions src/mapping/aws/resource/aws_nat_gateway.json

This file was deleted.

20 changes: 20 additions & 0 deletions src/mapping/aws/resource/ec2/aws_launch_template.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[
{
"apply": [
"ec2:DescribeInstanceTypes",
"ec2:CreateLaunchTemplate",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeLaunchTemplateVersions",
"ec2:DeleteLaunchTemplate",
"ec2:CreateLaunchTemplateVersion"
],
"attributes": {
"tags": []
},
"destroy": [
"ec2:DeleteLaunchTemplate"
],
"modify": [],
"plan": []
}
]
20 changes: 20 additions & 0 deletions src/mapping/aws/resource/ec2/aws_nat_gateway.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[
{
"apply": [
"ec2:CreateNatGateway",
"ec2:DeleteNatGateway",
"ec2:DescribeNatGateways"
],
"attributes": {
"tags": [
"ec2:DeleteTags",
"ec2:CreateTags"
]
},
"destroy": [
"ec2:DeleteNatGateway"
],
"modify": [],
"plan": []
}
]
86 changes: 86 additions & 0 deletions terraform/backup/aws_launch_template.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
resource "aws_launch_template" "pike" {
name = "pike"

block_device_mappings {
device_name = "/dev/sda1"

ebs {
volume_size = 20
}
}

capacity_reservation_specification {
capacity_reservation_preference = "open"
}

cpu_options {
core_count = 4
threads_per_core = 2
}

credit_specification {
cpu_credits = "standard"
}

disable_api_stop = true
disable_api_termination = true

ebs_optimized = true

elastic_gpu_specifications {
type = "test"
}

elastic_inference_accelerator {
type = "eia1.medium"
}

iam_instance_profile {
name = "test"
}

image_id = "ami-0e0b657c074a17ec0"

instance_initiated_shutdown_behavior = "terminate"

instance_market_options {
market_type = "spot"
}

instance_type = "t2.micro"

//kernel_id = "test"

key_name = "test"

metadata_options {
http_endpoint = "enabled"
http_tokens = "required"
http_put_response_hop_limit = 1
instance_metadata_tags = "enabled"
}

monitoring {
enabled = true
}

network_interfaces {
associate_public_ip_address = true
}

placement {
availability_zone = "eu-west-2a"
}

//ram_disk_id = "test"

vpc_security_group_ids = ["sg-002ed1a53dc5fe0ad"]

tag_specifications {
resource_type = "instance"

tags = {
Name = "test1"
}
}
}
2 changes: 1 addition & 1 deletion terraform/backup/aws_nat_gateway.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
resource "aws_nat_gateway" "pike" {
subnet_id = "subnet-0562ef1d304b968f4"
allocation_id = "eipalloc-0bfb8a3935d7efe71"
allocation_id = "eipalloc-0047fa56c40637c3b"
connectivity_type = "public"
tags = {
pike = "permissions"
Expand Down
9 changes: 6 additions & 3 deletions terraform/role/aws_iam_policy.basic.tf
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@ resource "aws_iam_policy" "basic" {
"Sid" : "0",
"Effect" : "Allow",
"Action" : [
"ssm:RegisterTaskWithMaintenanceWindow",
"ssm:DescribeMaintenanceWindowTasks",
"ssm:DeregisterTaskFromMaintenanceWindow"
"ec2:DescribeInstanceTypes",
"ec2:CreateLaunchTemplate",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeLaunchTemplateVersions",
"ec2:DeleteLaunchTemplate",
"ec2:CreateLaunchTemplateVersion"
],
"Resource" : "*"
}
Expand Down
1 change: 0 additions & 1 deletion todo.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@ aws_inspector_assessment_target not implemented
aws_inspector_assessment_template not implemented
aws_inspector_resource_group not implemented
aws_lambda_layer_version not implemented
aws_launch_template not implemented
aws_lb_listener_rule not implemented
aws_media_convert_queue not implemented
aws_memorydb_cluster not implemented
Expand Down

0 comments on commit 5c0fc5d

Please sign in to comment.