준비물
- 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 값을 코드에 적지 않아도 돼서 보안 측면에서 더 만족스러웠다.