여는 말 : IAM Policies의 개요 ⚖️
IAM에서 그룹에 초대되었거나 계정을 만들었다면 그 안에서 자체적인 정책을 세울 수가 있는데
정책을 그룹 레벨에서 연결하면 사용자들은 권한을 얻으면서 정책이 상속된다.
(그룹에 속하지 않아도 혼자 inline policy를 적용할 수 있다👍)
#0 정책의 생김새와 정책 커스텀하기🎇
1) 정책의 생김새
엑세스 관리 -> 정책에서 사용자에게 부여할 수 있는 정책들이 보여진다.
그 중 AdministratorAccess을 보면 모든 것에 대한 관리자 엑세스를 준 권한인데, 아래의 사진처럼 JSON 형태로도 확인가능하며 Statement 안에 모든(*) action과 모든(*) Resource가 allow된 정책을 확인할 수 있다.
+) 정책의 구조
Version : 정책의 언어 버전
Id : 해당 정책의 식별자 (넣는 건 선택사항)
Statement : 하나 또는 여러 개의 개인적인 Statements (필수사항)
- Sid : 문장 id로 문장의 식별자(넣는 건 선택사항)
- Effect : 특정 API에 접근을 허가할지/거부할지 결정하는 곳
- Principle : 특정정책에 적용되어질 사용자, 계정, 역할로 구성(위의 예시에서는 루트계정이 적용된 모습)
- Action : 허용 및 거부할 API 호출 목록
- Resource : 적용될 Action의 리소스 목록(위의 예시에서는 bucket - 다른 것도 가능하다)
+) Condition : 위의 예시 사진에는 없지만 여기에서 Statement가 언제 적용될지를 결정할 수 있다 (선택사항)
2) 정책 커스텀 하기
정책 메인화면에서 '정책 생성'을 클릭하면 서비스(IAM, Lamda, EC2...)에 따라 커스텀할 수 있고 JSON형태로도 세세한 정책들을 하나씩 커스텀할 수 있다.
#1 Password Policy(비밀번호 정책) - MFA까지 🔐
제한사항이 많은 비밀번호는 높은 보안을 유지할 수 있다. AWS에서는 비밀번호 정책도 설정이 가능한데 비밀번호의 최소길이 혹은 특정 유형의 '글자' 사용(대/소문자, 숫자, 특수문자)을 요구할 수 있게 설정 가능하다. 또한 IAM사용자들에게 그들만의 비밀번호로 설정하라고 할 수도 있고 금지시킬 수 있으며, 일정시간동안 이용 가능하게 하고 토큰을 만료시켜 새 비밀번호를 설정하라고 요구할 수도 있다.
1) MFA(다요소 인증)🔑
사용자들은 계정에 접근권한이 있고 많은 작업을 할 수 있는데 특히 관리자일 경우, 구성을 변경하거나 리소스를 삭제하는 등의 작업을 할 수 있다.
(그래서 root계정은 무슨 일이 있어도 반드시 보호해야 하는 이유 중 하나⚠️)
자신임을 인증하는 요소 중에 비밀번호 말고 다른 어떤 수단을 사용할 수 있을까?🧐
-> 바로 'MFA를 쓰는 것' 이다.
MFA는 로그인 과정에서 비밀번호와 가지고 있는 보안장치(혹은 토큰)를 함께 사용하는 것인데 MFA를 사용하는 이유는 그냥 비밀번호보다 같이 쓰는 것이 더욱 안전하기 때문이다. 해킹을 당해 누출이 되어도 해커는 로그인을 위해 휴대전화 등 해당 계정의 원소유자의 물리적 장치가 추가로 필요해지니 계정을 침해당하지 않는다.
물리적 장치 옵션은 virtual MFA device라고 모바일로 발급된 번호로 인증할 수도 있고 universal 2nd factor(U2F) key 등등이 있다. (virtual MFA device 빼고 거진 다 은행 OTP같은 것들이 있는데 종류가 많다.)
#2 AWS에 액세스하는 방법 3가지
AWS에 액세스하는 방법은 세 가지가 있다.
1. AWS Management Console : 바로 위에서 봤듯이 비밀번호 + MFA인증
(아래 2,3번 모두 완전히 동일한 액세스 키로 보호가 되며 그 액세스 키는 여기 AWS Console에서 생성한다)
2. AWS Command Line Interface(CLI) : 커멘드 라인으로 입력하는 방법인데 액세스 키로 보호받고 있다.
- CLI를 사용하면 AWS 서비스의 공용 API로 직접 액세스가 가능하다! 나온 아래 방법으로 Access key와 Secret Access key를 CLI에 적용하면 AWS API에 액세스가 가능하다.
그리고 CLI를 통래 리소스를 관리하는 스크립트를 개발해서 일부작업을 자동화할 수 있다.
- 위의 AWS Management Console(AWS 관리 콘솔) 대신 사용되기도 한다(CLI 사용하느냐 관리 콘솔을 사용하냐의 차이)
3. AWS Software Developer Kit(SDK) : AWS로부터 애플리케이션 코드 내에서 API를 호출하고자할 때 사용되는 방식
- 특정 언어로 된 라이브러리의 집합(프로그래밍 언어에 따라 개별 SDK가 존재한다.)
- 똑같이 이 방식을 사용해서도 AWS 서비스나 API에 프로그래밍을 위한 액세스가 가능하도록 해주지만 SDK에서는 터미널 내에서 사용하는 것이 아니라 코딩을 통해 애플리케이션 내에 심어두어야 한다.(즉, 애플리케이션 내에 자체적으로 AWS SDK가 있다는 뜻)
- 그래서 다양한 언어(자스, 파이썬, php 등등)를 지원하고 모바일 SDK도 지원하며 사물간 인터넷(IOT - 예: 온도 센서를 사용하는 경우, 연결된 백로그 등에서 사용하는 경우..) SDK장치도 지원한다.
'AWS' 카테고리의 다른 글
EC2 Instance Storage (0) | 2024.03.04 |
---|---|
EC2 인스턴스 생성하기, 윈도우로 SSH 실행하는 방법과 더 편한 방법 (0) | 2024.03.03 |
AWS IAM Access key 만들어보기, IAM Roles(IAM 역할)에 관해 (0) | 2024.03.01 |
IAM이란? - IAM 그룹과 사용자 만들기 (0) | 2024.02.29 |
클라우드 서비스의 종류(Types of Cloud Computing)와 AWS Region, Shared Responsibility Model(공통 책임 모델) (1) | 2024.02.28 |