40 lines
837 B
HCL
40 lines
837 B
HCL
terraform {
|
|
required_providers {
|
|
aws = {
|
|
source = "hashicorp/aws"
|
|
version = "~> 6.0"
|
|
}
|
|
tls = {
|
|
source = "hashicorp/tls"
|
|
version = "~> 4.0"
|
|
}
|
|
local = {
|
|
source = "hashicorp/local"
|
|
version = "~> 2.5"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "aws" {
|
|
region = "us-east-1"
|
|
}
|
|
|
|
# Generate an RSA private key locally
|
|
resource "tls_private_key" "devops_kp" {
|
|
algorithm = "RSA"
|
|
rsa_bits = 4096
|
|
}
|
|
|
|
# Import the public half into AWS as an RSA key pair
|
|
resource "aws_key_pair" "devops_kp" {
|
|
key_name = "devops-kp"
|
|
public_key = tls_private_key.devops_kp.public_key_openssh
|
|
}
|
|
|
|
# Persist the private key to disk
|
|
resource "local_sensitive_file" "devops_kp_pem" {
|
|
content = tls_private_key.devops_kp.private_key_pem
|
|
filename = "/home/bob/devops-kp.pem"
|
|
file_permission = "0400"
|
|
}
|