콘솔 자격 증명을 사용하여 AWS 로컬 개발을 위해 로그인
기존 AWS Management Console 로그인 자격 증명을 사용하여 AWS 서비스에 프로그래밍 방식으로 액세스할 수 있습니다. 브라우저 기반 인증 흐름 후 AWS는 AWS CLI, AWS Tools for PowerShell 및 AWS SDK와 같은 로컬 개발 도구에서 작동하는 임시 자격 증명을 생성합니다. 특히 장기 액세스 키를 관리하는 것보다 대화형 인증을 선호하는 경우에 이 기능은 AWS CLI 자격 증명을 구성하고 관리하는 프로세스를 간소화합니다.
이 프로세스를 사용하면 초기 계정 설정 중에 생성된 루트 자격 증명, IAM 사용자 또는 자격 증명 공급자의 페더레이션 자격 증명을 사용하여 인증할 수 있으며 AWS CLI가 자동으로 임시 자격 증명을 관리합니다. 이 접근 방식은 장기 자격 증명을 로컬에 저장할 필요가 없으므로 보안이 강화됩니다.
aws login 명령을 실행하면 활성 콘솔 세션에서 선택하거나 브라우저 기반 인증 흐름을 통해 로그인할 수 있으며, 그러면 임시 자격 증명이 자동으로 생성됩니다. CLI는 최대 12시간 동안 이러한 자격 증명을 자동으로 새로 고칩니다.
구성이 완료되면 AWS CLI와 기타 AWS SDK 및 도구에서 세션을 사용할 수 있습니다.
사전 조건
-
AWS CLI를 설치합니다. 자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트 섹션을 참조하세요.
aws login명령을 사용하려면 최소 2.32.0 버전이 필요합니다. -
루트 사용자, IAM 사용자 또는 IAM과의 페더레이션을 통해 AWS Management Console에 로그인할 수 있는 액세스 권한. IAM Identity Center를 사용하는 경우 대신 AWS CLI를 사용하여 IAM Identity Center 인증 구성로 이동합니다.
-
IAM 자격 증명에 적절한 권한이 있는지 확인합니다. SignInLocalDevelopmentAccess 관리형 정책을 IAM 사용자, 역할 또는 그룹에 연결합니다. 루트 사용자로 로그인하는 경우 추가 권한이 필요하지 않습니다.
aws login 명령을 사용하여 AWS CLI에 로그인합니다.
aws login 명령을 실행하여 기존 AWS Management Console 자격 증명을 사용하여 인증합니다. 이전에 프로필을 구성하지 않은 경우 추가 정보를 묻는 메시지가 표시됩니다. 로그인하거나 프로필을 구성하려면 다음 단계를 따르세요.
-
원하는 터미널에서
aws login명령을 실행합니다.$ aws login명명된 프로필에 로그인하거나 새 프로필을 생성하려면
--profile옵션을 사용합니다.$ aws login --profile my-dev-profile-
새 프로필이거나 AWS 리전이 지정되지 않은 경우 AWS CLI가 리전을 제공하라는 메시지를 표시합니다.
No AWS region has been configured. The AWS region is the geographic location of your AWS resources. If you've used AWS before and already have resources in your account, tell us which region they were created in. If you haven't created resources in your account before, you can pick the region closest to you: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html. You are able to change the region in the CLI at any time with the command `aws configure set region NEW_REGION`. AWS Region [us-east-1]: -
AWS CLI를 사용하는 디바이스에 브라우저가 없는 경우
--remote옵션을 사용하여 브라우저 지원 디바이스에서 열 수 있는 URL을 제공할 수 있습니다.$ aws login --remote
-
-
AWS CLI는 기본 브라우저를 열고 AWS 계정에 대한 로그인 프로세스를 시도합니다.
Attempting to open the login page for `us-east-1` in your default browser. If the browser does not open, use the following URL to complete your login: https://signin.us-east-1.amazonaws.com/authorize?<abbreviated> If you cannot connect to this URL, make sure that you have specified a valid region.-
--remote옵션을 사용한 경우 사용 중인 권한 부여 유형에 따라 로그인 프로세스를 수동으로 시작하는 지침이 표시됩니다. 표시되는 URL은 https://us-east-1.signin.amazonaws.com/authorize.로 시작하는 고유한 URL입니다. 브라우저 로그인을 완료한 후에는 결과 권한 부여 코드를 복사하여 CLI에 다시 붙여 넣어야 합니다.Browser will not be automatically opened. Please visit the following URL: https://region.signin.amazonaws.com/authorize?<abbreviated> Please enter the authorization code displayed in the browser:
-
-
브라우저의 표시된 목록에서 사용할 자격 증명을 선택한 다음 터미널로 돌아갑니다.
-
구성하려는 프로필에 새 세션과 일치하지 않으며 이전에 구성된 로그인 세션이 있는 경우 AWS CLI는 기존 프로필에 해당하는 세션을 전환하고 있는지 확인하라는 메시지를 표시합니다.
Profile signin is already configured to use session arn:aws:iam::0123456789012:user/ReadOnly. Do you want to overwrite it to use arn:aws:iam::0123456789012:user/Admininstead? (y/n):.
-
-
최종 메시지는 완료된 프로파일 구성을 설명합니다. 이제 이 프로파일을 사용하여 자격 증명을 요청할 수 있습니다.
aws login명령을 사용하여 명령을 실행하는 데 필요한 보안 인증 정보를 요청하고 검색합니다.인증 토큰은 해결된 프로필에 기반한 파일 이름을 가진
.aws/login/cache디렉터리 아래의 디스크에 캐시됩니다.
생성된 구성 파일
이 단계를 수행하면 다음과 같이 config 파일에 default 프로필이 생성됩니다.
[default] login_session = arn:aws:iam::0123456789012:user/usernameregion = us-east-1
프로필로 명령 실행
로그인한 후에는 자격 증명을 사용하여 연결된 프로필로 AWS 명령을 간접 호출할 수 있습니다. 다음 예제에서는 default 프로필을 사용하는 get-caller-identity 명령을 직접 호출합니다.
$ aws sts get-caller-identity
특정 세션에 로그인하려면 --profile 옵션을 사용합니다.
$ aws sts get-caller-identity --profilemy-dev-profile
AWS CLI 및 SDK는 필요에 따라 15분마다 캐시된 자격 증명을 자동으로 새로 고칩니다. 전체 세션은 IAM 보안 주체의 설정된 세션 기간(최대 12시간)까지 유효하며, 이후에는 aws login을 다시 실행해야 합니다.
aws 로그아웃 명령을 사용하여 세션에서 로그아웃
세션 사용을 마치면 자격 증명을 만료하거나 aws logout 명령을 실행하여 캐시된 자격 증명을 삭제할 수 있습니다. 명령줄 또는 AWS_PROFILE 환경 변수에 프로필이 지정되지 않은 경우 명령은 기본 프로필에서 로그아웃합니다. 다음 예제에서는 기본 프로필에서 로그아웃합니다.
$ aws logout
특정 세션에서 로그아웃하려면 --profile 옵션을 사용합니다.
$ aws logout --profilemy-dev-profile
로그인 자격 증명을 사용하는 모든 프로필에서 로그아웃하려면 --all 옵션을 사용합니다.
$ aws logout --all
캐시된 자격 증명
임시 캐시된 자격 증명과 이를 새로 고치는 데 필요한 메타데이터는 기본적으로 ~/.aws/login/cache(Linux 및 macOS) 또는 %USERPROFILE%\.aws\login\cache(Windows)에 저장됩니다.
단기 자격 증명 캐시를 대체 위치에 저장하려면 AWS_LOGIN_CACHE_DIRECTORY 환경 변수를 설정합니다.
로그인 자격 증명을 프로세스 자격 증명으로 공유
이전 버전의 AWS SDK 또는 기타 개발 도구는 아직 콘솔 자격 증명을 지원하지 않을 수 있습니다. 차선책으로 프로세스 자격 증명 공급자 역할을 하도록 AWS CLI를 구성할 수 있습니다. CLI는 필요에 따라 자격 증명을 계속 새로 고치는 동시에 credentials_process 프로필을 사용하도록 구성된 도구와 해당 자격 증명을 공유합니다.
이 예제에서는 AWS CLI를 사용하여 프로필 로그인을 위해 먼저 로그인합니다.
$ aws login --profile signin
그런 다음 로그인 프로필을 가리키는 credentials_process 옵션을 사용하여 프로필을 수동으로 구성합니다. 이제 SDK 또는 도구가 프로세스 프로필을 사용하도록 구성하면 CLI를 간접 호출하여 로그인 프로필의 자격 증명을 공유할 수 있습니다.
[profile signin] login_session = arn:aws:iam::0123456789012:user/usernameregion = us-east-1 [profile process] credential_process = aws configure export-credentials --profile signin --format process region = us-east-1
문제 해결
이 페이지에는 AWS CLI용 콘솔 자격 증명을 사용하는 AWS 로컬 개발을 위해 로그인할 때 발생하는 문제를 해결하기 위한 권장 사항이 포함되어 있습니다.
참고
AWS CLI를 사용하여 발생할 수 있는 다른 문제를 해결하려면 AWS CLI에 대한 오류 문제 해결 섹션을 참조하세요.
"aws login"을 사용한 후 ExpiredToken 또는 AccessDeniedException 오류 발생
지정된 프로필에 대해 aws login을 실행한 후 AWS CLI 명령을 실행할 때 만료되거나 잘못된 자격 증명 오류가 발생할 수 있습니다.
$ aws s3 ls An error occurred (ExpiredToken) when calling the ListBuckets operation: The provided token has expired.
가능한 원인: 해당 프로필에 기존 자격 증명과 새 로그인 자격 증명이 혼합되어 있습니다.
aws configure list 또는 aws configure list --profile <profile name>를 실행하여 CLI가 기본 또는 지정된 프로필에 대한 자격 증명을 확인하는 위치를 인쇄합니다.
TYPE 열이 로그인이 아닌 다른 열인 경우 대상 프로필에 다른 유형의 자격 증명이 여전히 설정되어 있음을 의미합니다.
이 예제에서는 홈 디렉터리의 공유 자격 증명 파일에서 자격 증명이 확인되고 있는데, 이는 로그인 자격 증명보다 우선합니다.
$ aws configure list NAME : VALUE : TYPE : LOCATION profile : <not set> : None : None access_key : ****************MPLE : shared-credentials-file : secret_key : ****************EKEY : shared-credentials-file : region : us-east-1 : config-file : ~/.aws/config
이를 해결하려면 대상 프로필의 구성 및 자격 증명 파일에서 기존 자격 증명을 수동으로 제거합니다. 이렇게 하면 aws configure list를 다시 실행할 때 로그인 자격 증명이 표시됩니다.
$ aws configure list NAME : VALUE : TYPE : LOCATION profile : <not set> : None : None access_key : ****************MPLE : login : secret_key : ****************EKEY : login : region : us-east-1 : config-file : ~/.aws/config
또는 --debug 옵션을 사용하면 CLI가 자격 증명을 확인하는 위치가 표시됩니다.
"aws login"을 실행할 때 네트워크 액세스를 차단하는 방화벽
aws login 실행 시 방화벽 소프트웨어에서 AWS CLI가 네트워크에 액세스하지 못하도록 하는 팝업 또는 메시지가 표시될 수 있습니다.
가능한 원인: 방화벽 또는 보안 소프트웨어로 인해 AWS CLI가 OAuth 콜백을 처리하는 데 사용되는 포트를 열 수 없습니다.
이 문제를 방지하려면 --remote 옵션을 대신 사용하세요. 그러면 OAuth 콜백을 사용하는 대신 권한 부여 코드를 복사하여 붙여넣으라는 메시지가 표시됩니다.
$ aws login --remote
관련 리소스
추가 리소스는 다음과 같습니다.