AWS CLI 설정 - AWS Command Line Interface

AWS CLI 설정

이 주제에서는 AWS Command Line Interface(AWS CLI)가 AWS와 상호 작용하는 데 사용하는 기본 설정을 간편하게 구성하는 방법에 대해 설명합니다. 여기에는 보안 보안 인증, 기본 출력 형식 및 기본 AWS 리전이 포함됩니다.

프로그래밍 방식 액세스를 위한 보안 인증 정보 수집

AWS Management Console 외부에서 AWS와 상호 작용하려면 프로그래밍 방식의 액세스가 필요합니다. 인증 및 보안 인증 지침을 보려면 다음 옵션 중 하나를 선택합니다.

인증 유형 용도 지침

IAM Identity Center 인력 사용자 단기 자격 증명

(권장) IAM Identity Center 인력 사용자에게 단기 자격 증명을 사용합니다.

보안 모범 사례는 IAM Identity Center가 있는 AWS Organizations를 사용하는 것입니다. 단기 자격 증명을 기본 제공 IAM Identity Center 디렉터리 또는 Active Directory와 같은 사용자 디렉터리와 결합합니다.

AWS CLI를 사용하여 IAM Identity Center 인증 구성
IAM 사용자 단기 자격 증명 장기 자격 증명보다 더 안전한 IAM 사용자 단기 자격 증명을 사용하세요. 자격 증명이 유출된 경우 만료되기 전까지 사용할 수 있는 시간이 제한되어 있습니다. AWS CLI에 대한 단기 자격 증명으로 인증
Amazon EC2 인스턴스의 IAM 또는 IAM Identity Center 사용자. Amazon EC2 인스턴스 메타데이터를 사용하여 Amazon EC2 인스턴스에 할당된 역할을 사용하여 임시 자격 증명을 쿼리할 수 있습니다. AWS CLI에서 Amazon EC2 인스턴스 메타데이터의 자격 증명 사용
권한에 대한 역할 가정 다른 자격 증명 방법을 페어링하고 사용자가 액세스 권한이 없을 수 있는 AWS 서비스에 대한 임시 액세스를 위한 역할을 맡습니다. AWS CLI에서 IAM 역할 사용
IAM 사용자 장기 자격 증명 (권장하지 않음) 만료 기간이 없는 장기 인증 정보를 사용하세요. AWS CLI에 대해 IAM 사용자 자격 증명을 사용한 인증
IAM 또는 IAM Identity Center 인력 사용자의 외부 스토리지 (권장되지 않음) 다른 자격 증명 방법을 페어링하되 자격 증명 값을 AWS CLI 외부의 위치에 저장합니다. 이 방법은 자격 증명이 저장된 외부 위치만큼만 안전합니다. AWS CLI에서 외부 프로세스를 통해 자격 증명 소싱

새 구성 및 보안 인증 설정

AWS CLI는 credentialsconfig 파일의 프로파일(설정 모음)에 구성 및 보안 인증 정보를 저장합니다.

다음과 같은 두 가지 방법으로 빠르게 설정할 수 있습니다.

다음 예에서는 각 인증 방법에 샘플 값을 사용합니다. 샘플 값을 고유한 값으로 바꿉니다.

AWS CLI 명령을 사용한 구성

일반적으로 선호하는 터미널에서 aws configure 또는 aws configure sso 명령을 사용하는 것은 AWS CLI 설치를 설정하는 가장 빠른 방법입니다. AWS CLI에서 선호하는 보안 인증 방법에 따라 관련 정보를 입력하라는 메시지가 표시됩니다. 기본적으로 이 프로파일의 정보는 사용할 프로파일을 명시적으로 지정하지 않는 AWS CLI 명령이 실행될 때 사용됩니다.

credentialsconfig 파일에 대한 자세한 내용은 AWS CLI의 구성 및 보안 인증 파일 설정 섹션을 참조하세요.

IAM Identity Center (SSO)

이 예제는aws configure sso 마법사를 사용한 AWS IAM Identity Center를 위한 것입니다. 자세한 내용은 AWS CLI를 사용하여 IAM Identity Center 인증 구성 섹션을 참조하세요.

$ aws configure sso SSO session name (Recommended): my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1 Attempting to automatically open the SSO authorization page in your default browser. There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (111122223333) ProductionAccount, production-account-admin@example.com (444455556666) Using the account ID 111122223333 There are 2 roles available to you. > ReadOnly FullAccess Using the role name "ReadOnly" CLI default client Region [None]: us-west-2 CLI default output format [None]: json CLI profile name [123456789011_ReadOnly]: user1
IAM Identity Center (Legacy SSO)

