brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Oct 31. 2020

461.운영-AWS 사용법 4가지 -3/12


<1>  AWS 사용법 4가지 

<2>  AWS  account ID와 IAM

<3>  IAM 제공 기능

<4>  role을 사용하는 경우

<5>  role을 Application에서 사용해야 하는 경우

<6>  여러  account를 사용하는 경우는 오가니 제이션을 사용한다.

<7> 실습




<1>  AWS를 사용하는  4가지 방식


4가지


1. GUI 환경인 콘솔  

 - id / passwrd로 인증을 한다.  

https://console.aws.amazon.com/console/home 접속 하여 사용한다.


2. CLI  -  access key / secret access key로 인증한다.

명령어 사용방식

원격에서 인증받아 사용한다.


3. SDK   -  access key / secret access key로 인증한다.


4. RAW API 호출   -  access key / secret access key로 인증한다.



# 콘솔 화면



# Access-key 발급 화면 

IAM >  사용자 >  사용자 추가해서 Access-key를 만든다.




<2>  AWS  account ID와 IAM


1

AWS 사용하기 위해서는  AWS에 메일계정으로 가입 한다.

가입하고 나면  AWS account ID 가 만들어진다.

AWS account ID는 유니크한 값이다.

AWS account ID(메일계정)으로 기준으로 과금을 한다.


account   생성  =  AWS에  계정을 생성하는 것 =  과금정보 기준이다 =  카드 정보를 입력한다.

AWS 콘솔 로그인 후 IAM에 가면 AWS account ID를 볼 수 있다.

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/console_account-alias.html


오른쪽 위 이름을 클릭  > 내 계정 3222333333    <- 숫자로 된 AWS Account ID가 나온다.


2

IAM은 무료이다.

IAM은 Identity Access Management로  인증과 접근 권한을  2가지를 관리한다.




<3>  IAM 제공 기능


AWS  Identity Access Management (IAM)


2가지 기능을  제공한다.

인증과  권한 부여


1

인증은   로그인으로 보면 된다. 

AWS에 로그온 할 수 있는 사용자.


2

권한 부여는 어떤 리소스를 어떤 방법으로 접근할 수 있는지 제어한다.


3

그룹 Group  -  USER의 집합,  Group에 Policy  권한 부여해 관리용도로 사용한다.

사용자 USER   - 인증을 위해 사용. 개발자  개인의 계정을 USER라고 한다. 

역할 Role  - 역할은 임시로 권한을 주는 것. User와  AWS 리소스에 할당할 수 있다. 리소스 EC2와  람다에도 할당 가능하다는 것이다.

정책 Policy  - AWS리소스에 접근할 수 있는 권한,  정책은 그룹에 권한을 부여해 관리한다.




3

Group

개발자 그룹 만듬

admin 그룹  만듬

사용자를 그룹에 넣고 관리한다.

같은 일을 하는 개발자들에게 그룹에 권한을 한번에 부여하여 관리한다.

일일이 모든 개발자에게 권한을 주려면 번거롭고 관리가 안된다.


4

Policy  = 권한

AWS리소스에 접근할 수 있는 권한이다.

 - inline policy  - 1 vs 1로 설정

-  managed policy  - 1 vs  다수 


Managed policy  정책 2가지

- 1 vs  다수 

AWS managed  policy  (  AWS 관리 제공)  - EC2 Full 권한 등 

User managerd  policy  ( 사용자 관리, 생성 )  - AWS 권장함. EC2 권한중 필요한 권한만 세부적으로 구분해서 부여 가능함. 읽기 기능만 제공가능.


5

role  = 역할 

한시적으로 권한을 위임할 때 사용한다.

권한을 담은 정책을  역할에 부여한다.

임시 권한인 역할을 사용한다.

예를 들어 람다 함수의 경우는 잠시 시작되고 사라지는 서버리스 서비스이다.

이벤트가 있을때 잠시만 실행되므로 임시적으로 잠시 권한만 있으면 되는것이다.

이 경우 람다에 역할(임시자격)만 부여한다.


실제 예)

개발자가 가끔  상용 시스템에 접근 경우

개발자에게  assume role ,  list role을 준다.  (임시)

role 롤을 사용한다 = 잠시 권한을 할당받는다 는 뜻이다.


