
【AI × AWS】 aws login 초입문 ─ AI에게 AWS를 맡기기 전에 알아두어야 할 인증 이야기
요약
AI 에이전트에게 AWS 조작을 맡기기 전 반드시 알아야 할 인증 관리 방법을 다룹니다. AWS CLI v2.32.0부터 도입된 'aws login' 커맨드의 사용법과 프로파일 설정의 중요성을 설명합니다.
핵심 포인트
- AI 에이전트 사용 시 default 프로파일 설정 주의 필요
- aws login은 브라우저 기반의 임시 인증 정보 취득 방식
- aws configure, aws sso login, aws login의 용도 구분
- 인증 정보는 로컬 캐시 파일에 저장됨
최근에는 Claude Code를 비롯한 AI 에이전트에게 CLI 조작을 맡기는 상황이 늘어나고 있습니다.
편리한 한편, AWS와 같이 「실행 = 즉시 비용이나 운영 환경과 직결」되는 세계에서는 인증 정보 (Credentials) 정리가 허술하면, AI가 의도하지 않은 환경을 멋대로 조작해 버릴 리스크가 있습니다.
이 기사에서는 AWS CLI v2.32.0부터 도입된 aws login 커맨드의 기본과, AI에게 작업을 맡기기 전에 빠지기 쉬운 포인트를 AWS CLI 초보자를 위해 정리합니다.
또한, 이 기사를 읽기 전에 default 프로파일이 정리되어 있지 않은 분은 먼저 아래의 관련 기사를 살펴보시는 것을 추천합니다.
AWS CLI는 인증 정보나 접속 대상 리전(Region)을 프로파일 (Profile) (설정의 덩어리)로서 유지합니다. 프로파일은 두 개의 파일로 나뉘어 저장됩니다.
| 파일 | 역할 |
|---|---|
~/.aws/credentials | 액세스 키(Access Key) 등 인증 정보 |
~/.aws/config | 리전(Region)이나 출력 형식 등 설정 정보 |
각각의 파일 내에 [프로파일 이름] 단위로 블록이 나열됩니다.
# ~/.aws/credentials 의 예
[default]
aws_access_key_id = ...
...
aws s3 ls와 같이 프로파일 지정 없이 커맨드를 실행하면, default가 암묵적으로 사용됩니다.
즉, default의 내용이 그대로 「자신의 조작 대상인 AWS 환경」이 됩니다. 이 부분이 이번 이야기의 출발점입니다.
aws login은 AWS CLI v2.32.0 이후로 이용할 수 있는, 브라우저 기반 인증 커맨드입니다.
IAM 사용자, 루트 사용자, IAM 페더레이션 ID의 콘솔 인증 정보를 사용하여, CLI용 임시 인증 정보를 로컬에 취득합니다.
-
실행하면 브라우저가 실행되며, AWS Management Console을 통해 사인인(Sign-in)한다
-
인증 성공 후, 최대 12시간 유효한 임시 인증 정보가 취득된다
-
인증 정보는 로컬에 캐시(Cache)된다
-
Windows:
%USERPROFILE%\.aws\login\cache -
Linux/macOS:
~/.aws/login/cache -
Windows:
# default 프로파일로 로그인
aws login
# 프로파일 지정으로 로그인
...
브라우저에서 인증이 완료되면, 터미널에 다음과 같은 메시지가 표시됩니다.
Logged in with role `arn:aws:sts::012345678910:user/iam-user`,
and configured profile `default` to use `us-east-1`.
This session will expire on October 14, 2025 at 2:04 PST.
...
aws로 시작하는 사인인 계열 커맨드는 몇 가지가 있어 용도가 섞이기 쉬우므로 정리합니다.
| 커맨드 | 용도 | 주요 대상 |
|---|---|---|
aws configure | 정적인 액세스 키를 저장한다 | IAM 사용자의 장기 키 (최근에는 비권장 추세) |
aws sso login | IAM Identity Center에서 사인인한다 | 조직에서 SSO를 사용하고 있는 환경 |
aws login | 콘솔 인증 정보로 브라우저를 통해 사인인한다 | 로컬 개발의 간편한 선택지 (v2.32.0 이후) |
IAM Identity Center (구 AWS SSO)를 사용하고 있는 환경에서는 계속해서 aws sso login을 사용합니다.
aws login과는 별개의 것이므로, 조직의 운영 규칙에 맞춰 구분해서 사용해 주세요.
여기서부터가 AI에게 작업을 맡길 때 가장 주의해야 할 포인트입니다.
aws login을 프로파일 지정 없이 실행하면, default 프로파일에 로그인 세션 정보가 기록됩니다.
default에 다른 로그인 세션이 설정되어 있는 상태에서 aws login을 실행하면, 다음과 같은 덮어쓰기 확인 프롬프트가 표시됩니다.
Profile signin is already configured to use session arn:aws:iam::0123456789012:user/ReadOnly.
Do you want to overwrite it to use arn:aws:iam::0123456789012:user/Admin instead? (y/n):
다른 ID/다른 역할 (Role)로 default를 덮어쓰지 않도록 막아주는 스토퍼(stopper)입니다.
하지만 default가 전혀 설정되어 있지 않거나, 후술할 내용처럼 정적 키(static key)만 설정되어 있는 상태에서는 이 프롬프트가 나타나지 않고 default가 생성 또는 업데이트됩니다.
이 부분이 본 기사에서 가장 중요한 부분입니다.
~/.aws/credentials의 [default]에 정적 액세스 키 (Static Access Key) (aws_access_key_id 등)가 남아 있는 상태에서 aws login을 실행하면, 터미널 상에는 다음과 같은 성공 메시지가 표시됩니다.
Updated profile default to use arn:aws:sts:xxxxxxxxxxxx:assumed-role/RoleName/username credentials.
하지만 AWS CLI의 인증 정보 우선순위 규칙에 따라, 정적 키가 우선되어 계속 사용됩니다.
즉, 겉보기에는 새로운 ID로 로그인한 것 같지만, 실제 조작은 오래된 정적 키로 실행되는 위험한 상태가 됩니다.
확인 방법은 aws configure list의 TYPE 열입니다.
> aws configure list
NAME : VALUE : TYPE : LOCATION
profile : <not set> : None : None
...
> aws configure list
NAME : VALUE : TYPE : LOCATION
profile : <not set> : None : None
...
TYPE 열이 login으로 되어 있다면 aws login의 인증 정보가 올바르게 사용되고 있는 것입니다.
만약 shared-credentials-file 상태로 남아 있다면, 관련 기사의 절차에 따라 default의 정적 키를 삭제해 주세요.
aws login의 성공 메시지는 어디까지나 "설정 파일에 대한 쓰기가 성공했다"는 것일 뿐, 그 인증 정보가 실제로 사용되고 있다는 것까지 보장하지는 않습니다.
aws login 이후에는 반드시 aws configure list로 TYPE 열을 확인하는 습관을 갖는 것을 추천합니다.
지금까지의 내용을 바탕으로, AI (Claude Code 등)에게 AWS 관련 명령을 맡길 때의 실전적인 팁을 정리합니다.
AI는 생략 가능한 옵션을 빼먹는 경향이 있습니다. 지시하는 측에서 명시해 주세요.
이후의 AWS CLI 명령은 반드시 --profile dev-sandbox를 붙여서 실행해 주세요.
프로파일(profile) 지정을 생략하지 마세요.
실행 직전에 상황을 확인하게 함으로써, 예상치 못한 프로파일로 동작을 시작하는 사고를 방지할 수 있습니다.
명령을 실행하기 전에 매번 aws configure list --profile dev-sandbox를 실행해 주세요.
TYPE 열이 login으로 되어 있는지 확인한 후에 다음으로 진행해 주세요.
default에는 가급적 아무것도 설정하지 않거나, 조회 권한만 있는 제한적인 권한만 남겨두는 것이 안전합니다.
운영 환경(Production)으로의 접속 정보는 반드시 이름이 지정된 프로파일 (예: honban-prd)로 분리합니다.
이는 AI가 --profile을 생략했을 경우의 피해 최소화 대책이기도 합니다.
delete / terminate / put / update 계열의 명령은 AI가 마음대로 실행하지 못하도록 합니다.
삭제나 변경을 동반하는 명령을 실행하기 전에, 반드시 실행 예정인 완전한 명령을 제시하고,
저의 "OK"를 받은 후에 실행해 주세요. dry-run 옵션을 사용할 수 있다면 먼저 dry-run으로 실행해 주세요.
default에 강력한 권한을 가진 키가 남아 있는 상태에서 AI에게 --profile
생략할 여지를 주면, 운영 환경 (Production Environment)에 대해 파괴적인 조작이 실행될 리스크가 있습니다.
AI에게 맡기기 전에, 먼저 default 프로파일의 클린업 (Cleanup)부터 시작할 것을 강력히 권장합니다.
aws login은, AWS CLI v2.32.0 이후부터 사용할 수 있는 브라우저 기반 인증 커맨드 (Browser-based authentication command)
- 프로파일 지정 없이 실행하면
default에 기록됨 default에 정적 키 (Static Key)가 남아 있으면,aws login의 인증 정보는 묵묵히 무시됨- 설정 후에는 반드시
aws configure list의TYPE열을 확인 - AI에게 AWS를 맡길 때는
--profile명시, 사전 확인,default분리, 파괴적 조작 확인을 프롬프트 (Prompt)에 포함할 것
aws login을 활용하기 위해서는, 우선 default 프로파일을 깨끗하게 정리해 두는 것이 첫걸음입니다.
정리가 되지 않은 분들은 관련 기사를 함께 참고해 주세요.
마지막으로, GMO Connect에서는 연구 개발 및 국제 표준화에 관한 지원이나 기술 검증을 비롯하여 폭넓은 지원을 수행하고 있으므로, 문의 사항이 있으시면 언제든 편하게 연락해 주시기 바랍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기