read only 권한 계정 발급

This commit is contained in:
havelight-ee
2023-03-08 16:37:03 +09:00
parent 6b3334988b
commit 2b84a8a286
175 changed files with 251 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
# This file is maintained automatically by "terraform init".
# Manual edits may be lost in future updates.
provider "registry.terraform.io/hashicorp/aws" {
version = "4.27.0"
constraints = ">= 4.0.0"
hashes = [
"h1:w3j7YomUQ9IfRp3MUuY0+hFX1T1cawZoj0Xsc1a46bU=",
"zh:0f5ade3801fec487641e4f7d81e28075b716c787772f9709cc2378d20f325791",
"zh:19ffa83be6b6765a4f821a17b8d260dd0f192a6c40765fa53ac65fd042cb1f65",
"zh:3ac89d33ff8ca75bdc42f31c63ce0018ffc66aa69917c18713e824e381950e4e",
"zh:81a199724e74992c8a029a968d211cb45277d95a2e88d0f07ec85127b6c6849b",
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
"zh:a2e2c851a37ef97bbccccd2e686b4d016abe207a7f56bff70b10bfdf8ed1cbfd",
"zh:baf844def338d77f8a3106b1411a1fe22e93a82e3dc51e5d33b766f741c4a6a3",
"zh:bc33137fae808f91da0a9de7031cbea77d0ee4eefb4d2ad6ab7f58cc2111a7ff",
"zh:c960ae2b33c8d3327f67a3db5ce1952315146d69dfc3f1b0922242e2b218eec8",
"zh:f3ea1a25797c79c035463a1188a6a42e131f391f3cb714975ce49ccd301cda07",
"zh:f7e77c871d38236e5fedee0086ff77ff396e88964348c794cf38e578fcc00293",
"zh:fb338d5dfafab907b8608bd66cad8ca9ae4679f8c62c2435c2056a38b719baa2",
]
}

View File

@@ -0,0 +1,133 @@
resource "aws_route_table" "rt-datasaker-dev" {
tags = {
"Name" = "rt-datasaker-dev"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_route" "route-private-rt-datasaker-dev-0-0-0-0--0" {
destination_cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.natgw-datasaker.id
route_table_id = aws_route_table.rt-datasaker-dev.id
}
resource "aws_subnet" "sbn-dev-a" {
availability_zone = "ap-northeast-2a"
cidr_block = "172.21.8.0/23"
enable_resource_name_dns_a_record_on_launch = true
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"Name" = "sbn-dev-a.datasaker"
"SubnetType" = "Private"
"kubernetes.io/cluster/datasaker" = "owned"
"kubernetes.io/cluster/dev.datasaker.io" = "shared"
"kubernetes.io/role/elb" = "1"
"kubernetes.io/role/internal-elb" = "1"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_subnet" "sbn-dev-b" {
availability_zone = "ap-northeast-2b"
cidr_block = "172.21.10.0/23"
enable_resource_name_dns_a_record_on_launch = true
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"Name" = "sbn-dev-b.datasaker"
"SubnetType" = "Private"
"kubernetes.io/cluster/datasaker" = "owned"
"kubernetes.io/cluster/dev.datasaker.io" = "shared"
"kubernetes.io/role/elb" = "1"
"kubernetes.io/role/internal-elb" = "1"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_subnet" "sbn-dev-c" {
availability_zone = "ap-northeast-2c"
cidr_block = "172.21.12.0/23"
enable_resource_name_dns_a_record_on_launch = true
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"Name" = "sbn-dev-c.datasaker"
"SubnetType" = "Private"
"kubernetes.io/cluster/datasaker" = "owned"
"kubernetes.io/cluster/dev.datasaker.io" = "shared"
"kubernetes.io/role/elb" = "1"
"kubernetes.io/role/internal-elb" = "1"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_route_table_association" "rta-dev-a" {
route_table_id = aws_route_table.rt-datasaker-dev.id
subnet_id = aws_subnet.sbn-dev-a.id
}
resource "aws_route_table_association" "rta-dev-b" {
route_table_id = aws_route_table.rt-datasaker-dev.id
subnet_id = aws_subnet.sbn-dev-b.id
}
resource "aws_route_table_association" "rta-dev-c" {
route_table_id = aws_route_table.rt-datasaker-dev.id
subnet_id = aws_subnet.sbn-dev-c.id
}
resource "aws_security_group" "sg-dev-datasaker" {
description = "Security group dev-datasaker"
name = "secg-dev-datasaker"
tags = {
"Name" = "sg-dev-datasaker"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-ingress-tcp-22to22-dev-datasaker-io" {
cidr_blocks = ["0.0.0.0/0"]
from_port = 22
protocol = "tcp"
security_group_id = aws_security_group.sg-dev-datasaker.id
to_port = 22
type = "ingress"
}
resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-ingress-icmp-dev-datasaker-io" {
cidr_blocks = ["0.0.0.0/0"]
from_port = 8
protocol = "icmp"
security_group_id = aws_security_group.sg-dev-datasaker.id
to_port = 8
type = "ingress"
}
resource "aws_security_group_rule" "sgr-to-0-0-0-0--0-egress-icmp-dev-datasaker-io" {
cidr_blocks = ["0.0.0.0/0"]
from_port = 8
protocol = "icmp"
security_group_id = aws_security_group.sg-dev-datasaker.id
to_port = 8
type = "egress"
}
resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-engress-tcp-all-dev-datasaker-io" {
cidr_blocks = ["0.0.0.0/0"]
from_port = 0
protocol = "tcp"
security_group_id = aws_security_group.sg-dev-datasaker.id
to_port = 65535
type = "egress"
}

