Terraform에서 keypair를 작성하는 방법에 대해 알아보자!

2023.07.25

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 Terraform에서 keypair를 작성하는 방법에 대해 알아 보겠습니다.

terraform 코드 작성하기

resource "tls_private_key" "test_key" {
  algorithm = "RSA"
  rsa_bits  = 4096
}

위의 코드에서는 praivate key를 생성하기 위해 작성 되었습니다.
algorithm에서 "RSA" 와 "ECDSA" 중에서 여러분들이 필요하신 것을 선택해서 설정 합니다.
rsa_bits는 위의 algorithm에서 RSA를 설정 했을 경우 RSA 키의 크기(비트)입니다. 기본값은 2048입니다.
algorithm에서 ECDSA를 설정했을 경우 ecdsa_curve의 값을 설정해야 합니다.

resource "aws_key_pair" "test_keypair" {
  key_name   = "test-keypair.pem"
  public_key = tls_private_key.test_key.public_key_openssh
}

위의 코드에서는 AWS에서 keypair를 작성 합니다.
public_key에서 어떤 private key의 public key정보를 등록할 것 인지를 설정 합니다.

resource "local_file" "test_local" {
  filename        = "./keypair/test-keypair.pem"
  content         = tls_private_key.test_key.private_key_pem
  file_permission = "0600"
}

위의 코드는 작성된 private키를 자신의 local환경에 저장 하기 위한 코드 입니다.
filename에서 파일의 이름을 설정 합니다.
content에서 어떤 파일, 파일의 정보등을 대상으로 할 것 인가를 설정 합니다.
file_permission애서 생성된 파일에 어떠한 권한을 줄 것인가를 설정 합니다. (ssh 경우 400 이나 600을 사용)

  • 400 : 더이상 편집을 하지 않을 경우
  • 600 : 편집하거나 할 가능성이 있는 경우

전체 코드

resource "tls_private_key" "test_key" {
  algorithm = "RSA"
  rsa_bits  = 4096
}

resource "aws_key_pair" "test_keypair" {
  key_name   = "test-keypair.pem"
  public_key = tls_private_key.test_key.public_key_openssh
} 

resource "local_file" "test_local" {
  filename        = "./keypair/test-keypair.pem"
  content         = tls_private_key.test_key.private_key_pem
  file_permission = "0600"
}

마무리

이번 블로그에서는 Terraform에서 keypair를 작성 하는 방법을 소개 하였습니다. keypair 파일도 terraform에서 작성하여 관리하고 싶은 분들께 조금이라도 도움이 되었으면 좋겠습니다

참고 자료

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !