AWS CLI 설정

개발자가 사용하는 컴퓨터의 콘솔 ( 명령어 창 또는 Shell ) 에서 AWS 의 서비스에 명령어를 사용해서 접근할 수 있도록 환경을 설정합니다.

AWS CLI 설치

AWS CLI 설치는 아래 링크에 주어진 가이드를 따라 하면됩니다.

모든 설치가 완료되면, 쉘 콘솔( Linux, Mac ) 또는 CMD ( Windows ) 에서 aws 명령어에 다음과 같이 반응이 출력되면 준비가 된 것입니다.

AWS Credential 생성 및 설정

AWS CLI 가 AWS 클라우드 서비스에 접속해서 작업을 수행하기 위해서는 AWS 서비스에 적절한 Credential 을 생성하고 이를 적용해야 합니다.

사용자 등록

이 링크에서 제공하는 사용자 생성 방법으로 developer-user 계정을 생성합니다.

보안자격증명 생성

사용자 정보를 클릭하여 상세 화면으로 이동하고, "보안 자격증명" 탭을 클릭 한 뒤에, 액세스 키 항목에서 "액세스 키 만들기" 버튼을 눌러 새로운 액세스 키를 생성합니다. Command Line Interface(CLI) 사용사례를 선택하고 "다음"을 눌러 키를 생성합니다.

새로 만들어진 액세스 키 정보는 비밀 액세스 키가 함께 만들어 집니다. 비밀 액세스 키는 이 페이지에서만 단 한번 확인 할 수 있기 때문에, 화면 아래쪽 .csv 파일 다운로드 버튼을 눌러 로컬에 내려받는 것이 좋습니다. 파일은 반드시 안전한 장소에 보관해야 합니다.

AWS CLI 에 Credential 적용

이 과정의 자세한 설명은 이 링크에서 설명하는 대로 적용하면 됩니다. 추가적인 설정은 아래와 같습니다.

  • 기본 리전 : 아시아 태평양 (서울)ap-northeast-2

  • 기본 출력 포맷 : json

AWS CLI 를 사용해 AWS 서비스 접근 테스트

액세스 키는 developer-user 사용자에게 지정된 것으로, 이 키를 사용해 접근하면 다음과 같이 권한을 체크하게 된다.

  1. AWS CLI 에서 작업이 시작

  2. 명령 수행 : 명령어 + 액세스 키, 비밀 액세스 키 전송

  3. 사용자 식별 : 액세스 키, 비밀 액세스키를 사용해 사용자 식별

  4. 그룹 식별 : 사용자가 속한 그룹 식별

  5. 정책 식별 : 그룹의 정책 식별

  6. 권한 확인 : 정책의 구성 문장에 2번의 명령어가 허용 되었는 지, 2번의 접근 대상이 리소스에 포함되는지 확인

  7. 접근 허용 여부 리턴

이 과정을 우리가 설정한 정보들과 매핑해보면, developer-user -> developer-group -> developer-policy 까지 식별된 이후에, 권한 확인 절차를 수행한다. developer-policy 에 설정된 권한 항목을 리마인드 해봅니다.

그림에서와 같이 developer-user 에게 부여된 권한은 Lamba 서비스에서 GetFunction 을 사용하는 것이며, GetFunctionConfiguration 과 같은 다른 명령어는 사용할 수 없음을 알 수 있습니다.

AWS CLI 를 통해 간단히 확인을 해보겠습니다.

Credential 이 설정돼 있는 상태의 콘솔에서 aws 명령어를 작성해 실행합니다. test 라는 이름의 Lambda 함수는 존재하지 않습니다. 함수가 없기 때문에, 기대하는 서버측 응답에는 ResourceNotFoundException 등과 같은 접근 할 자원이 없음에 대한 설명이 포함 되어 있어야 합니다.

get-function 명령어는 위의 그림에서 확인한 GetFunction 작업과 이름 쓰기 규칙만 다를 뿐 같은 것입니다.

정상적으로 수행을 마치고, ResourceNotFoundException 메시지를 표출하고 있습니다.

같은 콘솔에서, 허용되지 않는 작업 GetFunctionCoinfiguration 을 수행하고 결과를 보면 AccessDeniedException 이 발생하였습니다. 이전 수행처럼 test Lambda 함수가 없는 것은 동일 하지만, 자원을 확인 하기 이전에 명령어 사용에서 차단된 모습을 보여줍니다.

AWS CLI 에 사용자와의 연결을 위한 Credendtial 이 잘 설정 되었으며, 여기에 연결된 권한 정책도 잘 작동하는 것을 확인하였습니다.

Last updated