[AWS SAA 준비] 보안, 신원 & 규정준수

Kogoon·2022년 5월 17일
1

혼자 공부..

보안, 신원 & 규정준수

Security, Identity & Compliance

IAM(Identity and Access Management)

  • IAM은 사용자 및 리소스에 대한 액세스를 관리하는데 사용됩니다.
  • IAM은 글로벌 서비스입니다. (모든 지역에 같이 적용됨) IAM은 무료 서비스입니다.
  • Root Account는 기본적으로 전체 관리자로 생성되며 사용해서는 안됩니다.
  • 실제 사용자에 매핑된 사용자는 자신의 계정과 암호를 사용하여 AWS 콘솔에 로그인해야 합니다.
  • Group은 한 명 이상의 User를 가질 수 있으며 다른 그룹은 가질 수 없습니다.
  • Policy는 작업에 대한 액세스 허용 또는 거부가 가능한 모든 사용자, 그룹 및 역할에 의해 AWS 리소스에 대해 수행될 수 있는 JSON 문서입니다.

Access AWS Programmatically

  1. AWS Management 콘솔 - 비밀번호 + MFA(다단계 인증) 사용
  2. AWS CLI 또는 SDK - 액세스 키 ID (Username) 및 보안 액세스 키 (Password) 사용
  3. AWS CloudShell - AWS 브라우저 콘솔의 CLI 도구 - AWS 로그인 필요.

Amazon Cognito

Amazon Cognito를 사용하면, 모바일과 웹 앱에 사용자 가입 및 인증 기능을 손쉽게 추가할 수 있습니다. Amazon Cognito는 외부 자격 증명 공급자를 통해 사용자를 인증할 수 있게 지원하며, AWS에 있는 앱의 백엔드 리소스 또는 Amazon API Gateway 뒤에 있는 모든 서비스에 액세스할 수 있는 임시 보안 자격 증명을 제공합니다. Amazon Cognito는 SAML 또는 OpenID Connect를 지원하는 외부 자격 증명 공급자 및 소셜 자격 증명 공급자(Facebook, Twitter, Amazon 등)와 연동되며, 자체 자격 증명 공급자와 통합할 수도 있습니다.

또한, Amazon Cognito를 사용하면, 사용자의 디바이스 간에 데이터를 동기화할 수 있으므로, 사용자가 디바이스를 바꿔가며 사용하거나 새로운 디바이스로 업그레이드해도 앱 경험이 일관되게 유지됩니다. 앱에서 사용자의 디바이스에 로컬로 데이터를 저장할 수 있으므로 디바이스가 오프라인일 때도 애플리케이션이 작동하며, 디바이스가 다시 온라인으로 전환되면 데이터가 자동으로 동기화됩니다.

Amazon Cognito에서는 사용자 관리, 인증, 플랫폼 및 디바이스 간 동기화를 처리하는 솔루션의 구축, 보안 및 확장에 대해 걱정하는 대신 뛰어난 앱 경험을 만드는 데 집중할 수 있습니다.

  1. Cognito 사용자 풀 (CUP)
  • 사용자 풀은 모바일 및 웹 응용 프로그램에 등록 및 로그인하기 위한 사용자 디렉터리 입니다.

  • 사용자 풀은 주로 AWS 서비스에 엑세스 하기 위한 인증에 사용됩니다.

  • 사용자 풀 디렉토리를 통해 모바일 앱 사용자를 인증하는 데 사용하거나 타사 ID 공급자(ldP)를 통해 연합합니다. 사용자 풀은 Facebook, Google, Amazon 및 Apple을 통한 소셜 로그인과 OpenID Connect(OIDC)SAML ldP에서 반환되는 토큰을 처리하는 오버헤드를 관리합니다.

  • 인증에 성공하면 웹 또는 모바일 앱이 Amazon Cognito에서 사용자 풀 JWT 토큰을 수신합니다. JWT 토큰은 두 가지 방법으로 사용할 수 있습니다.

    • JWT 토큰을 사용하여 앱이 다른 AWS 서비스에 액세스 할 수 있도록 하는 임시 AWS 자격증명을 검색합니다.
    • IAM 역할이 있는 사용자 풀에 그룹을 생성하여 API Gateway에 액세스한 다음 JWT 토큰(해당 그룹에 대해)을 사용하여 Amazon API gateway에 액세스 할 수 있습니다.
  1. Cognito 자격 증명 풀 (연합 자격 증명)
  • 자격 증명 풀은 주로 AWS 서비스에 대한 엑세스 권한 부여에 사용됩니다.
  • 먼저 사용자 풀을 사용하여 사용자를 인증한 다음, AWS STS를 추가로 사용하여 AWS 리소스에 액세스 하기 위한 임시 AWS 자격 증명을 생성하는 자격 증명 풀과 토큰을 교환합니다.
  • 모바일 앱 사용자에게 facebook/google 로그인을 사용하여 S3 버킷에 쓰기 위한 임시 액세스 권한을 제공할 수 있습니다.
  • 게스트 사용자 지원

