개발 환경 설정
AWS SSO 인증 / Bitbucket 접근 / AI 작업 시 참고사항
개발환경 설정
AWS SSO 인증 설정과 Bitbucket 저장소 접근 방법
AWS SSO 설정
GS Retail의 AWS 접근은 SSO(Single Sign-On) 방식을 사용합니다. 최초 1회 설정 후, 이후에는 로그인 명령어 한 줄로 인증이 완료됩니다.
최초 설정 (1회만)
📋 복사해서 붙여넣기
aws configure sso
아래 순서로 입력합니다.
SSO session name (Recommended): gsr_cdp # 원하는 이름 (기억하기 쉬운 것)
SSO start URL [None]: {팀에서 제공하는 SSO URL 입력}
SSO region [None]: ap-northeast-2
SSO registration scopes [sso:account:access]: (Enter)
브라우저가 열리면 액세스 허용을 클릭합니다. 이후 터미널로 돌아와서:
Using the role name "gs-cdp-perm"
Default client Region [None]: ap-northeast-2
CLI default output format (json if not specified) [None]: json
Profile name [gs-cdp-perm-{account_id}]: gsr_cdp # 원하는 프로필 이름
설정 확인
📋 복사해서 붙여넣기
cat ~/.aws/config
예상 결과:
[profile gsr_cdp]
sso_session = gsr_cdp
sso_account_id = {account_id}
sso_role_name = gs-cdp-perm
region = ap-northeast-2
output = json
[sso-session gsr_cdp]
sso_start_url = {SSO URL}
sso_region = ap-northeast-2
sso_registration_scopes = sso:account:access
로그인 (매번 사용 전)
SSO 토큰은 만료 기간이 있습니다. 작업 시작 전에 로그인합니다.
📋 복사해서 붙여넣기
aws sso login --profile gsr_cdp
로그인 확인
📋 복사해서 붙여넣기
aws sts get-caller-identity --profile gsr_cdp
예상 결과:
{
"UserId": "...",
"Account": "123456789012",
"Arn": "arn:aws:sts::123456789012:assumed-role/gs-cdp-perm/..."
}
project/.env 설정
인증 정보는 코드나 yaml에 넣지 않고 .env 파일로 관리합니다.
📋 복사해서 붙여넣기
# project/.env
AWS_PROFILE=gsr_cdp # aws configure sso에서 설정한 profile 이름
EXECUTOR_ID=hjsong # 실험을 실제 실행하는 사람의 ID
.env 파일은 절대 git에 커밋하지 마세요. .gitignore에 .env가 포함되어 있는지 확인하세요.EXECUTOR_ID와 worker_id (model.yaml)가 다른 경우, run_manifest.yaml에 재현 실험으로 기록됩니다.AWS SSO 토큰 만료 시 재로그인
작업 중 아래 에러가 발생하면 SSO 토큰이 만료된 것입니다.
TokenRetrievalError: Error when retrieving token from sso: Token has expired and refresh failed
📋 복사해서 붙여넣기
aws sso login --profile gsr_cdp
로그인 완료 후 작업을 이어가면 됩니다.
Bitbucket 인증 — gsr_ml_lab_cdp repo 클론
| 항목 | SSH 키 (권장) | HTTP + PAT |
|---|---|---|
| 초기 설정 | 약간 복잡 | 간단 |
| 만료 관리 | 없음 | 토큰 갱신 필요 (90일~1년) |
| 여러 머신 | 머신별 키 발급 | 토큰 재발급 또는 공유 |
방법 A: SSH 키 설정 (권장)
1 SSH 키 생성
📋 복사해서 붙여넣기
# 기존 키 확인
ls -la ~/.ssh/
# Ed25519 키 생성 (없을 경우)
ssh-keygen -t ed25519 -C "your_email@gsretail.com" -f ~/.ssh/id_ed25519_gsr
2 SSH config 작성
📋 복사해서 붙여넣기
touch ~/.ssh/config
chmod 600 ~/.ssh/config
~/.ssh/config에 추가:
Host code.gsretail.com
HostName code.gsretail.com
User git
IdentityFile ~/.ssh/id_ed25519_gsr
UseKeychain yes
AddKeysToAgent yes
📋 복사해서 붙여넣기
# SSH agent에 키 등록 (macOS Keychain에 저장)
ssh-add --apple-use-keychain ~/.ssh/id_ed25519_gsr
3 공개키를 Bitbucket에 등록
📋 복사해서 붙여넣기
# 공개키 클립보드에 복사
pbcopy < ~/.ssh/id_ed25519_gsr.pub
Bitbucket 웹에서:
- 프로필 → Manage account → SSH keys
- Add key 클릭
- Label: 예)
MacBook Pro - 작업용 - Key: 클립보드 붙여넣기 (
ssh-ed25519 AAAA...로 시작) - Add key 클릭
4 연결 테스트
📋 복사해서 붙여넣기
ssh -T git@code.gsretail.com
Authenticated to code.gsretail.com... 메시지가 나오면 성공.
5 SSH로 클론
📋 복사해서 붙여넣기
git clone ssh://git@code.gsretail.com:7999/ds_lab/gsr_ml_lab_cdp.git
기존 HTTPS → SSH remote URL 변경
📋 복사해서 붙여넣기
cd gsr_ml_lab_cdp
git remote set-url origin ssh://git@code.gsretail.com:7999/ds_lab/gsr_ml_lab_cdp.git
git remote -v # 확인
방법 B: HTTP + PAT (Personal Access Token)
SSH가 막혀있거나 정책상 PAT를 사용해야 하는 경우입니다.
1 PAT 발급
- 우측 상단 프로필 → Manage account
- 좌측 메뉴 → HTTP access tokens 또는 Personal access tokens
- Create token 클릭
- 설정: Token name: 예)
mac-local-dev/ Permissions:Repository Read + Repository Write - Create → 토큰 문자열 즉시 복사 (한 번만 표시됨)
/plugins/servlet/access-tokens/manage를 직접 입력하세요.2 macOS Keychain에 저장
📋 복사해서 붙여넣기
git config --global credential.helper osxkeychain
# 최초 clone 시도 → 프롬프트에서:
# Username: 본인 사번 또는 Bitbucket ID
# Password: 위에서 발급받은 PAT 토큰 (계정 비밀번호 아님!)
git clone https://code.gsretail.com/scm/ds_lab/gsr_ml_lab_cdp.git
잘못된 자격증명 삭제
📋 복사해서 붙여넣기
git credential-osxkeychain erase
host=code.gsretail.com
protocol=https
# Enter 두 번 입력
AI (Claude Code) + AWS SSO 작업 시 참고사항
잘못 답변했을 때 되돌리기
Claude Code에서 ! prefix로 명령어를 실행할 수 있고, 대화를 되돌리고 싶을 때:
/rewind
명령어 입력 후 restore 클릭 → 잘못 답변하기 직전 상태로 복귀합니다.
AI 작업 중 SSO 토큰 만료 시
아래 경고창이 뜨면:
TokenRetrievalError: Error when retrieving token from sso:
Token has expired and refresh failed
AWS SSO 로그인이 필요합니다. 터미널에서 직접 실행해주세요:
! aws sso login --profile gsr_cdp
로그인 완료 후 "계속" 이라고 답해주세요.
📋 Claude Code 입력창에 붙여넣기
! aws sso login --profile gsr_cdp
로그인 완료 후 "계속"이라고 입력하면 작업이 재개됩니다.
설정 완료 체크리스트
| ☐ | 단계 | 확인 방법 |
|---|---|---|
| ☐ | AWS SSO 초기 설정 완료 | cat ~/.aws/config |
| ☐ | SSO 로그인 성공 | aws sts get-caller-identity --profile gsr_cdp |
| ☐ | project/.env에 AWS_PROFILE, EXECUTOR_ID 설정 | cat project/.env |
| ☐ | Bitbucket SSH 키 생성 및 등록 | ssh -T git@code.gsretail.com |
| ☐ | gsr_ml_lab_cdp repo 클론 완료 | ls gsr_ml_lab_cdp/ |
| ☐ | .gitignore에 .env 포함 확인 | grep .env .gitignore |