View File

@@ -0,0 +1,252 @@
output "sbn_dmz_a_id" {
value = aws_subnet.sbn-dmz-a.id
}
output "sbn_dmz_b_id" {
value = aws_subnet.sbn-dmz-b.id
}
output "sbn_dmz_c_id" {
value = aws_subnet.sbn-dmz-c.id
}
resource "aws_subnet" "sbn-dmz-a" {
availability_zone = "ap-northeast-2a"
cidr_block = "172.21.0.0/24"
enable_resource_name_dns_a_record_on_launch = true
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"Name" = "sbn-dmz-a.datasaker"
"SubnetType" = "Utility"
"kubernetes.io/cluster/datasaker" = "owned"
"kubernetes.io/cluster/dev.datasaker.io" = "shared"
"kubernetes.io/role/elb" = "1"
"kubernetes.io/role/internal-elb" = "1"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_subnet" "sbn-dmz-b" {
availability_zone = "ap-northeast-2b"
cidr_block = "172.21.1.0/24"
enable_resource_name_dns_a_record_on_launch = true
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"Name" = "sbn-dmz-b.datasaker"
"SubnetType" = "Utility"
"kubernetes.io/cluster/datasaker" = "owned"
"kubernetes.io/cluster/dev.datasaker.io" = "shared"
"kubernetes.io/role/elb" = "1"
"kubernetes.io/role/internal-elb" = "1"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_subnet" "sbn-dmz-c" {
availability_zone = "ap-northeast-2c"
cidr_block = "172.21.2.0/24"
enable_resource_name_dns_a_record_on_launch = true
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"Name" = "sbn-dmz-c.datasaker"
"SubnetType" = "Utility"
"kubernetes.io/cluster/datasaker" = "owned"
"kubernetes.io/cluster/dev.datasaker.io" = "shared"
"kubernetes.io/role/elb" = "1"
"kubernetes.io/role/internal-elb" = "1"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_route_table_association" "rta-dmz-a" {
route_table_id = aws_route_table.rt-datasaker-pub.id
subnet_id = aws_subnet.sbn-dmz-a.id
}
resource "aws_route_table_association" "rta-dmz-b" {
route_table_id = aws_route_table.rt-datasaker-pub.id
subnet_id = aws_subnet.sbn-dmz-b.id
}
resource "aws_route_table_association" "rta-dmz-c" {
route_table_id = aws_route_table.rt-datasaker-pub.id
subnet_id = aws_subnet.sbn-dmz-c.id
}
resource "aws_security_group" "sg-dmz-datasaker" {
description = "Security group dmz-datasaker"
name = "secg-dmz-datasaker"
tags = {
"Name" = "sg-dmz-datasaker"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
# resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-ingress-tcp-22to22-dmz-datasaker-io" {
# cidr_blocks = ["0.0.0.0/0"]
# from_port = 22
# protocol = "tcp"
# security_group_id = aws_security_group.sg-dmz-datasaker.id
# to_port = 22
# type = "ingress"
# }
resource "aws_security_group_rule" "sgr-from-115-178-73-2--32-ingress-tcp-22to22-dmz-datasaker-io" {
cidr_blocks = ["115.178.73.2/32"]
from_port = 22
protocol = "tcp"
security_group_id = aws_security_group.sg-dmz-datasaker.id
to_port = 22
type = "ingress"
}
resource "aws_security_group_rule" "sgr-from-115-178-73-91--32-ingress-tcp-22to22-dmz-datasaker-io" {
cidr_blocks = ["115.178.73.91/32"]
from_port = 22
protocol = "tcp"
security_group_id = aws_security_group.sg-dmz-datasaker.id
to_port = 22
type = "ingress"
}
# resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-ingress-icmp-dmz-datasaker-io" {
# cidr_blocks = ["0.0.0.0/0"]
# from_port = 8
# protocol = "icmp"
# security_group_id = aws_security_group.sg-dmz-datasaker.id
# to_port = 8
# type = "ingress"
# }
# resource "aws_security_group_rule" "sgr-to-0-0-0-0--0-egress-icmp-dmz-datasaker-io" {
# cidr_blocks = ["0.0.0.0/0"]
# from_port = 8
# protocol = "icmp"
# security_group_id = aws_security_group.sg-dmz-datasaker.id
# to_port = 8
# type = "egress"
# }
resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-engress-tcp-all-dmz-datasaker-io" {
cidr_blocks = ["0.0.0.0/0"]
from_port = 0
protocol = "tcp"
security_group_id = aws_security_group.sg-dmz-datasaker.id
to_port = 65535
type = "egress"
}
resource "aws_launch_template" "lt-dmz-bastion-datasaker" {
block_device_mappings {
device_name = "/dev/xvda"
ebs {
delete_on_termination = true
encrypted = true
iops = 3000
throughput = 125
volume_size = 20
volume_type = "gp3"
}
}
image_id = "ami-0ea5eb4b05645aa8a"
instance_type = "t3.small"
key_name = aws_key_pair.kp-bastion-datasaker.id
lifecycle {
create_before_destroy = true
}
metadata_options {
http_endpoint = "enabled"
http_protocol_ipv6 = "disabled"
http_put_response_hop_limit = 3
http_tokens = "required"
}
monitoring {
enabled = false
}
name = "lt-dmz-bastion-datasaker"
network_interfaces {
associate_public_ip_address = true
delete_on_termination = true
ipv6_address_count = 0
security_groups = [aws_security_group.sg-dmz-datasaker.id]
}
# tag_specifications {
# resource_type = "instance"
# tags = {
# "Name" = "lt-dmz-bastion-datasaker"
# }
# }
# tag_specifications {
# resource_type = "volume"
# tags = {
# "Name" = "master-ap-northeast-2b.masters.ap-northeast-2.dev.datasaker.io"
# }
# }
tags = {
"Name" = "lt-dmz-bastion-datasaker"
}
# user_data = filebase64("${path.module}/data/aws_launch_template_master-ap-northeast-2b.masters.ap-northeast-2.dev.datasaker.io_user_data")
}
resource "aws_autoscaling_group" "ag-dmz-bastion-datasaker" {
enabled_metrics = ["GroupDesiredCapacity", "GroupInServiceInstances", "GroupMaxSize", "GroupMinSize", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
launch_template {
id = aws_launch_template.lt-dmz-bastion-datasaker.id
version = aws_launch_template.lt-dmz-bastion-datasaker.latest_version
}
max_instance_lifetime = 0
max_size = 1
metrics_granularity = "1Minute"
min_size = 1
name = "ag-dmz-bastion-datasaker"
protect_from_scale_in = false
tag {
key = "Name"
propagate_at_launch = true
value = "ag-dmz-bastion-datasaker"
}
vpc_zone_identifier = [aws_subnet.sbn-dmz-a.id,aws_subnet.sbn-dmz-b.id]
}
resource "aws_eip" "eip-natgw-datasaker" {
# instance = aws_instance.web1-ec2.id
vpc = true
tags = {
Name = "eip-natgw-datasaker"
}
}
resource "aws_nat_gateway" "natgw-datasaker" {
allocation_id = aws_eip.eip-natgw-datasaker.id
subnet_id = aws_subnet.sbn-dmz-a.id
tags = {
Name = "natgw-datasaker"
}
# To ensure proper ordering, it is recommended to add an explicit dependency
# on the Internet Gateway for the VPC.
depends_on = [aws_internet_gateway.igw-datasaker]
}

View File

@@ -0,0 +1,126 @@
resource "aws_route_table" "rt-datasaker-iac" {
tags = {
"Name" = "rt-datasaker-iac"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_route" "route-private-rt-datasaker-iac-0-0-0-0--0" {
destination_cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.natgw-datasaker.id
route_table_id = aws_route_table.rt-datasaker-iac.id
}
resource "aws_subnet" "sbn-iac-a" {
availability_zone = "ap-northeast-2a"
cidr_block = "172.21.16.0/23"
enable_resource_name_dns_a_record_on_launch = true
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"Name" = "sbn-iac-a.datasaker"
"SubnetType" = "Private"
"kubernetes.io/cluster/datasaker" = "owned"
"kubernetes.io/role/elb" = "1"
"kubernetes.io/role/internal-elb" = "1"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_subnet" "sbn-iac-b" {
availability_zone = "ap-northeast-2b"
cidr_block = "172.21.18.0/23"
enable_resource_name_dns_a_record_on_launch = true
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"Name" = "sbn-iac-b.datasaker"
"SubnetType" = "Private"
"kubernetes.io/cluster/datasaker" = "owned"
"kubernetes.io/role/elb" = "1"
"kubernetes.io/role/internal-elb" = "1"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_subnet" "sbn-iac-c" {
availability_zone = "ap-northeast-2c"
cidr_block = "172.21.20.0/23"
enable_resource_name_dns_a_record_on_launch = true
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"Name" = "sbn-iac-c.datasaker"
"SubnetType" = "Private"
"kubernetes.io/cluster/datasaker" = "owned"
"kubernetes.io/role/elb" = "1"
"kubernetes.io/role/internal-elb" = "1"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_route_table_association" "rta-iac-a" {
route_table_id = aws_route_table.rt-datasaker-iac.id
subnet_id = aws_subnet.sbn-iac-a.id
}
resource "aws_route_table_association" "rta-iac-b" {
route_table_id = aws_route_table.rt-datasaker-iac.id
subnet_id = aws_subnet.sbn-iac-b.id
}
resource "aws_route_table_association" "rta-iac-c" {
route_table_id = aws_route_table.rt-datasaker-iac.id
subnet_id = aws_subnet.sbn-iac-c.id
}
resource "aws_security_group" "sg-iac-datasaker" {
description = "Security group iac-datasaker"
name = "secg-iac-datasaker"
tags = {
"Name" = "sg-iac-datasaker"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-ingress-tcp-22to22-iac-datasaker-io" {
cidr_blocks = ["0.0.0.0/0"]
from_port = 22
protocol = "tcp"
security_group_id = aws_security_group.sg-iac-datasaker.id
to_port = 22
type = "ingress"
}
resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-ingress-icmp-iac-datasaker-io" {
cidr_blocks = ["0.0.0.0/0"]
from_port = 8
protocol = "icmp"
security_group_id = aws_security_group.sg-iac-datasaker.id
to_port = 0
type = "ingress"
}
resource "aws_security_group_rule" "sgr-to-0-0-0-0--0-egress-icmp-iac-datasaker-io" {
cidr_blocks = ["0.0.0.0/0"]
from_port = 8
protocol = "icmp"
security_group_id = aws_security_group.sg-iac-datasaker.id
to_port = 8
type = "egress"
}
resource "aws_security_group_rule" "sgr-from-0-0-0-0--0-engress-tcp-all-iac-datasaker-io" {
cidr_blocks = ["0.0.0.0/0"]
from_port = 0
protocol = "tcp"
security_group_id = aws_security_group.sg-iac-datasaker.id
to_port = 65535
type = "egress"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
{
"version": 4,
"terraform_version": "1.1.9",
"serial": 1058,
"lineage": "0d7102e1-4b04-a7c0-069c-c81a4ba42c0d",
"outputs": {},
"resources": []
}

View File

@@ -0,0 +1,93 @@
terraform {
required_version = ">= 0.15.0"
required_providers {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 4.0.0"
}
}
}
provider "aws" {
region = "ap-northeast-2"
}
provider "aws" {
alias = "files"
region = "ap-northeast-2"
}
output "vpc_datasaker_id" {
value = aws_vpc.vpc-datasaker.id
}
output "vpc_datasaker_cidr_block" {
value = aws_vpc.vpc-datasaker.cidr_block
}
resource "aws_vpc" "vpc-datasaker" {
assign_generated_ipv6_cidr_block = true
cidr_block = "172.21.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
tags = {
"Name" = "vpc-datasaker"
}
}
resource "aws_vpc_dhcp_options" "vpc-dhcp-datasaker" {
domain_name = "ap-northeast-2.compute.internal"
domain_name_servers = ["AmazonProvidedDNS"]
tags = {
"Name" = "vpc-dhcp-datasaker"
}
}
resource "aws_vpc_dhcp_options_association" "vpc-dhcp-asso-datasaker" {
dhcp_options_id = aws_vpc_dhcp_options.vpc-dhcp-datasaker.id
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_internet_gateway" "igw-datasaker" {
tags = {
"Name" = "igw-datasaker"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_key_pair" "kp-bastion-datasaker" {
key_name = "kp-bastion-datasaker"
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDv9Bk/20f0xHLQN1Mnub0VwsbRw7ggubeUZ+pUVaX9BD7uUud/ITktmTArbabLJLGgWx64la6+6VuQHauzX/cpMp4dVxoaySQDGPsB+V0WnXaq0pWop5BoJaPO75lpk/Kp7NFtn9x3315Rqmis1Df1UrQehMkqunnr2jWkil6iueAckztpsnqxlb8S+uVYiM7C4HsVx8XdOT3WtfUv+hzDlejy11nzi5T4HMT70O107N4g5CrEapluc7M3NfxCFhz5Gxu8P0dfJKLs9fFT4E8DRfGly5/cDcKbiJHSAZYRN6UwKr3z7LAw8aIW8JWflXn1fMZ92qdiT04kN8ZdVzyMpUiWMXJQPrfI2EHT/OHAympzKrXnT98oIqJANE4Eq72OG9Hrb6Tauk8Bde5/v3P9d7m5Zi9tx+01PZ1JQR+1dkJeV3Am6mjKWrxIowKPol2chnARoU7y1rEZGGi+09bD5hUq7KW6z61DUIlCMYF0Oq0IMs/voQP8zqpDmvSPNJc= hsgahm@ws-ubuntu"
tags = {
"Name" = "kp-bastion-datasaker"
}
}
resource "aws_route_table" "rt-datasaker-pub" {
tags = {
"Name" = "rt-datasaker-pub"
}
vpc_id = aws_vpc.vpc-datasaker.id
}
resource "aws_route" "r-0-0-0-0--0" {
destination_cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.igw-datasaker.id
route_table_id = aws_route_table.rt-datasaker-pub.id
}
resource "aws_route" "r-__--0" {
destination_ipv6_cidr_block = "::/0"
gateway_id = aws_internet_gateway.igw-datasaker.id
route_table_id = aws_route_table.rt-datasaker-pub.id
}