AWS Key Management Service (KMS)

 AWS KMS는 암호화 작업에 사용되는 키를 쉽게 생성하고 제어할 수 있도록 지원하는 관리형 서비스입니다. 이 서비스는 고가용성 키 생성, 스토리지, 관리 및 감사 솔루션을 제공하므로, 이를 통해 자체 애플리케이션 내 데이터를 암호화 또는 디지털 방식으로 서명하거나, AWS 서비스 전체에서 데이터의 암호화를 제어할 수 있습니다.

  • AWS 관리형 중앙 집중식 키 관리 서비스는 저장 데이터 암호화를 위해 고객 마스터 키(CMK)를 생성, 관리 및 교체합니다.
  • 고객 관리 대칭 (암호화 및 복호화 작업 모두를 위한 단일 키) 또는 비대칭 (암호화/복호화 또는 서명/확인 작업을 위한 공개/개인 키쌍) 마스터 키를 생성할 수 있습니다.
  • 1년에 한 번 자동 마스터 키 순환을 활성화할 수 있습니다. 서비스는 이전 버전의 마스터 키를 유지하여 이전 암호화된 데이터를 해독합니다.

AWS CloudHSM

 AWS CloudHSM 서비스는 AWS 클라우드 내에서 전용 HSM(Hardware Security Module) 인스턴스를 사용함으로써 데이터 보안에 대한 기업, 계약 및 규제 준수 요구 사항을 충족하는 데 도움이 됩니다. AWS와 AWS Marketplace 파트너는 AWS 플랫폼의 중요한 데이터를 보호하기 위한 다양한 솔루션을 제공하지만, 암호화 키 관리에 대한 계약 또는 규제 요건이 적용되는 일부 애플리케이션과 데이터의 경우 추가 보호가 필요할 수 있습니다. CloudHSM은 기존의 데이터 보호 솔루션을 보완합니다. 이를 통해 사용자는 안전한 키 관리를 위한 정부 표준에 따라 설계되고 검증된 HSM 내에서 암호화 키를 보호할 수 있습니다. CloudHSM을 사용하면 데이터 암호화에 사용되는 암호화 키를 사용자만 액세스 할 수 있는 방법으로 안전하게 생성, 보관 및 관리할 수 있습니다.

  • AWS 클라우드의 AWS 관리형 전용 하드웨어 보안 모델(HSM)
  • 자신의 암호화 키를 안전하게 생성, 저장 및 관리할 수 있습니다.
  • PKCS#11, JCE(Java Cryptography Extensions) 및 CNG(Microsoft CryptoNG) 라이브러리와 같은 업계 표준 API를 사용하여 애플리케이션과 통합합니다.
  • 사용 사례 : KMS를 사용하여 사용자 지정 키 스토어에 CMK를 생성하고 AWS CloudHSM에 추출할 수 없는 키 구성 요소를 저장하여 암호화 키를 완전히 제어합니다.

