유즈케이스 03 · 사람이 들어오는 길

CLI: aws sso login

로컬 터미널에서 장기 키 없이 dev 계정 API를 호출.

개발자
STEP 1 / 5개발자

로그인 시작

aws sso login --sso-session me 를 치면 브라우저가 열린다. ~/.aws/config의 sso-session 블록이 포털 주소와 리전을 알려준다.

단계단계를 누르면 위 관계도가 그 단계로 바뀐다
  1. aws sso login --sso-session me 를 치면 브라우저가 열린다. ~/.aws/config의 sso-session 블록이 포털 주소와 리전을 알려준다.

    [sso-session me]
    sso_start_url = https://d-xxxxxxxxxx.awsapps.com/start
    sso_region = ap-northeast-2
    sso_registration_scopes = sso:account:access
    
    [profile dev-power]
    sso_session = me
    sso_account_id = 222222222222
    sso_role_name = DevPowerUser
    region = ap-northeast-2
  2. 콘솔과 같은 인증을 거친 뒤 CLI 접근을 승인. SSO 액세스 토큰이 ~/.aws/sso/cache에 저장된다.

  3. 명령을 실행하면 SDK가 캐시 토큰으로 GetRoleCredentials(dev, DevPowerUser)를 호출. assignment가 없으면 여기서 ForbiddenException.

  4. AccessKeyId · SecretAccessKey · SessionToken을 받아 캐시하고, SSO 토큰이 살아 있는 동안 만료 전에 자동 갱신.

  5. 요청에 SessionToken이 포함되어 서명된다. 평가 흐름은 콘솔과 같다.

    $ aws sts get-caller-identity --profile dev-power
    {
      "Account": "222222222222",
      "Arn": "arn:aws:sts::222222222222:assumed-role/AWSReservedSSO_DevPowerUser_1a2b3c/junghun"
    }