<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
감사합니다.