====== AWS Security 보안 ====== * [[aws:architecture|AWS Architecture]] * [[https://explore.skillbuilder.aws/learn/course/external/view/elearning/562/aws-security-fundamentals-second-edition-korean|AWS Security Fundamentals (Second Edition) (Korean) AWS Skill Builder]] * 계정 / 인증 * root 사용자 : email 형식 사용자. 모든 것이 다 가능하다. email/password 누출시 모든 권한 행사 가능. 절대 동유하지 않는다. * root 의 물리적인 토큰 MFA 는 정말로 물리적 금고에 넣어둬 버리고 IAM 유저로만 로그인한다. * IAM 사용자 : 권한 제어된 사용자. * 콘솔은 userid / password * API 는 access Key / password * access key 는 절대 노출되지 않게 하고, 소스 코드에 넣지 않는다. * IAM 유저를 생성하고 최소 권한의 원칙에 따라 권한을 제약하고 항상 해당 사용자로 로그인하게 해야한다. 절대로 root 계정을 공유하지 않는다. * MFA 를 설정한다. * 하드웨어 : gemalto * 가상 : google authenticator. [[:totp|TOTP]] * SMS : 모바일 SMS * root 사용자는 필수 * 추적 기능을 활성화 한다. Cloud Trail * 소프트웨어적으로 보안을 자동화 한다. * 전송 중/저장된 데이터 보호 * 암호화, 액세스 제어. * Tagging 으로 데이터 분류 * VPN / TLS 연결 사용 * 2023 년 [[aws:s3|S3]] 객체 기본 암호화하게 됨 * 특정 인스턴스가 보안 취약점으로 뚫렸을 때(특히 windows 가 바이러스에 감염됐을 때) 인스턴스를 격리하는 방안 마련 * 공격 표면 최소화 * EC2 에 불필요하게 public IP 두지 않기 등. 혹은 변동 IP로 하기. * AWS Region 대륙간 연결 * 전용망 구축 없이 AWS 백본망으로 연결이 된다. * 가용영역(Availability Zone) * 가용영역의 실제 위치는 어디에도 공개돼 있지 않다. AWS 직원도 모른다. * 가용영역 시스템 다운시 다른 가용영역이로 이관하는 것은 고객책임이다. * Region 선택 * 법적 요구사항이 데이터 저장을 특정 구가로 제한한다면 (개인정보를 한국에서만 저장해야 한다면) Seoul Region 처럼 한국 리전을 선택해야한다. * 애플리케이션 사용자가 가까운 Region 을 선택한다. 미국이면 Virgina Region 이 좋다. * 리전별로 비용이 다르다. 상파울로는 비싸고(전기세가 비쌈), 서울보다는 버지니아가 더 저렴하다. * AWS API * IAM 사용자로 요청하게 한다. root 로 절대로 하지 않는다. 최소 권한의 원칙에 따라. * 권한 * 자격증명 기반 정책 : 예) 사용자 A가 저 자원을 사용할 수 있어요. * 리소스 기반 정책 : 예) 리소스(S3)에는 어떤 사용자만 접근할 수 있어요. * 모니터링 * 누가 어떤 작업을 얼마나 많이 했나? * [[aws:cloudwatch|AWS CloudWatch]] * aws config * 리소스와 연결된 모든 구성 변경 사항에 대한 세부 정보를 지속적으로 캡처 * 규정 준수 모니터링 및 보안 분석 활성화. public access 하지 말라고 했는데 public 만들었네?, tag 안달았네? * 변경발생시 알림 * Amazon Macie * S3 에 올라간 데이터중 개인정보, 암호화 키 등 민감 데이터 인식해서 알려줌. * 감사 * Cloud Trail 로 행위에 대한 로그 제공. 무료. * 정기적으로 CloudTrail 이벤트 기록을 확인해볼 것. * 암호화 * AWS Key Management Service : 암호화 키를 관리하는 시스템. * 전송중 데이터 보호 * ''https'' * RDS 전송 데이터도 SSL/TLS 암호화 가능. * 보안그룹 및 ENI(EC2 네트워크카드) 설정. * AWS Site-to-Site VPN 사용해서 암호화해서 접속. * AWS Direct Connect 로 암호화해서 접근.