InvalidClientTokenId 오류 해결 방법 및 원인 분석Terraform을 사용해 AWS 인프라를 구축하려고 할 때 terraform apply 실행 중 AWS 인증 오류가 발생하는 경우가 있다. 특히 InvalidClientTokenId 에러는 AWS 자격 증명(AWS Credentials)이 잘못되었거나 만료되었을 때 발생합니다.
이 글에서는 Terraform 적용 시 AWS 인증 오류가 발생하는 원인과 해결 방법을 순차적으로 정리하여 언제든지 다시 따라할 수 있도록 구성했습니다.
Terraform을 적용(terraform apply)하는 과정에서 다음과 같은 오류가 발생했습니다.
Error: Retrieving AWS account details: validating provider credentials: retrieving caller identity from STS: operation error STS: GetCallerIdentity,
https response error StatusCode: 403, RequestID: ..., api error InvalidClientTokenId: The security token included in the request is invalid.
InvalidClientTokenId 오류는 AWS 자격 증명이 유효하지 않거나 만료되었을 때 발생합니다.AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN 등을 사용해 인증을 수행하는데, 이 값들이 잘못되었거나 설정되지 않았을 가능성이 큽니다.aws configure)이 올바르게 되어 있지 않으면 Terraform이 AWS와 연결되지 않습니다.Terraform이 AWS와 정상적으로 통신할 수 있도록 AWS 인증 정보를 새로 설정하는 방법을 단계별로 진행하겠습니다.
먼저, 현재 설정된 AWS 자격 증명이 정상적으로 작동하는지 확인해야 합니다.
aws sts get-caller-identity
정상적인 경우 출력 예시:
{
"UserId": "AIDAEXAMPLEID",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/myuser"
}
에러 발생 시 (InvalidClientTokenId):
An error occurred (InvalidClientTokenId) when calling the GetCallerIdentity operation: The security token included in the request is invalid.
➡ 자격 증명이 유효하지 않거나 만료되었음을 의미합니다.
aws configure list
출력 예시:
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************WZFK shared-credentials-file
secret_key ****************xMfP shared-credentials-file
region ap-northeast-2 config-file ~/.aws/config
➡ AWS 자격 증명이 shared-credentials-file에서 가져오고 있지만, 유효하지 않거나 만료되었을 가능성이 있습니다.
잘못된 자격 증명을 삭제하고, 새로운 자격 증명을 설정해야 합니다.
rm -rf ~/.aws/credentials
rm -rf ~/.aws/config
➡ 이 명령어를 실행하면 기존의 AWS 인증 정보가 삭제됩니다.
AWS IAM 콘솔에서 새로운 Access Key ID 및 Secret Access Key를 생성해야 합니다.



Access Key ID 및 Secret Access Key를 복사하여 안전한 곳에 저장



새로 발급받은 Access Key ID와 Secret Access Key를 사용하여 AWS CLI를 설정합니다.
aws configure
입력값 예시:
AWS Access Key ID [None]: <새로운_ACCESS_KEY>
AWS Secret Access Key [None]: <새로운_SECRET_KEY>
Default region name [None]: ap-northeast-2
Default output format [None]: json

➡ 이제 새로운 AWS 자격 증명이 ~/.aws/credentials에 저장됩니다.
새로운 자격 증명이 제대로 적용되었는지 확인하기 위해 다음 명령어를 실행합니다.
aws sts get-caller-identity
출력 예시:
{
"UserId": "AIDAEXAMPLEID",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/myuser"
}
✅ 정상적으로 계정 정보가 출력되면, AWS 인증 문제가 해결된 것!
이제 Terraform을 다시 실행하면 정상적으로 동작할 것입니다.
terraform apply --auto-approve
| 단계 | 명령어 / 작업 | 설명 |
|---|---|---|
| 1 | aws sts get-caller-identity | 현재 AWS 인증 정보 확인 |
| 2 | aws configure list | 현재 설정된 AWS 자격 증명 확인 |
| 3 | rm -rf ~/.aws/credentials ~/.aws/config | 잘못된 AWS 자격 증명 삭제 |
| 4 | IAM 콘솔에서 새 Access Key ID & Secret Access Key 생성 | 새로운 자격 증명 발급 |
| 5 | aws configure | 새 자격 증명 설정 |
| 6 | aws sts get-caller-identity | AWS 인증 정상 동작 확인 |
| 7 | terraform apply --auto-approve | Terraform 적용 재시도 |
이제 Terraform을 적용할 때 발생했던 AWS 인증 오류 (InvalidClientTokenId 오류)를 해결하는 방법을 완벽히 정리해보았습니다.
이 방법을 따르면 언제든지 AWS 인증 문제를 해결하고 Terraform을 정상적으로 적용할 수 있을 것입니다.
✅ 이제 다시 Terraform을 실행해도 문제없이 AWS와 연결될 것입니다 ㅎ 🚀🔥