구름

Terraform provider에 AWS CLI profile 적용하기 (AWS SSO profile 사용가능) 본문

Code/IaC

Terraform provider에 AWS CLI profile 적용하기 (AWS SSO profile 사용가능)

Cloudest 2021. 5. 25. 10:35
💡
준비물
- AWS SSO 계정
- Terraform , AWS CLI 환경
 

서론

  • Terraform에서도 Provider를 profile로 사용하면 좋겠다고 생각했다. 그리고 역시 Terraform에서도 profile을 통한 자격증명을 지원한다.
  • 사용자가 생성한 IAM User의 AccessKey, SecretKey가 입력된 profile이든, AWS CLI SSO로 생성된 임시 profile이든 상관없다. provider에 입력한 profile 이름이 내가 실제로 가진 profile인지 내부적으로 AWS의 API를 통해 검증하는 것 같다.

 

AWS profile을 provider로 사용하기

  • AWS profile을 provider에 적용하는것은 정말 간단하다.
    provider "aws" {
    	profile = "[Profile Name]"
        region = "[Region Name]"
    }
    AWS Configure로 생성한 profile에 Default Region을 지정해도 Terraform provider에서 다시 입력 해 줘야한다. (region 값을 작성하지 않았다면 terraform plan / apply 명령어를 실행할 때 region 값을 입력받는다.)
  • AWS Provider와 가장 간단하게 vpc 생성 코드를 통해 정상적으로 작동하는지 확인해본다.
    provider "aws" {
        profile = "[Profile Name]"
        region = "ap-northeast-2"
    }
    
    #Create the VPC
    resource "aws_vpc" "test" {
      cidr_block = "10.11.0.0/20"
      tags ={
          Name = "Test-Profile-Provider"
      }
    }
    terraform apply 명령어로 적용 결과를 콘솔에서 확인했다.

결론

  • 이 방식은 여러명이서 협업을 할 때에는 profile 공유가 안 돼서 힘들 수 있을 것 같다.
  • IAM User 생성 권한이 없는 계정 or Access Key가 없는 계정에서도 사용할 수 있다.
  • 혼자 작업 할 때에는 IAM User를 생성하지 않아도 되는 편리함과 Key 값을 코드에 적지 않아도 돼서 보안 측면에서 더 만족스러웠다.
Comments