혼자 공부..
보안, 신원 & 규정준수
Security, Identity & Compliance
IAM(Identity and Access Management)
- IAM은 사용자 및 리소스에 대한 액세스를 관리하는데 사용됩니다.
- IAM은 글로벌 서비스입니다. (모든 지역에 같이 적용됨) IAM은 무료 서비스입니다.
- Root Account는 기본적으로 전체 관리자로 생성되며 사용해서는 안됩니다.
- 실제 사용자에 매핑된 사용자는 자신의 계정과 암호를 사용하여 AWS 콘솔에 로그인해야 합니다.
- Group은 한 명 이상의 User를 가질 수 있으며 다른 그룹은 가질 수 없습니다.
- Policy는 작업에 대한 액세스 허용 또는 거부가 가능한 모든 사용자, 그룹 및 역할에 의해 AWS 리소스에 대해 수행될 수 있는 JSON 문서입니다.
Access AWS Programmatically
- AWS Management 콘솔 - 비밀번호 + MFA(다단계 인증) 사용
- AWS CLI 또는 SDK - 액세스 키 ID (Username) 및 보안 액세스 키 (Password) 사용
- 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에서는 사용자 관리, 인증, 플랫폼 및 디바이스 간 동기화를 처리하는 솔루션의 구축, 보안 및 확장에 대해 걱정하는 대신 뛰어난 앱 경험을 만드는 데 집중할 수 있습니다.
- 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에 액세스 할 수 있습니다.
- 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 인스턴스의 의도하지 않은 네트워크 액세스 가능성을 확인합니다.
- 호스트 평가 규칙 패키지는 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