AWS CLI
Okta를 통한 AWS CLI 인증 구성을 하면 아래 항목에 보안이 강화 됩니다.
운영 리소스 감소 : CLI 접속 시 필요한 Access Key / Secret Key가 필요 없기 때문에 운영과 관리에 대한 부담이 줄어듭니다.
보안 위험 감소 : 관리 권한의 Access Key가 아닌 Okta 인증 시 Account와 역할에 부여된 임시 키를 사용하기 때문에 보안의 리스크가 줄어듭니다.
보안 및 감사 강화 : Okta의 MFA와 로그를 통해 사용자 접속 이력을 추적하고 다양한 인증 수단으로 보안을 강화할 수 있습니다.
1. AWS Account Federation
구성 전 필수 조건
AWS CLI 구성과 인증이 필요한 AWS Account에 대하여 검토하여, 해당 Account는 SAML 기반으로 AWS Account Federation 구성이 먼저 적용되어야 합니다.
AWS Account Federation 구성 가이드는 아래 링크를 참고 바랍니다.
AWS Federation: Single Account (Account 1개 일 경우)
AWS Federation: Multi Account (Account가 다수 일 경우) - IAM에 구성한 IDP Name은 모든 Account에서 동일하여야 ARN 오류가 발생하지 않습니다.
1.1 AWS CLI 용도의 OIDC Custom Application 구성
Okta 관리콘솔에서 "Applications" → "Create App Integration" 선택
"OIDC - OpenID Connect" 메소드와 "Native Application" 타입을 선택 후 "Next"를 클릭합니다.
아래 옵션 및 항목을 적용 후 "Save" 합니다.
App integration name : AWS CLI
Grant type :
"Device Authorization" 옵션 체크
Advanced 선택 후 "Token Exchange" 옵션 체크
Controlled access : "Skip group assignment for now" 선택 후 "Save"
Application이 생성되면 "General" 항목에서 "Client ID" 정보를 복사해둡니다.
1.2 AWS Account Federation에 AWS CLI 구성
위에 복사한 AWS CLI 앱의 Client ID를 아래와 같이 AWS Account Federation 앱에 설정합니다. > "AWS Account Federation" → "Sign On" → "Settings"에서 "Edit" 선택
> "Allowed Web SSO Client" 항목에 AWS CLI 앱의 Client ID를 입력합니다.
사용자 CLI 접속하는 사용자는 AWS Account Federation 앱과 동일하게 Assign 되어 있어야 합니다. (그룹을 통한 사용자 Assign 구성을 권장 드립니다.)
1.3 "okta-aws-cli" tool 설치 및 구성
기존 사용자 AWS CLI 접속의 "aws cli" tool이 아닌 "okta-aws-cli" tool을 통해 접속하여야 Okta 인증 구성이 가능합니다.

"okta-aws-cli" 설치 (CMD 관리자 권한 실행 필수)


"okta-aws-cli" 명령어 및 사용법
1.4 사용자 경험 (인증 및 권한)
"okta-aws-cli"를 통한 인증
명령어 : okta-aws-cli web --oidc-client-id {AWS CLI 앱 Client ID} --aws-acct-fed-app-id {AWS Account Federation Application ID} --org-domain {subdomain}.okta.com -z
Okta 인증을 위한 URL 복사
복사한 URL을 인터넷 브라우저로 연결하여 "다음" 선택합니다.
사용자 인증을 진행 합니다.
인증이 완료 되면 "장치 활성화 됨" 결과가 확인되며 브라우저를 닫습니다.
그리고 아래와 같이 "credentials"의 인증 구성이 완료 됩니다.
Okta 인증 구성 확인 (Assume Role)
명령어 : aws sts get-caller-identity
"credentials" 정보 확인
최종 Okta의 Assume Role을 통해 AWS 명령어 정상 실행여부 확인
2. AWS IAM Identity Center
2.1 "aws cli" tool에 SSO 설정
AWS CLI 설치 및 버전 확인
명령어 : aws --version
AWS CLI 에 SSO 프로파일 설정
명령어 : aws configure sso
SSO session name (Recommended): okta
SSO start URL [None]: {AWS access portal 로그인 URL}
SSO region [None]: {AWS Identity Center 구성 region}
SSO registration scopes [sso:account:access]: 무시(엔터)
- AWS에서 "AWS access portal 로그인 URL", "AWS Identity Center 구성 region" 확인 방법
입력 완료되면 아래와 같이 인증 링크가 생성되며, 브라우저를 통해 AWS CLI SSO 구성의 인증을 진행합니다.
사용자 인증 (AWS와 Okta 앱에 인증하려는 사용자가 생성되고 할당되어 있어야 합니다.)
![]()
"엑세스 허용" 선택
![]()
권한 승인 완료
![]()
인증이 완료 되면 아래와 같이 SSO 프로파일의 추가 설정 단계가 진행 됩니다.
Default client Region [None]: {기본 Client 접속 region}
CLI default output format (json if not specified) [None]: {json 권장}
Profile name [AWS Role-AWS Account]: {선택사항} > 사용자가 다수의 Account와 Role이 할당되어 있어 각 역할에 따른 SSO 분리 구성이 필요하다면, 정확한 식별을 위해 명시하는 것을 권장 드립니다.
2.2 AWS SSO 프로파일을 통한 AWS CLI 실행
위에서 생성 된 SSO 프로파일에 대해 정상적으로 구성되었는지 확인 합니다.
명령어 : aws sts get-caller-identity --profile {SSO Profile Name}
SSO 프로파일의 Account와 Role에 의해 AWS CLI 명령 실행 (aws s3 ls)
명령어 : aws s3 ls --profile {SSO Profile Name}
2.3 참고 사항
AWS CLI 명령어 실행할 때마다 계속 "SSO 프로파일 옵션"(--profile)을 뒤에 붙여 주어야 하나요?
정확히 어떤 Account의 역할을 통해 AWS CLI 명령어을 실행하는지 확인을 위해 옵션을 사용하는 것이 좋지만, 많은 명령어 실행 작업과 고정된 Account의 역할을 사용한다면 기본 SSO 프로파일로 설정하여 옵션을 제거하여 AWS CLI 명령을 실행 할 수 있습니다.
1번 방법 : 현재 Shell(PowerShell / CMD)에 기본값 구성 (다른 Shell은 적용 안됨)
Windows 명령어: set AWS_PROFILE={SSO Profile Name}
Mac OS / Linux 명령어 : export AWS_PROFILE={SSO Profile Name}
2번 방법 : AWS CLI의 Config를 통한 기본 프로파일 구성
Path : C:\Users\{사용자}\.aws
File : config
Config 수정
아래와 같이 기본 값으로 구성할 "SSO 프로파일"에 대해 복사 후 "SSO 프로파일" 이름을 "default" 로 변경합니다.
"default" 변경 됨에 따라 SSO 프로필 옵션이 자동으로 적용되어 AWS CLI 명령어 실행이 가능합니다. (새로운 Shell을 실행하여도 "SSO 프로파일" 옵션이 계속 고정 적용 됨)
Last updated






