AWS Systems Manager

  • Parameter Store 는 암호, 데이터베이스 세부 정보 및 라이센스 코드와 같은 중앙 집중식 비밀 및 구성 데이터 관리입니다.
    • 매개변수 값은 String(일반 텍스트), StringList(쉼표로 구분) 또는 SecureString(KMS 암호화 데이터) 유형일 수 있습니다.
    • 사용 사례 : CLI, SDK 및 Lambda 함수에서 사용할 dev/uat/prod 환경의 중앙 집중식 구성.
  • Run Command 를 사용하면, 일반적인 관리 작업을 자동화하고 대규모 EC2 인스턴스에서 일회성 구성 변경을 수행합니다.
  • Session Manager 는 Bastions가 프라이빗 서브넷의 인스턴스에 액세스할 필요를 대체합니다.

AWS Secrets Manager

  • Secret Manager는 주로 데이터베이스 자격 증명, API 키 및 OAuth 토큰과 같은 비밀(비밀번호)을 저장, 관리 및 교체하는 데 사용됩니다.
  • Secret Manager는 RDS 데이터베이스 (Mysql, PostgreSQL 및 Amazon Aurora)의 데이터베이스 자격 증명 교체를 기본적으로 지원합니다.
  • API 키 또는 토큰과 같은 다른 비밀의 경우 사용자 지정 회전 기능에 람다를 사용해야 합니다.

AWS Shield

  • AWS 관리형 DDoS(분산 서비스 거부) 보호 서비스.
  • 레이어 3 및 4 (네트워크 및 전송) 공격으로부터 보호.
  • AWS Shield Standard 는 CloudFront 및 Route 53 리소스에 대한 모든 AWS 고객을 위한 무료 자동 DDos 보호 서비스 입니다.
  • AWS Shield Advanced는 EC2, ELB, CloudFront 및 Route 53 리소스에 대한 향상된 DDoS 보호를 위한 유료 서비스입니다.

AWS WAF

  • Web Application Firewall은 일반적인 웹 취약점으로부터 웹 애플리케이션을 보호합니다.
  • Layer 7 (HTTP) 공격으로부터 보호하고, SQL Injection 또는 XSS(Cross Site Scripting)와 같은 일반적인 공격 패턴 차단
  • CloudFront, Application Load Balancer, API Gateway 및 AWs Appsync에 WAF를 배포할 수 있습니다.

AWS Firewall Manager

  • AWS Firewall Manager를 사용하여 AWS Organization의 계정 및 리소스 전반에 걸쳐 AWS WAF 규칙, AWS Shield Advanced, 네트워크 방화벽 규칙 및 Route 53 DNS 방화벽 규칙을 중앙에서 구성하고 관리합니다.
  • 사용 사례 : 계정 및 리소스 전반에 걸쳐 수출 금지 국가의 트래픽을 차단하는 AWS WAF 규칙을 배포하기 위한 정부 규정을 충족합니다.

AWS GuardDuty

  • VPC 흐름 로그, DNS 로그 및 CloudTrail 이벤트를 읽습니다. 기계 학습 알고리즘 및 이상 탐지를 적용하여 위협을 발견합니다.
  • CryptoCurrency 공격으로부터 보호할 수 있습니다.

Amazon Inspector

  • EC2 인스턴스의 OS에 에이전트를 설치하여 EC2 인스턴스에 대한 자동 보안 평가 서비스.
  • Inspector는 사전 정의된 규칙 패키지와 함께 제공됩니다.
    1. 네트워크 연결성 규칙 패키지는 EC2 인스턴스의 의도하지 않은 네트워크 액세스 가능성을 확인합니다.
    1. 호스트 평가 규칙 패키지는 EC2 인스턴스의 취약성과 안전하지 않은 구성을 확인합니다. CVE(Common Vulnerabilities ans Exposures), CIS(Center for Internet Security) 운영 체제 구성 벤치마크 및 보안 모범 사례가 포함되어 있습니다.

