【한글자막】 AWS Certified Solutions Architect Professional | Udemy
2023.01.06 - [DevOps/aws] - Udemy | AWS Certified Solutions Architect Associate 강의 | Section1~2
11. IAM 소개: 사용자, 그룹, 정책
IAM 사용자와 IAM Group 예시
계정을 생성하면 루트 계정이 자동으로 생성된다.
하지마 루트 계정을 그대로 사용하는 것은 위험하다.
대신 IAM 사용자를 생성한다.
IAM 사용자를 생성할때 그룹을 만들 수 있다.
b,c 는 개발팀
d,e,f는 테스터팀
a는 무소속
이런식으로 구성해도 된다. ( 꼭 iam 사용자가 그룹에 속할 필요없다.)
Users don't have to belong to a group, and user can belong to multiple groups.
그리고 b,d를 따로 그룹을 지정해도 가능하다. ( 다른 그룹과 중복으로 속해도 된다. )
하지만 그룹이 밑에 하위 그룹을 둘 수는 없다.
Users don't have to belong to a group, and user can belong to multiple groups.
IAM:Permissions
사용자와 그룹을 생성하는 이유는 ?
-> aws 계정을 사용하도록 허용하기 위해서
허용을 위해서는 권한을 부여해야한다.
이를 IAM Permissions , IAM 정책이라고 한다 .
JSON 형식의 문서이다.
Users or Groups can be assigned JSON documents called policies
Iam statement는
resource, action, effect 로 구성되어있다.
s3 자원에서 모든 버킷을 리스팅하는 작업을 허용한다.
The policies define the permissions of the users.
aws에서는 최소 권한의 원칙을 적용한다.
즉 사용자가 꼭 필요로 하는 것 이상의 권한을 주지 않는다 .
In AWS you apply the least privilege principle: don't give more permissions than a user needs
사용자가 세 개의 서비스에 접근해야 한다면 그에 대한 권한만 생성하는 것이다 .
12. IAM 사용자 및 그룹 실습
IAM 대시보드
대시보드를 확인하면 IAM 서비스는 글로벌 서비스인 것을 확인할 수 있다. (리전을 선택할 필요없다.)
IAM 사용자 추가
사용자에 들어가서 사용자 추가
비밀번호 재설정 할 필요없다 .
IAM 그룹 생성
그룹을 생성한다.
admin 을 그룹이름으로 지정하고
administrator Access 정책을 연결한다.
해당 정책을 admin 그룹에 속한 모든 사용자가 계정의 관리자 역할을 하도록 허용하는 것이다.
태그 추가
aws 의 다양한 리소스에 태그를 추가할 수 있다.
사용자의 접근을 추적, 조직, 제어할 수 있도록 도와주는 정보이다 .
사용자가 생성되었다.
정책에 연결된 것을 볼 수 있다.
대시보드를 확인하고 계정의 id는 iam 과 root 동일하다.
계정 별칭을 생성할 수 있다.
별칭 설정하기
소문자로 해야한다.
해당 로그인 url로 접속하면 iam 사용자 이름과 비밀 번호로 로그인 할 수 있다.
13. IAM 정책
IAM Policies inheritance
그룹에 속하지 않은 경우 사용자에게만 연결이 가능한 인라인 정책을 생성할 수 있다.
charles 의 경우 개발팀과 감사팀의 정책이 적용된다.
IAM Policies Structure
Version , Id, statement(문장) 로 구성된다.
문장 안에는 문장id
Effect는 해당 api에 접근하는 걸 허용할지 거부할지에 대한 내용이다.
pricipal은 특정 정책이 적용될 사용자, 계정, 혹은 역할로 구성 된다.
action은 effect에 기반에 허용 및 거부되는 API 호출의 목록이다.
resource는 적용될 action의 리소스의 목록이다.
14. IAM 정책 실습
사용자 그룹에서 사용자 삭제하기
그러면 BOGBOG-A 사용자 그룹에서 IAM 페이지에 들어가면 아무것도 할 수 없다.
이 작업을 수행하는 데 필요한 권한이 없습니다. 관리자에게 권한 추가를 요청하십시오.
User: arn:aws:iam::721394111420:user/BOGBOG-A is not authorized to perform: iam:ListUsers on resource: arn:aws:iam::721394111420:user/ because no identity-based policy allows the iam:ListUsers action
bogbog-a 계정에서 해당 작업을 수행할려면 정책을 추가해야한다.
사용자에게 정책 추가하기
bogbog-a 계정에서 iam 을 사용할려면
1. 다시 admin 그룹에 추가하거나
2. iam 권한을 추가하거나
이다.
이제 bogbog-a 계정에서 IAM 을 사용할 수 있다 .
하지만 readonlyaccess 권한만 줬기 때문에
bogbog-a 계정은 사용자 그룹을 생성할 수 없다.
정책 연결되는 형식
1. bogbog-a 계정을 admin 그룹에 추가하고
2. developers 라는 그룹을 생성하고 bogbog-a 추가, 눈에 보이는 첫번째 정책을 추가하자.
bogbog-a 계정에서 확인하면 직접 연결된 정책과 그룹에서 연결된 정책을 확인할 수 있다.
정책 유형에서 어느 그룹에서 온 건지 확인할 수 있다.
정책의 작동 방식
정책으로 가면 수 많은 aws 산하의 정책들이 있다.
모든 자원과 모든 action에 대해 허용된 것을 볼 수 있다.
다른 정책과 비교 - IAMReadOnlyAccess
정책 생성하기
JSON 코드 직접 작성
직접 작성하거나
시각적 편집기 - visual Editor 사용
developers 그룹 삭제하고 bogbog-a 개인 정책도 삭제하자 ( 실습 정리)
15. IAM MFA 개요
사용자들의 정보 보호를 위해 할 수 있는것으로
1. 강력한 비밀번호, 2. MFA (다요소 인증)
가 있다.
IAM - Password Policy
AWS 에서 비밀번호의 길이를 정하거나
특정한 문자가 포함하도록 하거나
비밀번호 변경을 강제하거나
변경시 동일한 비밀번호나 이전 비밀번호를 사용하지 못하게 할 수 있다.
Multi Factor Authentication - MFA
비밀번호 + MFA 장치 를 이용해 보안성을 높인다.
MFA devices options in AWS
1. virtual MFA device
2. physical device
16. IAM MFA 실습
비밀번호 정책 변경
액세스 관리 -> 계정 설정 -> 암호정책 -> 편집
MFA 적용하기
mfa 할당
mfa를 장치를 잃어버리면 로그인이 불가능하니 여기까지만...
17. AWS 엑세스 키,CLI 및 SDK
How Can users access AWS?
1. AWS Management Console (protected by password + MFA)
2. AWS Command Line Interface (CLI): protected by access keys
3. AWS Software Developer kit (SDK) - for code: protected by access keys
Access key
엑세스 키란 자격 증명으로
터미널에서의 AWS 엑세스를 가능하도록 해준다.
sdk 도 마찬가지로 엑세스키로 보호가 된다.
사용자 측면에서 엑세스 키는 비밀번호와 마찬가지이다.
자신만의 엑세스 키를 생성하면 동료와 공유해서는 안된다.
What's the AWS CLI?
명령줄 인터페이스를 통해 aws와 상화작용 할 수 있도록 해주는 도구이다.
직접 스크립트를 작성하여 일부 작업을 자동화 시킬 수 있다.
관리 콘솔 대신 사용하고는 한다.
What's the AWS SDK?
특정 언어로 된 라이브러리의 집합
프로그래밍 언어에 따라 개별 SDK 가 존재한다.
AWS 서비스나 API에 프로그래밍을 위한 엑세스가 가능하도록 도와준다.
18. Windows 에서 AWS CLI 설정
설치
최신 버전의 AWS CLI 설치 또는 업데이트 - AWS Command Line Interface (amazon.com)
windows aws cli 를 검색한다.
설치후 인스톨러 실행하기
실행 확인
cmd 창을 열어서
aws --version을 입력해보자!
설치가 잘된것을 볼 수 있다! 2.9.13 버전이다.
19. MAC OS X에서 aws cli 설정
마찬가지로 aws cli mac os 검색하고
pkg 파일을 설치한다.
terminal 에서
aws --version 확인하기 !
20. Linux 에서 AWS CLI 설정
리눅스에서 aws cli 검색하고 설치
21. AWS CLI 실습
엑세스 키 생성 -> cli 로 접속 -> 콘솔에서 작업을 cli에서 작업해보기
엑세스 키 생성
사용자 계정으로 로그인해서( 루트 계정으로 엑세스 키 만들지 말자!)
iam -> 사용자 -> 보안 자격 증명으로 간다.
엑세스 키 만들기!
cmd에서 aws configure 를 입력하고 액세스 키 id 비밀 액세스 키
리전을 입력한다. 포맷은 디폴트를 사용한다.
aws iam list-users (users 이다. 오타 조심) 입력하면
모든 사용자를 보여준다.
관리 콘솔에서 작업
루트 계정의 admin 그룹에서 사용자를 제거해보자
사용자는 콘솔에서 iam을 사용할 수 없다.
cli에서도 iam 에 접근할 수 없다.
cli에서 iam list-users를 호출하면 액세스가 거부됐기 때문에 응답이 없다.
cli의 권한은 iam 콘솔에서와 똑같은 권한이라는 뜻이다.
관리 콘솔을 통해 액세스 or cli + 액세스 키
할 수 있다.
사용자를 admin 에 다시 추가하고 실습 마무리
22. AWS CloudShell: Region 가용성
다음 강의에서 aws cloudshell을 사용하는데 모든 리전에서 사용할 수 있는 것은 아니다.
- 미국 동부(오하이오)
- 미국 동부(버지니아 북부)
- 미국 서부(오리곤)
- 아시아 태평양(뭄바이)
- 아시아 태평양(시드니)
- 아시아 태평양(도쿄)
- 유럽(프랑크푸르트)
- 유럽(아일랜드)
확인하고 실습하자!
23. AWS 클라우드 쉘
aws cloudshell 이다.
cloudshell 간단 실습
간단한 명령어도 수행가능하다.
cloudshell은 aws 클라우드에서 무료로 사용 가능한 터미널 같은 개념
똑같이 명령어 수행 가능하다.
맨뒤에 --region 옵션을 추가함으로써 호출을 할 리전을 지정할 수 있다.
기본적으로 로그인된 리전으로 되어있다.
파일 생성하고 다운로드 받기
원래 파일이 없다.
demo.txt 파일을 생성하자
쉘을 분할로 열 수도 있다.
24. AWS 서비스에 대한 IAM Role
IAM Roles for Service
사용자와 마찬가지로 aws 서비스도 권한을 부여해야한다.
그러기 위해서는 IAM Role이라는 것을 만들어야한다.
실제 사람이 사용되도록 만들어진 것이 아니라 AWS 서비스에 의해 사용되도록 만들어졌다.
예를 들어 EC2 인스턴스에서 다른 aws 서비스 s3에 접속해야한다고 가정하자.
그러기 위해서는 EC2 인스턴스에 권한을 부여해야한다.
이를 위해 IAM Role을 만들어 이를 하나의 개체로 만든다.
인스턴스가 aws에 있는 어떤 정보에 접근하려고 할 때 IAM Role 을 사용하게 된다.
25. IAM Role 실습
IAM Role 생성하기
IAMReadOnlyAccess 를 추가한다.
다음과 같이 역할이 생성되었다.
ec2 섹션에서 역할을 사용해보자!
26. IAM 보안 도구
IAM 보안 도구
IAM Credentials Report (account-level) 계정수준
IAM 자격 증명 보고서를 만들 수 있다.
IAM Access Advisor (user-level) 사용자 수준
사용자에게 부여된 서비스의 권한과 해당 서비스에 마지막으로 액세스한 시간이 보인다.
최소권한의 원칙에 따랐을 때 매우 도움이 되는 정보이다.
해당 도구를 사용하여 어떤 권한이 사용되지 않는지 볼 수 있고 따라서 사용자의 권한을 줄여 최소권한의 원칙을 지킬 수 있다.
27. IAM 보안 도구 실습
자격증명 보고서 생성
iam에서 자격증명보고서를 생성한다.
엑셀 파일에 정보가 있다.
비밀번호 변경 주기 활성화 , mfa 여부 , 액세스키 생성 여부 등 많은 정보를 얻을 수 있다.
액세스 관리자
iam -> 사용자 -> 액세스 관리자
EC2, IAM 등 최근 4시간 동안의 활동 내역을 보여준다.
28. IAM 모범 사례
루트 계정은 AWS 계정을 설정할 때를 제외하고 사용하지 마세요
하나의 aws 사용자는 한 명의 실제 사용자를 의미한다.
다른 사용자를 만들고 싶다면 그룹에 넣어 해당 그룹의 권한을 부여해준다.
비밀번호 정책을 강력하게 만든다.
mfa 사용 권장
aws 서비스에 권한을 부여할 때마다 역할을 만들고 사용하자.
cli,sdk를 사용할 경우 반드시 액세스 키를 만들어야 한다.
계정 권한을 감사할 때는 IAM 자격 증명 보고서와 IAM 액세스 분석기를 사용할 수 있다.
IAM 사용자와 액세스 키를 공유하지 마세요!
29. IAM 요약
- Users : aws 콘솔에 대한 비밀 번호를 가진다.
- Groups: 그룹을 사용하자!
- 정책: 사용자나 그룹에게 JSON 형식의 정책을 부여할 수 있다.
- 역할: aws 서비스에 어떤 권한을 주려고 할때 role을 사용한다.
- 보안: MFA 와 비밀번호 정책
- 액세스 키: cli, sdk를 이용할 때 액세스 키가 필요하다.
- 감사: iam 자격증명보고서 또는 iam 액세스 관리자를 이용할 수 있다.
30. IAM & AWS CLI 퀴즈
1. 다음 중 IAM 역할의 올바른 정의는 무엇일까요?
일부 AWS 서비스는 여러분을 위해 특정 행동을 수행해야 합니다. IAM 역할은 이러한 권한을 할당하기 위해 사용됩니다.
2. 다음 중 IAM 보안 도구에 해당되는 것은 무엇인가요?
보안도구는 자격증명 보고서, 액세스 관리자
IAM 자격 증명 보고서에는 AWS 계정의 모든 IAM 사용자와 이들의 다양한 자격 증명 상태가 포함되어 있습니다.
3. IAM 사용자에 대해 잘못 서술된 내용을 고르세요.
IAM 사용자들은 자신만의 자격 증명(사용자 이름 & 비밀번호, 혹은 액세스 키)을 통해 AWS 서비스에 액세스합니다.
4. 다음 중 IAM 모범 사례에 해당하는 것은 무엇인가요?
루트 계정은 최초 IAM 사용자 생성과 일부 계정/서비스 관리 업무에만 사용됩니다. 일상적인 업무에는 IAM 사용자를 사용하셔야 합니다.
5. IAM 정책은 무엇인가요?
6. IAM 권한에는 다음 중 어떤 원칙이 적용되어야 할까요?
정답입니다! 사용자에게 필요 이상의 권한을 부여하지 마세요.
7. 루트 계정 보안을 향상시키기 위해서는 어떤 작업을 수행해야 할까요?
MFA를 활성화할 경우, 보안에 하나의 층을 더 추가하게 됩니다. 비밀번호가 유출되었거나 도용을 당한 경우에도, 여러분의 계정은 안전합니다.
8. IAM 사용자 그룹은 IAM 사용자 및 기타 사용자 그룹을 포함할 수 있습니다.
IAM 사용자 그룹은 IAM 사용자만을 포함할 수 있습니다.
그룹안에 그룹을 넣을 수는 없다!
9. IAM 정책은 하나 이상의 문장으로 구성됩니다. IAM 정책 내 문장의 구성 요소가 아닌 것을 고르세요.
IAM 정책의 문장은 시드, 효과, 원칙, 조치, 리소스, 그리고 조건으로 구성됩니다. 버전은 IAM 정책 자체의 일부이지, 문장의 일부가 아닙니다.
statement에 sid, effect, principal, action, resource, condition
iam 자체 정책은 id, version, statement 이다.