[Udemy] IAM & AWS CLI

퐁치키메실차·2022년 2월 4일
0

AWS 자격증

목록 보기
3/4

해당 정리는 Udemy Section4:IAM & AWS CLI 강의를 듣고 번역, 정리한 것임

IAM 이란?

  • Identity and Access Management
  • 루트 계정은 절대 사용 및 공유 해서는 안됨
  • 사용자는 조직 내 사람이며 그룹화할 수 있음
  • 그룹에는 다른 그룹이 아닌 사용자만 포함됩니다.
  • IAM는 Global View 로 보는게 가능, 리전 구분이 따로 없음

IAM:Permissions

  • 사용자 또는 그룹에 정책이라는 JSON 문서를 할당할 수 있습니다.
  • 권한은 정책에 의해 관리되고 정책은 JSON 으로 작성됨
  • 최소 권한 원칙 (Least Privilege Principle): 사용자에게 작업을 수행하는데 필요한 최소한의 권한을 부여하는 것

정책 구조

{
	"Version": "2012-10-17", // 이 값은 언제나 같음
	"Id": "S3-Account-Permissions", 
	"Statement": [
		{
			"Sid": "1", // 식별자
			"Effect": "Allow", // [Allow,Deny]
			"Principal": {
				"AWS": ["arn:aws:iam::123456789012:root"] // 정책이 적용된 계정/사용자/규칙
			},
			"Action": [ // 어떤 액션에 대한 정책을 줄건지에 대한
				"s3:GetObject",
				"s3:PutObject"
			],
			"Resource": ["arn:aws:s3:::mybucket/*"] // 액션이 적용될 리소스
		}
	]
}

Shared Responsibility Model (공유책임모델)

AWS

  • 인프라(글로벌 네트워크 보안)
  • 구성 및 취약점 분석
  • 규정 준수 검증

You

  • 사용자, 그룹, 역할, 정책 관리 및 모니터링
  • 모든 계정에서 MFA 활성화
  • 모든 키를 자주 회전
  • IAM 도구를 사용하여 적절한 권한 적용
  • 액세스 패턴 분석 및 권한 검토

사용자 & 그룹 보호하기

Password Policy

  • 강력한 비밀번호는 계정의 보안과 직결됨
  • 강력한 비밀번호 정책 세우기
    • 최소 암호길이 설정
    • 특정 문자 유형 요구 가능
    • 비밀번호 변경 요구 가능
    • 재사용 방지 기능

MFA (Multi Factor Authentication)

일반적으로 사용자는 계정에 액세스 할 수 있으며 AWS 계정에서 구성을 변경하거나 리소스를 삭제할 수 있음. 이때 Root 계정 및 IAM User를 보호하려는 경우에 MFA를 이용할 수 있음

❗️ MFA를 이용하면 패스워드를 해커에게 유출당해도 계정은 보호할 수 있다.

MFA 종류

  • Virtual MFA device (Google Authenticator, Authy)
  • Univaersal 2nd Factor (U2F) - USB와 비슷하게 생겼네..
  • Hardware key Fod MFA Device - 이름은 기억안나지만..은행 랜덤 코드 생성해주는 거라 비슷...

IAM Security Tools

IAM Credentials Report (account-level)

계정의 모든 사용자와 다양한 사용자의 상태를 나열하는 보고서
신임장

IAM Access Advisor (user-level)

  • Access Advisor는 사용자에게 부여된 서비스 권한을 보여줍니다.
    서비스에 마지막으로 액세스했습니다.
  • 이 정보를 이용하여 정책을 수정할 수 있습니다.

IAM Guidelines & Best Practices

  • AWS 계정 설정을 제외하고, 루트 계정을 사용하지 마라.
  • 한명의 실 사용자 = AWS 사용자
  • 강력한 패스워드 정책 세우기
  • MFA 사용하기
  • 프로그래미틱하게 접근할때는 액세스 키를 사용하라 (CLI/SDK)
  • 룰을 생성하여 AWS 서비스에 권한을 주어라
  • IAM & Access key를 공유하지마라

How can users access AWS ?

AWS에 액세스하려면 다음 세 가지 옵션이 있음.

  • AWS Management Console(암호 + MFA로 보호)
  • AWS 명령줄 인터페이스(CLI): 액세스 키로 보호
  • AWS 소프트웨어 개발자 키트(SDK) - 코드용: 액세스 키로 보호
  • 액세스 키는 AWS 콘솔을 통해 생성됩니다.
  • 사용자는 자신의 액세스 키를 관리합니다.
  • 액세스 키는 암호와 마찬가지로 비밀입니다. 공유금지
  • 액세스 키 ID ~= 사용자 이름
  • 비밀 액세스 키 ~= 암호

AWS CLI 란?

  • 명령줄 셸에서 명령을 사용하여 AWS 서비스와 상호 작용할 수 있는 도구
  • AWS 서비스의 공개 API에 직접 액세스
  • 리소스를 관리하기 위한 스크립트를 개발할 수 있습니다.
  • 오픈 소스 https://github.com/aws/aws-cli
  • AWS Management 콘솔 사용의 대안

AWS SDK 란?

  • AWS 소프트웨어 개발 키트(AWS SDK)
  • 언어별 API(라이브러리 세트)
  • 프로그래밍 방식으로 AWS 서비스에 액세스하고 관리할 수 있습니다.
  • 애플리케이션에 내장
  • 지원
  • SDK(JavaScript,Python,PHP,.NET,Ruby,Java,Go,Node.js, C++)
  • 모바일 SDK(Android, iOS, ...)
  • IoT 장치 SDK(임베디드 C, Arduino, ...)

Summary

  • Users: 물리적인 유저, 패스워드로 콘솔에 접근 가능
  • Groups: 유저만 포함된
  • Policies: 유저나 그룹에 대한 권한을 JSON 문서로 표현한 것
  • Roles: Ec2 인스턴스에서 필요한 것
  • Security: MFA + 비밀번호 정책
  • Access Keys: CLI 나 SDK 사용시 AWS에 접근할때 필요한 것
  • Audit: IAM 리포트 & IAM 접근 Advisor

출처

0개의 댓글