AWS CLI에서 액세스 키 발급 & 연결

Ma_Seokjae·2025년 4월 2일
post-thumbnail

⁉️ Terraform으로 AWS 인프라를 구성하다가 갑자기 이런 오류가 떴다면?

Error: The security token included in the request is invalid.

이 글은 Terraform 실행 중 발생한 AWS 인증 오류완벽하게 해결하는 방법을 단계별로 정리한 가이드입니다. 특히 처음 aws configure를 설정하는 분들께 도움이 될 수 있을 것이라고 생각합니다.


🫨 문제 상황: Terraform 실행 중 인증 오류 발생

로컬에서 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 등)가 정상 작동

‼️ 발생한 오류

✅ 1. IAM 사용자 콘솔 접속

IAM 콘솔 바로가기

  1. 좌측 메뉴에서 "사용자" 클릭
  2. 본인의 IAM 사용자 선택 (예: your-username)
  3. 탭 중에 "보안 자격 증명" 탭 클릭

✅ 2. 액세스 키 생성

  1. 액세스 키 만들기 버튼 클릭

  2. 용도 선택: 로컬 터미널에서 사용할 것이므로 → CLI 선택

  3. 설명 태그 설정 - 선택 사항

  4. 보안 강화 권장 설정은 필요에 따라 설정

  5. 생성되면 다음 2가지 값을 복사/저장:

    항목설명
    Access Key ID예: AKIAxxxxxxxxxxxxxx
    Secret Access Key한 번만 보여짐! 반드시 저장

⚠️ 주의: Secret Access Key는 나중에 다시 조회 불가하므로 안전하게 보관하세요.

저는 그래서... .csv 파일 다운로드를 선택해서 관리하고 있습니다 ㅎ


✅ 3. 로컬에서 AWS CLI 연결

터미널에서 아래 명령어 실행:

aws configure

입력 항목

항목설명
AWS Access Key ID방금 발급받은 Access Key ID
AWS Secret Access Key발급받은 Secret Access Key
Default region name예: ap-northeast-2
Default output formatjson 또는 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

실제 결과:


✅ 4. 연결 테스트 (STS로 확인)

정상 연결되었는지 확인:

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 실행까지 전체 흐름 마스터
문제 해결력인증 오류 발생 시 원인 파악 및 대응 방법 학습
profile
Why not change the code?

0개의 댓글