udemy 강의를 기반으로 정리한 자료입니다.
https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/
✅ Summary
- Users: mapped to a physical user, has a password for AWS Console
- Groups: contains users only
- Policies: JSON document that outlines permissions for users or groups
- Roles: for EC2 instances or AWS services
- Security: MFA + Password Policy
- AWS CLI: manage your AWS services using the command-line
- AWS SDK: manage your AWS services using a programming language
- Access Keys: access AWS using the CLI or SDK
- Audit: IAM Credential Reports & IAM Access Advisor
✅ Users & Groups
- IAM(Identity and Access Managemenrt, Globals service) : 사용자를 생성하고 그룹으로 설정하므로 글로벌 서비스에 해당
- Root account: 기본적으로 생성되는 계정으로, 생성 후 루트 계정을 공유해서는 안 되는 대신 사용자를 생성해야 함.
- Users: 하나의 사용자는 조직 내의 한 사람에 해당되며, 필요하다면 사용자들을 그룹으로 묶을 수도 있음.
- Groups: 그룹에는 사용자만 배치할 수 있으며, 다른 그룹은 포함할 수 없음.
📍 Permissions : AWS 계정을 사용하도록 허용하는 방법
- 사용자 또는 그룹에게 policy, 또는 IAM policy라고 불리는 JSON 문서를 지정할 수 있음.
- JSON 문서 : 특정 사용자, 혹은 특정 그룹에 속한 모든 사용자들이 어떤 작업에 권한을 가지고 있는지 설명해놓은 것
- 정책을 사용해 사용자들의 권한 정의
- AWS는 least privilege principle(최소 권한의 원칙)을 사용하여, 사용자가 꼭 필요로하는 것 이상의 권한을 주지 않음
📍 예제
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*",
},
{
"Effect": "Allow",
"Action": "elasticloadbalancing:Describe*",
"Resource": "*",
},
{
"Effect": "Allow",
"Action": [
"cloudwatch:ListMetrics",
"cloudwatch:GetMetricStatistics",
"cloudwatch:Describe*"
],
"Resource": "*",
},
]
}
✅ IAM Policies Structure
📍 구성요소
- Version: 정책 언어 버전(형식은 주로 "2012-10-17")
- Id: 정책을 식별하는 ID (선택적 사용)
- Statement: 한 개 이상의 statements (필수)
📍 Statements 구성요소
- Sid: Statement ID, Statement의 식별자 (선택적 사용 )
- Effect: Statement가 특정 API에 접근하는 것에 대한 허용 및 거부 내용 (Allow / Deny)
- Principal: 특정 정책이 적용될 사용자, 계정, 역할
- Action: effect에 기반해 허용 및 거부되는 API 호출의 목록
- Resource: 적용될 action의 리소스 목록
- Condition: Statement가 언제 적용될지 결정 (선택적 사용)
✅ IAM MFA
📍 Password Policy
- Strong password = higher security for your account
- 다양한 옵션으로 Password Policy 생성 가능
- 비밀번호 최소 길이 설정
- 특정 유형 글자 사용(대문자, 소문자, 숫자, 특수문자 등)
- IAM 사용자들에게 비밀번호 변경 허용 또는 금지 권한 부여
- 일정기간이 지난 후 비밀번호 만료 및 새 비밀번호 설정 요구
- 비밀번호의 재사용 금지
📍 Multi Factor Authentication(MFA)
MFA는 "password you know + security device you own"으로, 비밀번호를 분실하거나 해킹당하면 계정을 더 이상 사용할 수 없게 해줌
- 관리자(루트 계정)는 구성을 변경하거나 리소스를 삭제하는 등의 작업을 할 수 있으며, 반드시 보호해야 하기 때문에 비밀번호 이외에 사용할 수 있는 수단으로서 MFA가 있음
📍MFA 기기 선택
- Virtual MFA device : 하나의 장치에서 토큰을 여러개 지원하여 루트계정, IAM 사용자 등 원하는 수 만큼의 사용자 등*록이 가능 (예시 : Google Authenticator(폰에서만 가능), AWS Authy(멀티 디바이스) 등)
- Universal 2nd Factor (U2F) Security Key: 하나의 보안 키에서 여러 루트 계정과 IAM 사용자를 지원 (예시: Yubikey by Yubico (3rd party))
- Hardware Key Fob MFA Device : Provided by Gemalto (3rd party)
- Hardware Key Fob MFA Device for AWS GovCloud (US) : Proviced by SurePassID (3rd party)
✅ AWS 액세스 키, CLI 및 SDK
📍AWS 접근 방법
Access Key ID와 Secret Access Key로 구성되어 있으며, Access Key는 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
📍AWS CLI (Command Line Interface)
Command-line shell에서 명령어를 사용하여 AWS 서비스들과 상호작용할 수 있도록 하는 도구
- AWS CLI를 사용하면 AWS의 공용 API로 직접 액세스 가능하며, Management Console 대신 사용되기도 함
- AWS CLI로 리소스를 관리하는 스크립트를 개발해 일부 작업 자동화 가능
📍AWS SKD (Software Development Kit)
특정 언어로 된 라이브러리 집합으로, 프로그래밍 언어에 따라 개별 SDK가 있음
- AWS SDK를 사용하여 AWS의 서비스나 API에 프로그래밍을 위한 액세스 가능
- SDK는 터미널 내에서 사용하는 것이 아닌 코딩을 통해 애플리케이션 내에 심어두는 것으로, 애플리케이션 내에 자체적으로 AWS SDK가 있다고 이해하면 됨
- Supports:
- SDKs (JavaScript, Python, PHP, NET, Ruby, Java, Go, Node.js, C++)
- Mobile SDKs
- IoT Device SDKs
❗ AWS CLI는 Boto라는 Python용 AWS SDK에 구축되어 있다고 이해하면 됨 ❗
✅ AWS CloudShell:Region
AWS CloudShell은 다음 AWS 리전에서 사용 가능 : 미국 동부(오하이오), 미국 동부(버지니아 북부), 미국 서부(오리곤), 아시아 태평양(뭄바이), 아시아 태평양(시드니), 아시아 태평양(도쿄), 유럽(프랑크푸르트), 유럽(아일랜드)
✅ IAM Role 및 보안도구
📍IAM Role
몇 개의 AWS 서비스는 본인 계정에서 실행해야 할 수도 있으므로, AWS 서비스에 권한을 부여해야 함. 또한, IAM Role은 사용자와 비슷하지만 실제 사람이 사용하도록 만들어진 것이 아니고, AWS 서비스에 의해 사용되도록 만들어짐.
- Command roles:
- EC2 Instance Roles
- Lambda Function Roles
- Roles for CloudFOrmaiton
📍IAM 보안도구
- IAM Credentials Report (account-level): 계정에 있는 사용자와 다양한 자격 증명의 상태 포함
- IAM Access Advisor (user-level)
- 사용자에게 부여된 서비스의 권한과 해당 서비스에 마지막으로 액세스한 시간을 볼 수 있음
- 해당 도구를 사용하여 어떤 권한이 사용되지 않는지 볼 수 있고, 이를 통해 사용자의 권한을 줄여 최소 권한의 원칙을 지킬 수 있음
✅ IAM 설정 TIP!!
- 루트 계정은 AWS 계정을 설정할 때를 제외하고 사용하지 않기
- One physical user = One AWS user
- 사용자를 그룹에 넣어 해당 그룹에 권한을 부여할 수 있으므로, 그룹 수준에서 보안 관리 가능.
- 비밀번호 정책을 강력하게 하기!! 해킹 당할수도 있음. (1000만원 과금된 사례도 봄)
- MFA를 사용할 수 있다면 꼭 사용하기
- AWS 서비스에서 권한을 부여할 때마다 Role를 만들고 사용하기
- CLI 혹은 SDK를 사용할 경우 Access Key를 만들고 사용하기. Access Key는 비밀번호와 같은 개념이므로 공유 금지
- 계정 권한 점검을 위해 IAM Credential Report를 사용하기
- 절대 IAM users & Access Keys 공유 금지!!!!!!!!!!!!!!!!!!!!!!!!!!!
'Certificates > AWS-SAA-CO3' 카테고리의 다른 글
[AWS SAA-C03] Examtopics Dump (41 - 60) (0) | 2024.05.17 |
---|---|
[AWS SAA-C03] Examtopics Dump (21 - 40) (0) | 2024.05.17 |
[AWS SAA-C03] Examtopics Dump (1 - 20) (1) | 2024.05.14 |
[AWS SAA-C03] EC2 기초 (0) | 2024.05.14 |
[AWS SAA-C03] AWS 기초 (0) | 2024.05.05 |