Role 은  STS 가  같이 들어간다.

STS는 임시 자격증명

최대 12시간 유효하다.  

설정으로 15분 ~36시간까지 변경 가능하다.


Role 권한 의미?

예를 들어  기존 개발자가  A 권한이 있다. 추가로  role로 받은 B권한이 있다.

이 경우  개발자가 role을 받으면 , 개발자 권한 A +  role 권한 B가 아니다.

role 권한인 A만 가지게 된다.




<4>  role을 사용하는 경우


1. 타 계정 접속하는 경우 동작 순서


1) 유지보수  계정으로  사용자 A로 로그인

Role을  달라고 한다.

신뢰관계 체크한다.

신뢰 정책  - 누가 접근할 수 있는지 지정한다.


2) 인가는   시크릿 토근 서비스로 한다.

STS로  한다.

임시 출입카드와 role이 부여된다.



2. role을 만들고  누구에게 부여할 수 있나?

User와  AWS 리소스에 할당할 수 있다.

리소스 즉,  EC2와  람다에도 할당 가능하다. AWS 서비스 초기에닌 EC2등 기본 리소스만 존재함.




<5>  role을 Application에서 사용해야 하는 경우


Application 에도  할당 가능하다.


EC2--------------- S3  구성에서  EC2에서  S3 데이터를 가져와야 한다면? 


인증과 권한이 필요하다.


EC2에서 S3정보를 가져오려면 코드에  인증 정보 입력 해야 한다.

accees-key / secret key를 넣어야 한다.

권한이 있어야 한다.

하지만, 코드에 인증 정보를 넣으면 보안 문제가  발생한다.


인증은 Git hub에 올라가서 보안 문제가 발생하는 경우가 자주 있다.

인증 정보를 애플리케이션에 넣지 말라.


role을 이용하자.

정책인 Policy로  s3 권한을 만든다.

Policy 를 추가할 role(임시자격)을 만들자.

EC2 인스턴스에 role을  부여하자.  위에서 리소스에 role부여가 가능하다고했다.

이제 권한을 가지게 되었다.

Application 이   ec2에서  요청해  S3 데이터를 가져온다.





<6>  여러  account를 사용하는 경우는 오가니 제이션을 사용한다.


오가니제이션은 2가지로 묶을 수 있다.


비용적으로 묶는다.

or

ALL 권한(비용+ 어카운트 관리 )으로 묶는다.


1

비용으로 묶는 옵션

통합 빌링이라고 이야기 하는데, 한 계정에서 비용을 모두 지불하는 형태 이다.

보통 파트너사(메가존,베스핀글로벌,GS네오택)와 계약을 하면 비용으로 묶는 옵션을 사용한다.

회사는 파트너사에 돈을 지불하고, 파트너사는 AWS 돈을 지불한다.


2

ALL 권한으로 묶는 옵션  (비용 + 어카운트 관리 포함) 

보안 정책 SCP 제어 정책을 만들어   Account에서 할수 있는것과 할수 없는것을 제어할 수 있다.



3

정책  유형 4가지

자격 증명 기반 -  사용자에  어떤 정책을 주는 것

리소스 기반 정책 - 리소스에 주는 것,  S3에 권한을 줄 수 있다.  누가 할 수 있는지  어떤 걸 할 수 있는지. 

Organizations 서비스 - scp로 관리한다.

ACL  (액세스 제어 목록)



4

자격증명 기반 관리

User계정에게는 직접 권한을 제공하지 않고 그룹으로 관리하자.

그룹끼리 중첩이 안된다.


5

정책은  그룹(사용자)에게  줄지?    리소스에 줄지?    정의하라.


6

역할 =   임시 액세스 = role

한시적으로 권한을 위임한다.

STS 임시 자격증명과 같이 사용된다.


7

중앙 집중식 계정 관리 =  Organizations 서비스 


2가지 방식

비용으로 묶기 (통합 결재)  

비용으로 묶기(통합 결재)  +  Account에 대한 SCP 제어 가능 


8

Organizations 서비스의 OU가 그룹과 다른 점은?   중첩 가능하다.

OU가  OU를  포함할 수 있다.

SCP 사용 가능하다.




<7> 실습


https://brunch.co.kr/@topasvga/699

https://brunch.co.kr/@topasvga/756


감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari