Search

[Terraform]에서 AWS CLI Profile 사용하기

PublishDate
2021/05/25
Category
IaC
Terraform
Tag & Keyword
aws profile
provider
AWS CLI SSO
준비물 - 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]" }
Python
복사
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" } }
Python
복사
terraform apply 명령어로 적용 결과를 콘솔에서 확인했다.

결론

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