Amazon Macie

  Amazon Macie는 완전관리형 데이터 보안 및 데이터 프라이버시 서비스로, 기계 학습 및 패턴 일치를 활용하여 AWS에서 민감한 데이터를 검색하고 보호합니다.

  • AWS에서 민감한 데이터를 검색하고 보호하는 관리형 서비스.
  • Macie는 선택한 S3 버킷의 PII(Personally Identifiable Information)와 같은 민감한 데이터를 식별하고 경고합니다.

AWS Config

  AWS Config는 AWS 리소스 인벤토리, 구성 기록, 구성 변경 알림을 제공하여 보안 및 거버넌스를 실현하는 완벽한 관리형 서비스입니다. AWS Config를 통해 기존 AWS 리소스를 찾을 수 있고, 모든 세부 구성 정보가 포함된 AWS 리소스의 완전한 인벤토리를 내보낼 수 있으며, 특정 시점에 따른 리소스의 구성 방법을 정할 수 있습니다. 이러한 기능을 바탕으로 규정 준수 감사, 보안 분석, 리소스 변경 추적, 문제 해결을 수행할 수 있습니다.

  • 다중 지역, 다중 계정에서 AWS 리소스의 구성을 평가, 감사 및 평가하는 관리형 서비스.

  • 모든 구성 변경에 대해 SNS를 통해 알림.

  • CloudTrail과 통합, 리소스 구성 기록 제공.

    장점

      AWS Config를 사용하면 초기 투자 없이 리소스 구성을 손쉽게 추적할 수 있으며, 데이터 수집을 위해 에이전트를 설치하고 업데이트하거나 대용량 데이터베이스를 유지 관리하는 복잡성도 피할 수 있습니다. AWS Config를 활성화하면 AWS 리소스와 연관된 모든 구성 속성에 대해 지속적으로 업데이트된 세부 정보를 볼 수 있습니다. 모든 구성이 변경되면 Amazon Simple Notification Service(SNS)를 통해 알림을 받게 됩니다.

AWS Config와 AWS CloudTrail 연동

CloudTrail - AWS CloudTrail은 사용자 활동 및 API 사용을 추적하여 감사, 보안 모니터링 및 운영 문제 해결을 지원합니다. CloudTrail은 AWS 인프라 전체에서 작업과 관련된 계정 활동을 로그하고 지속적으로 모니터링하고 보존하여 스토리지, 분석 및 해결 작업을 제어할 수 있도록 합니다.

 AWS CloudTrail은 계정의 사용자 API 활동을 기록하고 이러한 활동에 대한 정보에 액세스할 수 있게 허용합니다. 호출자 자격 증명, API 호출 시간, 요청 파라미터, AWS 서비스에서 반환한 응답 요소 등 API 작업에 대한 전체 세부 정보를 가져올 수 있습니다. AWS Config는 AWS 리소스에 대한 특정 시점 구성 세부 정보를 구성항목으로 기록합니다. CI를 사용하면 특정 시점에 "내 AWS 리소스는 어떤 형태인가?"라는 질문에 대답할 수 있습니다. AWs CloudTrail을 사용하여 "누가 API를 호출하여 이 리소스를 수정하였습니까?"라는 질문에 대답할 수 있습니다.

 예를 들어, AWS Config용 AWS Management Console을 사용하여 'Production-DB' 보안 그룹이 이전에 잘못 구성되었음을 감지할 수 있습니다. 통합 AWS CloudTrail 정보를 사용하여 'Production-DB' 보안 그룹을 잘못 구성한 사용자를 찾아낼 수 있습니다.


참고

AWS SAA Test Note

profile
SE, Cloud, Devops, Python

0개의 댓글