
⁉️ Terraform으로 AWS 인프라를 구성하다가 갑자기 이런 오류가 떴다면?
Error: The security token included in the request is invalid.
이 글은 Terraform 실행 중 발생한 AWS 인증 오류를 완벽하게 해결하는 방법을 단계별로 정리한 가이드입니다. 특히 처음
aws configure를 설정하는 분들께 도움이 될 수 있을 것이라고 생각합니다.
로컬에서 Terraform으로 인프라를 생성하는 과정 중 아래와 같은 오류 메시지를 마주쳤습니다.
에러 메시지 핵심:
InvalidClientTokenId: The security token included in the request is invalid.

Error: Retrieving AWS account details: validating provider credentials: ...
api error InvalidClientTokenId: The security token included in the request is invalid.
이 오류는 Terraform이 AWS CLI를 통해 인증하려고 했지만, 유효한 액세스 키가 등록되어 있지 않아 실패한 것이에요.
| 항목 | 내용 |
|---|---|
| ❌ 액세스 키 없음 | aws configure 이전이라 로컬에 인증 정보가 없음 |
| ❌ 잘못된 키 입력 | 잘못된 Access Key / Secret Key를 입력한 경우 |
| ❌ 비활성 키 사용 | 이전에 비활성화되거나 삭제된 키를 사용 중일 경우 |
Terraform은 내부적으로 AWS CLI를 사용해 리소스를 생성하므로, CLI에 등록된 인증 정보가 정상적이어야 실행이 가능합니다.
| 단계 | 설명 |
|---|---|
| 1️⃣ | AWS 콘솔에서 IAM 사용자에 대한 액세스 키 생성 |
| 2️⃣ | 로컬에서 aws configure 명령어로 인증 정보 등록 |
| 3️⃣ | 등록된 정보는 ~/.aws/credentials에 저장됨 |
| 4️⃣ | 이후 Terraform 명령어(plan, apply 등)가 정상 작동 |
IAM 콘솔 바로가기
- 좌측 메뉴에서 "사용자" 클릭
- 본인의 IAM 사용자 선택 (예:
your-username)- 탭 중에 "보안 자격 증명" 탭 클릭

액세스 키 만들기 버튼 클릭
용도 선택: 로컬 터미널에서 사용할 것이므로 → CLI 선택

설명 태그 설정 - 선택 사항

보안 강화 권장 설정은 필요에 따라 설정
생성되면 다음 2가지 값을 복사/저장:

| 항목 | 설명 |
|---|---|
| Access Key ID | 예: AKIAxxxxxxxxxxxxxx |
| Secret Access Key | 한 번만 보여짐! 반드시 저장 |
⚠️ 주의: Secret Access Key는 나중에 다시 조회 불가하므로 안전하게 보관하세요.
저는 그래서... .csv 파일 다운로드를 선택해서 관리하고 있습니다 ㅎ
터미널에서 아래 명령어 실행:
aws configure
| 항목 | 설명 |
|---|---|
| AWS Access Key ID | 방금 발급받은 Access Key ID |
| AWS Secret Access Key | 발급받은 Secret Access Key |
| Default region name | 예: ap-northeast-2 |
| Default output format | json 또는 table 등 (기본값은 json) |
예시:
$ aws configure
AWS Access Key ID [None]: AKIAxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxx
Default region name [None]: ap-northeast-2
Default output format [None]: json
실제 결과:

정상 연결되었는지 확인:
aws sts get-caller-identity
예시 결과:
{
"UserId": "AIDAxxxxxxxxxxxxxxxxx",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/your-username"
}
✅ 위 출력이 잘 나온다면 정상적으로 연결 완료입니다!
~/.aws/credentials~/.aws/config이 경로에 저장된 정보는 Git 등 외부로 유출되지 않도록 .gitignore에 반드시 포함되어야 해요.
| 항목 | 설명 |
|---|---|
| IAM 권한 부족 시 | 사용자에 AmazonEC2FullAccess, AmazonVPCFullAccess 등 권한 부여 필요 |
| 보안 | 키를 주기적으로 교체하거나 만료시키는 정책이 권장됨 |
Terraform에 필요한 인증 정보를 모두 등록한 후 아래 명령어를 다시 실행해보았습니다.
terraform plan -var-file="terraform.tfvars"

Terraform will perform the following actions:
# module.sg.aws_security_group.backend_sg will be created
...
🎉 이제 Terraform이 AWS 리소스를 정상적으로 인식하고 생성 계획을 출력하는 것을 확인할 수 있습니다.
| 얻은 것 | 설명 |
|---|---|
| AWS 인증 이해 | Access Key와 Secret Key가 어떻게 작동하는지 학습 |
| 실전 구성 | aws configure로 인증 설정 후 terraform 실행까지 전체 흐름 마스터 |
| 문제 해결력 | 인증 오류 발생 시 원인 파악 및 대응 방법 학습 |