Skip to content

Instantly share code, notes, and snippets.

View pmatsinopoulos's full-sized avatar
💻
Programming

Panos Matsinopoulos pmatsinopoulos

💻
Programming
View GitHub Profile
@pmatsinopoulos
pmatsinopoulos / decrypt_file_using_ror_utilities.rb
Created April 28, 2024 06:12
Encrypt a file using RoR Utilities
content_path = Rails.root.join('secret_content_file.txt.enc')
encrypted_file = ActiveSupport::EncryptedFile.new(
content_path: content_path,
key_path: Rails.application.config.credentials.key_path,
env_key: "RAILS_MASTER_KEY",
raise_if_missing_key: true
)
contents = encrypted_file.read
@pmatsinopoulos
pmatsinopoulos / encrypt_file_using_ror_utilities.rb
Created April 28, 2024 06:07
Encrypt a file using RoR Utilities
content_path = Rails.root.join('secret_content_file.txt')
encrypted_file = ActiveSupport::EncryptedFile.new(
content_path: "#{content_path}.enc",
key_path: Rails.application.config.credentials.key_path,
env_key: "RAILS_MASTER_KEY",
raise_if_missing_key: true
)
contents = File.read(content_path)
@pmatsinopoulos
pmatsinopoulos / route_table_to_nat_gateway.tf
Created August 28, 2023 14:26
AWS Public and Private Subnets - route_table_to_nat_gateway.tf
resource "aws_route_table" "to_nat_gateway" {
vpc_id = aws_vpc.private_and_public_subnets.id
tags = {
"Name" = "access-to-nat-gateway"
}
}
resource "aws_route" "to_nat_gateway" {
route_table_id = aws_route_table.to_nat_gateway.id
@pmatsinopoulos
pmatsinopoulos / nat_gateway.tf
Created August 28, 2023 14:19
AWS Private and Public Subnets - nat_gateway.tf
resource "aws_eip" "nat_gateway" {
depends_on = [aws_internet_gateway.private_and_public_subnets]
}
resource "aws_nat_gateway" "private_and_public_subnets" {
connectivity_type = "public"
allocation_id = aws_eip.nat_gateway.id
subnet_id = aws_subnet.subnet_2.id # public subnet
tags = {
@pmatsinopoulos
pmatsinopoulos / ec2_key_pair_internal.tf
Created August 28, 2023 12:15
AWS Private and Public Subnets - ec2_keypair_internal.tf
resource "aws_key_pair" "internal_to_vpc" {
key_name = "${local.project}-internal"
public_key = file("${path.module}/id_rsa_internal.pub")
tags = {
"Name" = "${local.project}-internal"
}
}
@pmatsinopoulos
pmatsinopoulos / route_table_to_internet_gateway.tf
Created August 28, 2023 07:47
AWS Private and Public Subnets - route_table_to_internet_gateway.tf
resource "aws_route_table" "to_internet_gateway" {
vpc_id = aws_vpc.private_and_public_subnets.id
tags = {
"Name" = "access-to-internet"
}
}
resource "aws_route" "to_internet_gateway" {
route_table_id = aws_route_table.to_internet_gateway.id
@pmatsinopoulos
pmatsinopoulos / internet_gateway.tf
Created August 28, 2023 07:37
AWS Private and Public Subnets - internet_gateway.tf
resource "aws_internet_gateway" "private_and_public_subnets" {
vpc_id = aws_vpc.private_and_public_subnets.id
tags = {
"Name" = "igw"
}
}
@pmatsinopoulos
pmatsinopoulos / ssh_access.tf
Created August 28, 2023 06:45
AWS Private and Public Subnets - ssh_access.tf
resource "aws_security_group" "ssh_access" {
name = "${local.project}-ssh-access"
description = "Allow SSH traffic from anywhere"
vpc_id = aws_vpc.private_and_public_subnets.id
ingress {
description = "allow SSH from anywhere"
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
@pmatsinopoulos
pmatsinopoulos / ec2.tf
Created August 27, 2023 13:45
AWS Private and Public Subnets - ec2.tf
data "aws_ami" "client" {
most_recent = true
filter {
name = "architecture"
values = ["x86_64"]
}
filter {
name = "block-device-mapping.delete-on-termination"
@pmatsinopoulos
pmatsinopoulos / ec2_key_pair.tf
Created August 27, 2023 13:14
AWS Private and Public Subnets - ec2_key_pair.tf
resource "aws_key_pair" "private_public_subnets" {
key_name = local.project
public_key = file("${path.module}/id_rsa.pub")
tags = {
"Name" = local.project
}
}