이 예제는 aws configure sso 마법사를 사용하는 AWS IAM Identity Center의 기존 방법을 위한 것입니다. 기존 SSO를 사용하려면 세션 이름을 비워 두세요. 자세한 내용은 AWS CLI를 사용하여 IAM Identity Center 인증 구성 섹션을 참조하세요.

$ aws configure sso SSO session name (Recommended): SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1 SSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request. There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (111122223333) ProductionAccount, production-account-admin@example.com (444455556666) Using the account ID 111122223333 There are 2 roles available to you. > ReadOnly FullAccess Using the role name "ReadOnly" CLI default client Region [None]: us-west-2 CLI default output format [None]: json CLI profile name [123456789011_ReadOnly]: user1
Short-term credentials

이 예는 AWS Identity and Access Management의 단기 보안 인증을 위한 것입니다. AWS 구성 마법사를 사용하여 초기 값을 설정한 다음 aws configure set 명령은 필요한 마지막 값을 할당합니다. 자세한 내용은 AWS CLI에 대한 단기 자격 증명으로 인증 섹션을 참조하세요.

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json $ aws configure set aws_session_token fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
IAM role

이 예는 IAM 역할을 맡기 위한 것입니다. IAM 역할을 사용하는 프로필은 다른 프로필에서 보안 인증을 가져온 다음 IAM 역할 권한을 적용합니다. 다음 예에서 default는 보안 인증의 소스 프로필이며 user1는 동일한 보안 인증을 차용한 다음 새 역할을 맡습니다. 이 프로세스에는 마법사가 없으므로 aws configure set 명령을 사용하여 각 값을 설정합니다. 자세한 내용은 AWS CLI에서 IAM 역할 사용 섹션을 참조하세요.

$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole $ aws configure set source_profile default $ aws configure set role_session_name session_user1 $ aws configure set region us-west-2 $ aws configure set output json
Amazon EC2 instance metadata credentials

호스팅 Amazon EC2 인스턴스 메타데이터에서 획득한 보안 인증을 사용하는 예입니다. 이 프로세스에는 마법사가 없으므로 aws configure set 명령을 사용하여 각 값을 설정합니다. 자세한 내용은 AWS CLI에서 Amazon EC2 인스턴스 메타데이터의 자격 증명 사용 섹션을 참조하세요.

$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole $ aws configure set credential_source Ec2InstanceMetadata $ aws configure set region us-west-2 $ aws configure set output json
Long-term credentials
주의

보안 위험을 방지하려면 목적별 소프트웨어를 개발하거나 실제 데이터로 작업할 때 IAM 사용자를 인증에 사용하지 마세요. 대신 AWS IAM Identity Center과 같은 보안 인증 공급자를 통한 페더레이션을 사용하세요.

이 예는 AWS Identity and Access Management의 장기 보안 인증을 위한 것입니다. 자세한 내용은 AWS CLI에 대해 IAM 사용자 자격 증명을 사용한 인증 섹션을 참조하세요.

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

인증 및 보안 인증 방법에 대한 자세한 내용은 AWS CLI에 대한 인증 및 액세스 보안 인증 섹션을 참조하세요.

보안 인증 및 구성 파일 수동 편집

정보를 복사하여 붙여넣을 때는 configcredentials 파일을 수동으로 편집하는 것이 좋습니다. 선호하는 보안 인증 방법에 따라 파일이 다른 방식으로 설정됩니다.

파일은 홈 디렉터리의 .aws 폴더 아래에 저장됩니다. 홈 디렉터리 위치는 운영 체제에 따라 달라지지만 Windows에서는 %UserProfile% 환경 변수를, Unix 기반 시스템에서는 $HOME 또는 ~(물결표) 환경 변수를 사용하여 참조됩니다. 이러한 설정이 저장되는 위치에 대한 자세한 내용은 구성 설정이 저장되는 장소을 참조하세요.

다음 예에서는 default 프로필과 user1라는 프로필, 샘플 값 사용을 보여줍니다. 샘플 값을 고유한 값으로 바꿉니다. credentialsconfig 파일에 대한 자세한 내용은 AWS CLI의 구성 및 보안 인증 파일 설정 섹션을 참조하세요.

IAM Identity Center (SSO)

AWS IAM Identity Center에 대한 예제입니다. 자세한 내용은 AWS CLI를 사용하여 IAM Identity Center 인증 구성 섹션을 참조하세요.

보안 인증 파일

credentials 파일은 이 인증 방법에 사용되지 않습니다.

Config 파일

