티스토리 뷰

Weekly-paper

Week 15. AWS 의 VPC, S3, IAM

buffso 2024. 12. 29. 17:43

VPC는 무엇이며, 왜 중요한가요?

VPC란?

  • VPC(Virtual Private Cloud)는 AWS에서 제공하는 가상 네트워크 환경으로, 사용자가 정의한 방식으로 AWS 리소스를 격리하고 제어할 수 있는 클라우드 네트워크입니다.

VPC가 중요한 이유

 

  1. 보안 강화
    • AWS 리소스를 외부로부터 격리하고, 불필요한 접근을 차단해 네트워크 보안을 강화.
  2. 네트워크 제어
    • IP 범위, 서브넷, 라우팅 등 네트워크 설정을 사용자 맞춤으로 구성해 트래픽을 세밀하게 관리.
  3. 확장성과 유연성
    • 필요에 따라 서브넷 추가, 라우팅 수정 등을 통해 손쉽게 확장 가능.
  4. 하이브리드 클라우드
    • Direct Connect, VPN을 통해 온프레미스 데이터 센터와 연결하여 하나의 네트워크처럼 사용 가능.

 

S3 버킷의 사용 사례와 주의할 점은 무엇인가요?

S3 버킷이란

Amazon S3(Simple Storage Service)는 AWS에서 제공하는 확장 가능하고 안전한 객체 스토리지 서비스입니다.
다양한 유형의 데이터를 저장하고 관리하는 데 사용됩니다.

 

주요 사용 사례

  1. 웹 사이트 호스팅
    • 정적 웹사이트의 HTML, CSS, JavaScript 파일을 저장하고 호스팅.
    • 예: 이미지, 동영상 등 정적 콘텐츠 제공.
  2. 백업 및 복구
    • 애플리케이션 데이터, 데이터베이스 스냅샷, 시스템 로그 등을 장기적으로 보관.
    • 재해 복구(Disaster Recovery) 솔루션으로 활용.
  3. 데이터 아카이빙 및 장기 저장
    • 오래된 데이터나 액세스 빈도가 낮은 데이터를 S3 Glacier에 저장해 비용 절감.
  4. 빅데이터 분석
    • 대규모 데이터 세트를 S3에 저장하고, AWS의 분석 서비스(Athena, Redshift)와 연계해 분석.
  5. 애플리케이션 데이터 저장소
    • 웹 애플리케이션에서 업로드한 파일, 사용자 콘텐츠, 로그 파일 등을 저장.
  6. 미디어 콘텐츠 저장 및 스트리밍
    • 이미지, 비디오, 오디오 파일을 저장하고 글로벌 콘텐츠 전송(CDN) 서비스와 통합해 스트리밍.

S3 버킷 사용 시 주의할 점

  1. 보안 설정
    • 퍼블릭 액세스 차단: 기본적으로 S3 버킷은 퍼블릭으로 설정되지 않지만, 실수로 퍼블릭으로 설정될 경우 데이터 유출 위험 발생.
    • 버킷 정책 및 ACL을 사용해 접근 제어.
  2. 데이터 암호화
    • S3에서 저장된 데이터는 서버측 암호화(SSE) 또는 클라이언트 측 암호화를 사용해 보호.
    • S3-KMS를 사용해 키 관리 가능.
  3. 비용 관리
    • 사용량이 많아질수록 비용이 증가하므로 S3 스토리지 클래스를 적절히 선택해 비용 절감.
      • S3 Standard: 자주 액세스하는 데이터.
      • S3 Intelligent-Tiering: 액세스 빈도에 따라 자동으로 비용 최적화.
      • S3 Glacier: 장기 아카이빙(액세스 빈도가 낮은 데이터).
  4. 버전 관리(Versioning)
    • 파일 수정 및 삭제 시 버전 관리를 활성화해 데이터 손실 방지.
  5. 라이프사이클 정책
    • 데이터를 자동으로 삭제하거나 저렴한 스토리지 클래스로 이동하는 라이프사이클 정책 설정.
  6. 데이터 일관성
    • S3는 **강력한 읽기 일관성(strong read-after-write consistency)**을 제공하지만, 대규모 데이터 업로드 시 일시적 지연 가능성 존재.
  7. 액세스 로깅 및 모니터링
    • S3 액세스 로그CloudTrail을 통해 누가 데이터를 액세스했는지 기록.
    • 이상한 액세스가 발견될 경우 빠르게 대응 가능.

 

IAM은 무엇이며, 어떤 기능을 제공하나요?

IAM이란?

IAM(Identity and Access Management)AWS의 보안 및 사용자 관리 서비스로,

  • 사용자, 그룹, 역할(Role)을 생성 및 관리하고,
  • AWS 리소스에 대한 액세스를 제어하는 기능을 제공합니다.

IAM이 제공하는 주요 기능

  1. 사용자 및 그룹 관리
    • IAM 사용자: AWS 서비스에 접근하는 개별 사용자.
    • IAM 그룹: 여러 사용자를 묶어 동일한 권한을 부여할 수 있는 그룹.
    • 사용자는 개별적으로 권한을 부여하거나, 그룹 단위로 일괄 권한 관리 가능.
  2. 정책(Policy) 기반 권한 관리
    • JSON 형식의 IAM 정책을 사용해 리소스에 대한 세부적인 접근 제어 설정.
    • 특정 서비스, 리소스에 대한 허용(Allow)거부(Deny) 권한을 정의.
    • 예: S3 버킷 읽기 권한만 부여, 특정 EC2 인스턴스 접근 차단 등.
  3. 역할(Role) 관리
    • IAM 역할은 특정 AWS 서비스나 외부 애플리케이션에 권한을 부여하는 기능.
    • 사용자는 임시 자격 증명을 통해 AWS 리소스에 액세스 가능.
    • 예: Lambda 함수가 DynamoDB에 접근하도록 역할 부여.
  4. MFA(다중 인증) 설정
    • **MFA(Multi-Factor Authentication)**를 통해 AWS 계정 및 리소스 접근 시 추가 인증 레이어를 적용.
    • 비밀번호 외에도 **OTP(일회용 비밀번호)**를 요구해 보안 강화.
  5. 세밀한 리소스 수준 제어
    • 리소스 수준에서 특정 S3 객체, EC2 인스턴스, DynamoDB 테이블 등에 대한 권한을 개별적으로 설정 가능.
  6. 조건부 액세스(Control by Conditions)
    • 특정 조건(예: IP 주소, 시간, MFA 사용 여부)에 따라 접근을 허용 또는 차단하는 기능.
    • 예: 특정 IP 범위에서만 S3에 업로드 가능.
  7. AWS 계정 루트 사용자 보호
    • IAM은 루트 사용자 대신 IAM 사용자를 생성해 **최소 권한 원칙(Least Privilege Principle)**을 적용하도록 권장.
    • 루트 사용자는 필요한 경우에만 제한적으로 사용하고, 대부분의 작업은 IAM 사용자로 수행.
  8. 연동 및 연합(Identity Federation)
    • 기존 Active Directory(AD) 또는 SAML 2.0 기반 시스템과 연동해 IAM 사용자 없이 AWS 리소스 접근 가능.