노트

AWS CLI 프로필

AWS CLI Named Profiles

인프라#aws · 연결된 개념 4개

쉽게 말하면

AWS 프로필은 여러 집 열쇠에 '본가', '회사' 같은 이름표를 붙여 한 열쇠고리에 걸어 두는 거예요. 명령마다 이름표만 고르면 한 컴퓨터에서 여러 계정과 역할을 헷갈리지 않고 오갈 수 있어요.

비유가 깨지는 곳 이름표를 골랐다고 꼭 그 열쇠가 쓰이진 않아요. 환경변수 AWS_ACCESS_KEY_ID가 잡혀 있으면 프로필보다 우선하니 get-caller-identity로 확인하고, 오래 가는 키 대신 SSO 임시 자격 증명을 써요.

AWS 프로필은 AWS CLI(Command Line Interface)·SDK(Software Development Kit)가 쓸 자격 증명(credentials)과 설정 묶음에 붙인 이름이다. 한 기기에서 여러 계정·역할을 바꿔 가며 쓸 수 있게 해 준다.

파일 두 개

# ~/.aws/credentials  — 비밀값
[default]
aws_access_key_id = AKIA...
aws_secret_access_key = ...
 
[prod]
aws_access_key_id = AKIA...
aws_secret_access_key = ...
# ~/.aws/config  — 리전·출력 형식·역할
[default]
region = ap-northeast-2
 
[profile prod]
region = ap-northeast-2
output = json

credentials 파일은 [이름], config 파일은 [profile 이름]으로 적는다(default만 예외).

고르는 방법

aws s3 ls --profile prod          # 명령마다
export AWS_PROFILE=prod           # 셸 세션 전체
aws sts get-caller-identity       # 지금 누구로 인증됐는지 확인

지정하지 않으면 default를 쓴다. 권한 오류가 나면 먼저 get-caller-identity로 의도한 계정·역할인지 본다. 환경변수 AWS_ACCESS_KEY_ID가 잡혀 있으면 프로필보다 우선하므로 그것도 확인한다(환경변수 스코프와 source).

오래 가는 키 대신 SSO

장기 액세스 키를 파일에 두는 대신 IAM(Identity and Access Management) Identity Center(SSO, Single Sign-On) 프로필을 쓰면 짧게 만료되는 임시 자격 증명을 받는다.

aws configure sso
aws sso login --profile prod

비밀값을 다루는 방식이라 인증과 인가와, 앱이 시작할 때 비밀 저장소에서 설정을 받아오는 구조는 스프링 설정 외부화와 프로파일와 이어진다. AWS가 어떤 층까지 관리해 주는지는 IaaS·PaaS·SaaS를 본다.

출처: AWS CLI 설정 파일 형식 · 프로필 사용 · IAM Identity Center 설정

연결된 개념

이 노트를 가리키는 문서

뜻이 가까운 노트

  • SSH 키: Ed25519와 RSA

    SSH 키를 만들 때 고르는 서명 알고리즘이다. RSA는 큰 수의 소인수분해가 어렵다는 데 기댄 오래된 방식이고, Ed25519는 Curve25519 타원곡선을 쓰는 EdDSA(Edwards-curve Digital Signature Algorithm) 구현으로 더 짧은 키로 비슷하거나 높은 보안 수준을 낸다. 지금은 Ed25519가 기본 권장이다.

  • 버전 스큐와 정적 자산 오프로드

    버전 스큐(Version Skew)는 새 버전을 배포한 뒤에도 브라우저에 떠 있는 이전 빌드의 클라이언트가 새 서버와 통신하면서 생기는 불일치다. 대표 증상은 이전 HTML이 참조하던 JS 청크를 늦게 불러오려다 404가 나는 ChunkLoadError다.

  • 저장소 역할 분담 (DB·캐시·큐·검색)

    서버 애플리케이션 옆에는 거의 늘 관계형 DB, 인메모리 캐시, 메시지 브로커(message broker), 검색 엔진이 붙는다. 하나로 다 하지 않는 이유는 데이터의 성격(영구성·속도·전달·검색)마다 잘하는 도구가 다르기 때문이다.

  • 에이전트 루프

    LLM이 도구 호출을 요청하면 실행해 결과를 돌려주고, 도구 호출 없이 답할 때까지 반복하는 구조. 코딩 에이전트도 챗봇형 에이전트도 이 반복 위에 서 있다.

  • kubectl 디버깅 치트시트

    kubectl은 쿠버네티스 클러스터를 조회·조작하는 CLI(Command-Line Interface)다. 앱 개발자가 가장 자주 쓰는 건 "내 Pod가 떠 있나, 왜 죽었나"를 확인하는 명령들이다.

보기 옵션