[default] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = readOnly region = us-west-2 output = text [profile user1] sso_session = my-sso sso_account_id = 444455556666 sso_role_name = readOnly region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access
IAM Identity Center (Legacy SSO)

이 예제는 AWS IAM Identity Center의 기존 방법을 위한 것입니다. 자세한 내용은 AWS CLI를 사용하여 IAM Identity Center 인증 구성 섹션을 참조하세요.

보안 인증 파일

credentials 파일은 이 인증 방법에 사용되지 않습니다.

Config 파일

[default] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 111122223333 sso_role_name = readOnly region = us-west-2 output = text [profile user1] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 444455556666 sso_role_name = readOnly region = us-east-1 output = json
Short-term credentials

이 예는 AWS Identity and Access Management의 단기 보안 인증을 위한 것입니다. 자세한 내용은 AWS CLI에 대한 단기 자격 증명으로 인증 섹션을 참조하세요.

보안 인증 파일

[default] aws_access_key_id=ASIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE [user1] aws_access_key_id=ASIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY aws_session_token = fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

Config 파일

[default] region=us-west-2 output=json [profile user1] region=us-east-1 output=text
IAM role

이 예는 IAM 역할을 맡기 위한 것입니다. IAM 역할을 사용하는 프로필은 다른 프로필에서 보안 인증을 가져온 다음 IAM 역할 권한을 적용합니다. 다음 예에서 default는 보안 인증의 소스 프로필이며 user1는 동일한 보안 인증을 차용한 다음 새 역할을 맡습니다. 자세한 내용은 AWS CLI에서 IAM 역할 사용 섹션을 참조하세요.

보안 인증 파일

credentials 파일은 소스 프로필에서 사용하는 인증에 따라 달라집니다. 다음 예제의 경우 소스 프로필은 단기 보안 인증을 사용합니다.

[default] aws_access_key_id=ASIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

Config 파일

[default] region=us-west-2 output=json [profile user1] role_arn=arn:aws:iam::777788889999:role/user1role source_profile=default role_session_name=session_user1 region=us-east-1 output=text
Amazon EC2 instance metadata credentials

이 예는 호스팅 Amazon EC2 인스턴스 메타데이터에서 가져온 보안 인증에 대한 예입니다. 자세한 내용은 AWS CLI에서 Amazon EC2 인스턴스 메타데이터의 자격 증명 사용 섹션을 참조하세요.

보안 인증 파일

credentials 파일은 이 인증 방법에 사용되지 않습니다.

Config 파일

[default] role_arn=arn:aws:iam::123456789012:role/defaultrole credential_source=Ec2InstanceMetadata region=us-west-2 output=json [profile user1] role_arn=arn:aws:iam::777788889999:role/user1role credential_source=Ec2InstanceMetadata region=us-east-1 output=text
Long-term credentials
주의

보안 위험을 방지하려면 목적별 소프트웨어를 개발하거나 실제 데이터로 작업할 때 IAM 사용자를 인증에 사용하지 마세요. 대신 AWS IAM Identity Center과 같은 보안 인증 공급자를 통한 페더레이션을 사용하세요.

이 예는 AWS Identity and Access Management의 장기 보안 인증을 위한 것입니다. 자세한 내용은 AWS CLI에 대해 IAM 사용자 자격 증명을 사용한 인증 섹션을 참조하세요.

보안 인증 파일

[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY [user1] aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

Config 파일

[default] region=us-west-2 output=json [profile user1] region=us-east-1 output=text

인증 및 보안 인증 방법에 대한 자세한 내용은 AWS CLI에 대한 인증 및 액세스 보안 인증 섹션을 참조하세요.

기존 구성 및 보안 인증 파일 사용

기존 구성 및 보안 인증 파일이 있는 경우 해당 파일을 AWS CLI에 사용할 수 있습니다.

configcredentials 파일을 사용하려면 홈 디렉터리의 .aws 폴더로 파일을 이동합니다. 홈 디렉터리 위치는 운영 체제에 따라 달라지지만 Windows에서는 %UserProfile% 환경 변수를, Unix 기반 시스템에서는 $HOME 또는 ~(물결표) 환경 변수를 사용하여 참조됩니다.

AWS_CONFIG_FILEAWS_SHARED_CREDENTIALS_FILE 환경 변수를 다른 로컬 경로로 설정하여 configcredentials 파일에 대한 기본 위치가 아닌 위치를 지정할 수 있습니다. 세부 정보는 AWS CLI에 대한 환경 변수 구성를 참조하세요.

구성 및 보안 인증 파일에 대한 자세한 내용은 AWS CLI의 구성 및 보안 인증 파일 설정 섹션을 참조하세요.