AWS 인증 오류 해결하기: Terraform Apply 시 InvalidClientTokenId 오류 원인 및 해결 방법

Ma_Seokjae·2025년 2월 19일
0

Terraform Apply 시 InvalidClientTokenId 오류 해결 방법 및 원인 분석


🔹 개요

Terraform을 사용해 AWS 인프라를 구축하려고 할 때 terraform apply 실행 중 AWS 인증 오류가 발생하는 경우가 있다. 특히 InvalidClientTokenId 에러는 AWS 자격 증명(AWS Credentials)이 잘못되었거나 만료되었을 때 발생합니다.

이 글에서는 Terraform 적용 시 AWS 인증 오류가 발생하는 원인과 해결 방법순차적으로 정리하여 언제든지 다시 따라할 수 있도록 구성했습니다.


✅ 1. 발생한 오류 및 원인 분석

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 자격 증명이 유효하지 않거나 만료되었을 때 발생합니다.
  • Terraform이 AWS에 접근할 때, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN 등을 사용해 인증을 수행하는데, 이 값들이 잘못되었거나 설정되지 않았을 가능성이 큽니다.
  • AWS CLI 설정(aws configure)이 올바르게 되어 있지 않으면 Terraform이 AWS와 연결되지 않습니다.

✅ 2. 문제 해결 과정

Terraform이 AWS와 정상적으로 통신할 수 있도록 AWS 인증 정보를 새로 설정하는 방법을 단계별로 진행하겠습니다.


📌 1️⃣ 기존 AWS 자격 증명 확인

먼저, 현재 설정된 AWS 자격 증명이 정상적으로 작동하는지 확인해야 합니다.

1. AWS STS 인증 정보 확인

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.

자격 증명이 유효하지 않거나 만료되었음을 의미합니다.

2. 현재 AWS CLI 설정 확인

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에서 가져오고 있지만, 유효하지 않거나 만료되었을 가능성이 있습니다.


📌 2️⃣ 기존 잘못된 AWS 자격 증명 삭제

잘못된 자격 증명을 삭제하고, 새로운 자격 증명을 설정해야 합니다.

rm -rf ~/.aws/credentials
rm -rf ~/.aws/config

이 명령어를 실행하면 기존의 AWS 인증 정보가 삭제됩니다.


📌 3️⃣ 새 AWS 자격 증명 생성

AWS IAM 콘솔에서 새로운 Access Key ID 및 Secret Access Key를 생성해야 합니다.

1. AWS IAM 콘솔에서 새 키 생성

  1. AWS IAM 콘솔 접속👉 AWS IAM 콘솔 이동
  2. 좌측 메뉴에서 "사용자(Users)" 선택
  3. 본인이 사용하는 IAM 사용자 클릭
  4. "보안 자격 증명(Security credentials)" 탭 선택
  5. "새로운 액세스 키 생성(Create Access Key)" 버튼 클릭
  6. 생성된 Access Key IDSecret Access Key를 복사하여 안전한 곳에 저장
    • 액세스 키 모범 사례 및 대안

      Command Line Interface(CLI) 선택
    • 설명 태그 설정 - 선택 사항
    • 액세스 키 검색

      .csv 파일 다운로드를 해 놓는 걸 추천합니다.

      (다운로드 받은 .csv 파일)

📌 4️⃣ 새 AWS 자격 증명 설정

새로 발급받은 Access Key IDSecret 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에 저장됩니다.


📌 5️⃣ AWS 인증 정상 동작 확인

새로운 자격 증명이 제대로 적용되었는지 확인하기 위해 다음 명령어를 실행합니다.

aws sts get-caller-identity

출력 예시:

{
    "UserId": "AIDAEXAMPLEID",
    "Account": "123456789012",
    "Arn": "arn:aws:iam::123456789012:user/myuser"
}

정상적으로 계정 정보가 출력되면, AWS 인증 문제가 해결된 것!


📌 6️⃣ Terraform 적용 다시 실행

이제 Terraform을 다시 실행하면 정상적으로 동작할 것입니다.

terraform apply --auto-approve

✅ 3. 최종 정리 – AWS 인증 오류 해결 과정

단계명령어 / 작업설명
1aws sts get-caller-identity현재 AWS 인증 정보 확인
2aws configure list현재 설정된 AWS 자격 증명 확인
3rm -rf ~/.aws/credentials ~/.aws/config잘못된 AWS 자격 증명 삭제
4IAM 콘솔에서 새 Access Key ID & Secret Access Key 생성새로운 자격 증명 발급
5aws configure새 자격 증명 설정
6aws sts get-caller-identityAWS 인증 정상 동작 확인
7terraform apply --auto-approveTerraform 적용 재시도

🎯 마무리

이제 Terraform을 적용할 때 발생했던 AWS 인증 오류 (InvalidClientTokenId 오류)를 해결하는 방법을 완벽히 정리해보았습니다.

이 방법을 따르면 언제든지 AWS 인증 문제를 해결하고 Terraform을 정상적으로 적용할 수 있을 것입니다.

이제 다시 Terraform을 실행해도 문제없이 AWS와 연결될 것입니다 ㅎ 🚀🔥

profile
Why not change the code?

0개의 댓글