kakasoo

[SAA-C03] 3. AWS CLI, Cloud Shell 본문

프로그래밍/SAA-C03

[SAA-C03] 3. AWS CLI, Cloud Shell

카카수(kakasoo) 2024. 4. 6. 18:58
반응형

AWS 리소스에 접근하는 방법

AWS에는 3가지 접근 방법으로, 콘솔, CLI, AWS SDK가 있다.

콘솔은 대시보드 형태로 웹 상에서 직접 AWS 리소스를 다룰 때 사용하지만, CLI나 AWS SDK는 외부 환경에서 리소스를 다룰 수 있다.

따라서 CLI, AWS SDK는 권한 인증이 필수적인데, 이 때 액세스 키를 필요로 한다. ( 액세스 키는 절대 다른 사람에게 공유해선 안 된다. )

액세스 키 아이디 ( Access Key ID ) 는 username과 같고 시크릿 액세스 키 ( = Secret Access Key ) 는 password와 같다.

CLI는 AWS에서 제공하는 커맨드 라인 인터페이스로 쉘과 같은 환경에서 명령어로 AWS를 사용할 수 있게 해준다.

SDK는 Software Developer Kit의 준말로, 특정 언어로 된 라이브러리의 집합인데,

프로그래밍 언어에 따른 개별 SDK가 존재하여 이 역시 SDK 서비스나 API 프로그래밍을 위한 액세스를 가능하게 해준다.

이 SDK는 터미널이 아닌, 코딩을 통해 애플리케이션에 심어야 한다.

 

CLI 환경에서 AWS 접근하기

 

Install or update to the latest version of the AWS CLI - AWS Command Line Interface

When updating from a previous version, the unzip command prompts to overwrite existing files. To skip these prompts, such as with script automation, use the -u update flag for unzip. This flag automatically updates existing files and creates new ones as ne

docs.aws.amazon.com

 

일단 AWS 문서대로 AWS CLI 도구를 설치해야 한다.

이 블로그 포스팅에서는 Mac 기준으로만 설명한다.

 

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

Password:
installer: Package name is AWS Command Line Interface
installer: Installing at base path /
installer: The install was successful.

aws --version
aws-cli/2.15.36 Python/3.11.8 Darwin/22.1.0 exe/x86_64 prompt/off

 

위 두 명령어를 치고, Password가 나오면 기기에 저장된 사용자 비밀번호를 입력하여 설치를 진행한다.

설치가 완료되면 aws --version 명령어를 쳐서 설치가 제대로 이루어졌는지 확인한다.

 

aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: ap-northeast-2
Default output format [None]: # 입력 없이 엔터를 누르고 진행

 

다음으로는 aws configure 명령어로 AWS 계정에 대한 인증 정보를 주어야 한다.

여기서는 미리 만든 액세스 키로 ID와 Secret Access Key를 입력하여 인증을 했고, region은 Seoul Region을 명시했다.

액세스 키를 생성하고 싶다면, IAM 대시보드에서 특정 사용자로 간 다음 [액세스 키 만들기] 를 클릭하면 된다.

 

 

여담으로, 액세스 키를 다시 삭제하고 싶다면 Root 계정에서 하는 게 아니라 해당 사용자로 로그인하여 삭제해야 한다.

 

aws iam list-users
{
    "Users": [
        {
            "Path": "/",
            "UserName": "IAM-001",
            "UserId": "생략",
            "Arn": "arn:aws:iam::699508358870:user/IAM-001", // Amazon Resource Names
            "CreateDate": "2024-04-06T05:39:04+00:00", // 생성 시간
            "PasswordLastUsed": "2024-04-06T08:14:11+00:00" // 마지막 비밀번호 사용 시간
        }
    ]
}

 

인증이 완료되면 `aws iam list-users`와 같이 AWS CLI 명령어를 사용할 수 있다.

위 명령어는 iam의 사용자 리스트를 조회하는 것으로, 조회된 정보는 사용자 대시보드와 매우 유사한 형태인 걸 확인할 수 있다.

위와 같이 정보를 볼 수 있는 것은, IAM-001에 미리 IAM 접근 권한을 설정했기 때문이다.

접근 권한을 설정하는 것을 보지 않고 이 글부터 본 사람은 아래 링크를 확인하면 된다.

 

 

[SAA-C03] 1. IAM 사용자와 그룹 생성

사용자, 사용자 그룹 ( Users, User Groups ) 에 대한 설명 Alice, Bob, Charles, David, Edward, Fred 6명의 사람들이 있다고 해보자. Alice, Bob, Charles는 Developer이고, David, Edward는 Operation팀에 속한다. 마지막으로 Fred

kscodebase.tistory.com

 

AWS Cloud Shell

 

Supported AWS Regions for AWS CloudShell - AWS CloudShell

Supported AWS Regions for AWS CloudShell This section covers the list of supported AWS Regions and Opt-in Regions for AWS CloudShell. For a list of AWS service endpoints and quotas for CloudShell, see the AWS CloudShell page in the Amazon Web Services Gene

docs.aws.amazon.com

 

AWS에는 클라우드 쉘이라는 기능이 존재하는데, 이는 사용자마다 클라우드 환경에서 쉘을 사용할 수 있게 AWS가 제공하는 기능이다.

위치는 사용자 계정 정보가 있는 공간에, 쉘 모양으로 되어 있는 아이콘을 누르면 확인할 수 있다.

CLI 환경을 사용한 것처럼 동일하게 사용이 가능하되, 이미 aws configuration으로 자격증명을 한 것처럼 바로 CLI를 호출할 수 있다.

--region 옵션을 주면 CLI를 사용할 때 리전을 명시할 수 있지만, 사용하지 않는다면 브라우저 상에서 선택한 region이 기본값이 된다.

클라우드 쉘에는 전체 저장소가 있는데, 이를 사용해서 간단한 파일을 업로드하거나 다운로드하는 것도 가능하다.

 

[cloudshell-user@ip-10-132-40-113 ~]$ echo "text" > demo.txt
[cloudshell-user@ip-10-132-40-113 ~]$ ls
demo.txt
[cloudshell-user@ip-10-132-40-113 ~]$ 
[cloudshell-user@ip-10-132-40-113 ~]$ pwd
/home/cloudshell-user

 

위 스크립트는 파일을 저장한 후 ls 명령어로 파일이 저장된 것을 확인하고, 해당 경로를 pwd 명령어로 찍어본 것이다.

 

 

이제 이 파일을 다운로드 기능을 사용해서 내려받을 수 있다.

AWS CLI는 외부에서 자격증명을 해야 하기 때문에 보안 문제가 있을 수 있어, 간단한 명령어는 클라우드 쉘을 쓰는 것이 낫다.

이 때, 사용할 간단한 명령어들은, 미리 스크립트를 작성하여 파일로 공유해두면 동일한 명령어의 사용을 보장할 수도 있다.

 

 

반응형