본문 바로가기
Linux

AWS - SAML CLI 사용 gimme-aws-creds 사용법

by 올엠 2022. 10. 21.
반응형

SAML 기반으로 AWS CLI를 사용하려면 인증을 받아야 하는데, 인증을 도와주는 유용한 도구로 Nike 회사에서 공개한 gimme-aws-creds 라는 CLI 도구이다.

 

GitHub - Nike-Inc/gimme-aws-creds: A CLI that utilizes Okta IdP via SAML to acquire temporary AWS credentials

A CLI that utilizes Okta IdP via SAML to acquire temporary AWS credentials - GitHub - Nike-Inc/gimme-aws-creds: A CLI that utilizes Okta IdP via SAML to acquire temporary AWS credentials

github.com

간단하게 어떻게 사용이 가능한지 알아보도록 하겠다.

설치

Python 기반으로 동작하기 때문에 아래와 같이 설치가 가능하다.

pip3 install --upgrade gimme-aws-creds

사용법

사용법은 먼저 환경 구성을 진행해야 한다.

권장하는 방법은 프로파일 이름을 지정해서 하는 방법을 추천한다.

gimme-aws-creds --action-configure --profile your_profile_name

위 명령을 내리면 순차적으로 진행 단계를 묻게 된다.

중요한 부분은 아래 4가지 값이다.

Okta Configuration Profile Name [DEFAULT]

- 사용할 프로파일 이름을 지정한다. DEFAULT는 프로파일 이름을 사용하지 않는 상황(기본값)에 동작한다는 의미이다.

Enter the Okta URL for your organization.

- 현재 사용하는 OTKA의 도메인 주소를 입력한다. 보통 지정된 서브 도메인으로 구분된다. sub-domain.okta.com

URL for gimme-creds-server [internal]: 

- OKTA에 등록된 고유한 주소가 있는데 이를 넣는다.

root@host:~$ ./gimme-aws-creds --action-configure --profile your_profile_name
If you'd like to assign the Okta configuration to a specific profile
instead of to the default profile, specify the name of the profile.
This is optional.
Okta Configuration Profile Name [DEFAULT]: your_profile_name
Enter the Okta URL for your organization. This is https://yourcompany.okta.com
Okta URL for your organization [https://yourcompany.okta.com]: 
Enter the URL for the gimme-creds-server or 'internal' for handling Okta APIs locally.
URL for gimme-creds-server [internal]: your_appurl
Enter the application link. This is https://yourcompany.okta.com/.....
Application url: https://yourcompany.okta.com/home/amazon_aws/.....
Do you want to write the temporary AWS to ~/.aws/credentials?
If no, the credentials will be written to stdout.
Please answer y or n.
Write AWS Credentials [y]: 
Do you want to resolve aws account id to aws alias ?
Please answer y or n.
Resolve AWS alias [n]: 
Do you want to include full role path to the role name in AWS credential profile name?
Please answer y or n.
Include Path [n]: 
Enter the ARN for the AWS role you want credentials for. 'all' will retrieve all roles.
This is optional, you can select the role when you run the CLI.
AWS Role ARN [all]: 
If you'd like to set your okta username in the config file, specify the username
.This is optional.
Okta User Name [doyler]: 
If you'd like to set the default session duration, specify it (in seconds).
This is optional.
AWS Default Session Duration [3600]: 
If you'd like to set a preferred device type to use for MFA, enter it here.
This is optional. valid devices types:[sms, call, push, token, token:software:totp]
Preferred MFA Device Type [token:software:totp]: 
Do you want the MFA device be remembered?
Please answer y or n.
Remember device [n]: 
Set the tools' output format:[bash, json]
Preferred output format [json]: 
The AWS credential profile defines which profile is used to store the temp AWS creds.
If set to 'role' then a new profile will be created matching the role name assumed by the user.
If set to 'acc-role' then a new profile will be created matching the role name assumed by the user, but prefixed with account number to avoid collisions.
If set to 'default' then the temp creds will be stored in the default profile
If set to any other value, the name of the profile will match that value.
AWS Credential Profile [default]:

 

환경 설정 파일 아래 위치에 저장된다.

$HOME/.okta_aws_login_config

 

[your_profile_name]
okta_org_url = https://yourcompany.okta.com
okta_auth_server = https://yourcompany.okta.com/oauth2/default
client_id = 0oac0k1bjmCzFcaxI2p7
gimme_creds_server = appurl
aws_appname =
aws_rolename =
write_aws_creds = True
cred_profile = role
okta_username = OKTA Account(optional)
app_url = https://yourcompany.okta.com/home/......appurl
resolve_aws_alias = False
include_path = False
preferred_mfa_type = push
remember_device = True
aws_default_duration = 3600
device_token =
output_format = json
반응형