💝 IAM (Identity and Access Management)
🚨 사용자 및 그룹 (Users & Groups)
✤ AWS 계정 및 권한 관리 서비스
✤ IAM 글로벌 서비스이다 (리전 선택 필요X)
✤ Root 계정은 기본으로 생성되지만, 사용하거나 공유해선 안된다.
✤ 사용자는 조직 내의 사람들이며, 그룹화 할 수 있다.
✤ 그룹은 오직 사용자만 배치할 수 있다.
✤ 사용자는 그룹에 속하지 않을 수도 있고, 멀티그룹에 속할 수도 있다.
🚨 권한 (Permissions)
사용자나 그룹에 정책이라 불리는 JSON 형식의 문서인 권한을 할당할 수 있다.
이 정책들을 사용해 사용자들의 권한을 정의할 수 있다.
최소 권한의 원칙을 적용 : 큰 비용, 보안문제 때문에 최소한의 권한허용을 한다.
정책 구조
구성
• Version : 정책 언어 버전
• Id : 정책의 식별자
• Statement : 한개 또는 그 이상의 개별 정책 명세서
Statements 의 구성
• Sid : statement 의 식별자 (optional)
• Effect : 허용 또는 거부 를 나타냄 (Allow, Deny)
• Principal : 특정 정책이 적용될 사용자, 계정, 역할로 구성
• Action : 권한에 대한 작업 목록. 허용 또는 거부 되는 API 목록
• Resource : 적용될 action 의 리스트 목록
• Condition : statement 가 언제 적용될지 결정 (optional)
🚨 비밀번호 정책 (Password Policy)
✤ 계정을 보호하는 방법이다
✤ 강력한 비밀번호 : 계정을 위한 높은 보안
✤ AWS 에서, 비밀번호 정책 설정 가능
• 비밀번호 최소길이 설정
• 특정 유형의 글자 사용 요구 : 대소문자, 숫자, 특수문자 등
✤ IAM 사용자들의 비밀번호 변경 허용/금지 가능
✤ 일정 기간이 지나면 비밀번호를 만료시켜 새 비밀번호 설정을 요구
✤ 비밀번호 재사용을 막아 이전 비밀번호 사용 못하게 가능
🚨 다요소 인증 - MFA (Multi Factor Authentication)
✤ 필수적으로 사용하도록 권장함
✤ 사용자는 당신의 계정에 액세스할 수 있으며, AWS 계정에서 구성을 변경하거나 리소스를 삭제 가능
✤ Root 계정은 무조건 보호해야하며, 전체 IAM 사용자들도 보호해야 한다.
✤ MFA 장치 = 비밀번호 + 보안장치
✤ MFA 의 주요 이점 : 비밀번호를 도난당하거나 해킹당해도, 계정이 손상되지 않는다.
MFA 옵션 장치
• 가상 MFA 장치 : 하나의 장치에도 토큰을 여러개 지원함
• U2F 보안키 (물리적 장치) : 하나의 보안키에서 여러 Root 계정과 IAM 사용자를 지원함
• 하드웨어 Key Fob
🚨 AWS 에 액세스하는 방법 (3가지)
✤ Console : AWS Management Console. AWS 콘솔 사용
✤ CLI : AWS Command Line Interface. AWS 명령 인터페이스 사용
✤ SDK : AWS Software Developer Kit. AWS 소프트웨어 개발자 키트 사용
• 액세스 키에 의해 보호됨. 액세스 키는 자격증명이다.(터미널에서 AWS 다우로드 가능하게함)
• 액세스 키는 AWS 관리자 콘솔을 통해 생성함
• 사용자는 자신의 액세스 키를 직접 관리함
• 액세스 키는 공유X (절대 공유하면 안된다!)
• Access Key ID ~ = username
• Secret Access Key ~ = password
AWS CLI
• AWS CLI : 명령줄 shell 에서 명령어를 사용하여 AWS 서비스들과 상호작용 할 수 있도록 해주는 도구
• CLI : 명령줄 인터페이스
• 모든 명령어가 aws 로 시작한다.
• AWS 서비스의 공용 API 로 직접 접근 가능
• 리소스를 관리하는 스크립트를 개발해 일부 작업을 자동화할 수 있다.
• CLI 는 오픈소스로, GitHub 에서 모든 소스코드를 찾을 수 있다.
• AWS 관리 콘솔 대신 사용하기도 한다.
AWS SDK
• 소프트웨어 개발 키트
• 특정 언어로된 라이브러리 집합
• 코딩을 통해 애플리케이션 내 심어두어야 사용 가능
• 다양한 언어 지원
- SDKs (JavaScript, Python, PHP, .NET, Ruby, Java, Go, Node,js, C++)
- Mobile SDKs (Android, iOS, ...)
- Iot Device SDKS (Embedded C, Arduino, ...)
• AWS 내 자체 SDK 가 있다.
🚨 IAM 역할 (Roles)
✤ AWS 리소스에서 사용하는 자격증명
✤ 일부 AWS 서비스는 여러분을 대신해 작업을 수행해야 한다.
✤ AWS 서비스에 권한을 부여해야 한다. 그러기 위해 IAM Roles 를 만들어야 한다.
✤ 실제 사람이 사용하도록 만들어진 게 아니고, AWS 서비스에 의해 사용되도록 만들어졌다.
🚨 IAM 보안 도구 (Security Tools)
✤ IAM 자격증명 보고서 - 계정 수준에서 가능 (IAM Credentials Report → accout-level)
• 계정의 모든 사용자와 다양한 자격 증명 상태를 나열하는 보고서
✤ IAM 액세스 관리자 - 사용자 수준에서 가능 (IAM Access Adviso → user-level)
• 액세스 관리자는 사용자에게 부여된 서비스 권한과 해당 서비스가 마직막으로 접근한 시간을 보여준다.
• 이 정보들을 사용하여 정책을 수정할 수 있다.
🚨 IAM 의 일반적인 가이드라인과 모범 사례
✤ Root 계정은 AWS 계정을 생성할 때 제외하고 사용하지 않기.
✤ 하나의 AWS 사용자 = 한명의 실제 사용자
✤ 사용자를 그룹에 넣어 권한을 부여할 수 있다.
✤ 비밀번호 정책은 강력하게!
✤ 다요소 인증 MFA → 계정을 지킬 수 있다.
✤ AWS 서비스에 권한을 부여할 때마다 역할(Roles)를 만들고 사용해야 한다.
✤ CLI, SDK 를 사용할 경우, 반드시 액세스 키를 만들어야 한다.
✤ 계정 권한을 감사할 때, 자격 증명 보고서와 액세스 관리자를 사용할 수 있다.
✤ IAM 사용자와 액세스 키는 절대 공유 X !
'🌦 Cloud' 카테고리의 다른 글
[AWS/SAA-03] 로드 밸런서 (Load Balancer) (0) | 2023.04.23 |
---|---|
[AWS/SAA-03] EC2 인스턴스 스토리지 (0) | 2023.04.21 |
[AWS/SAA-03] 탄력적 IP, 배치그룹, ENI, 절전모드 (0) | 2023.04.20 |
[AWS/SAA-03] EC2 인스턴스 (0) | 2023.04.16 |
[AWS/SAA-03] AWS 는 Global Service❗️ (0) | 2023.04.16 |