안녕하세요, 비즈니스 혁신 파트너 BSG입니다.
AWS 계정을 처음 만들고 나면 뭔가 다 된 것 같은 느낌이 드는데요.
하지만 실제로는 그때부터가 시작입니다.
기본 설정 그대로 방치된 AWS 계정은 해킹의 단골 표적이 됩니다.
- 루트 계정이 탈취되거나
- 아무도 모르게 암호화폐 채굴에 악용되거나
- 고객 데이터가 통째로 외부에 노출되는 사고
모두 처음 설정을 제대로 하지 않아서 발생하는 경우가 많습니다.
이 글에서는 AWS를 처음 시작하는 분들이 계정 개설 직후 반드시 챙겨야 할 보안 설정 10가지를 정리했습니다.
1. 루트 계정 MFA(다중 인증) 설정하기
AWS 계정을 처음 만들 때 사용하는 이메일과 비밀번호가 바로 '루트 계정'입니다.
루트 계정은 AWS의 모든 권한을 가진 최고 관리자 계정이라 탈취되면 계정 전체가 위험해집니다.
가장 먼저 해야 할 일은 루트 계정에 MFA(다중 인증)를 설정하는 것입니다.
Google Authenticator나 AWS 자체 인증 앱을 통해 로그인 시 추가 인증 단계를 추가하면, 비밀번호가 유출되더라도 계정 접근을 막을 수 있습니다.
실천 방법: AWS 콘솔 우측 상단 계정명 클릭 → 보안 자격 증명 → MFA 활성화
2. 루트 계정은 잠그고, IAM 사용자로 일하기
MFA 설정이 끝났다면, 이제 루트 계정은 금고에 넣어두세요.
일상적인 AWS 작업은 IAM(Identity and Access Management) 사용자 계정을 따로 만들어서 해야 합니다.
루트 계정은 청구 설정 변경이나 계정 삭제처럼 정말 특별한 경우에만 사용하는 것이 원칙입니다.
왜 중요한가요? 루트 계정은 권한 제한이 불가능합니다.
IAM 사용자는 필요한 권한만 부여할 수 있어 사고 범위를 최소화할 수 있습니다.
3. IAM 사용자에게도 MFA 적용하기
루트 계정뿐 아니라 IAM 사용자 계정에도 MFA를 설정해야 합니다.
특히 관리자 권한을 가진 계정은 필수입니다.
IAM 정책을 통해 MFA 미설정 사용자의 콘솔 접근을 차단하는 것도 좋은 방법입니다.
4. 최소 권한 원칙(Least Privilege) 적용하기
IAM 사용자나 역할을 만들 때 "일단 Administrator 권한 줘버리자"는 생각은 위험합니다.
각 사용자와 서비스에는 꼭 필요한 최소한의 권한만 부여해야 합니다.
AWS에서 제공하는 관리형 정책(Managed Policy)을 활용하거나, 직접 커스텀 정책을 작성해 딱 맞는 권한만 허용하세요.
자주 하는 실수: S3 읽기만 필요한 Lambda 함수에 AmazonS3 Full Access 정책을 붙이는 경우가 많습니다.
AmazonS3 Read Only Access로 충분합니다.
5. AWS CloudTrail 활성화하기
CloudTrail은 AWS 계정에서 발생하는 모든 API 호출을 기록하는 서비스입니다.
누가 언제 어떤 리소스를 만들고 삭제했는지 추적할 수 있습니다.
보안 사고가 발생했을 때 원인을 파악하는 데 필수적이고, 규정 준수 감사에도 활용됩니다.
모든 리전(Region)에 CloudTrail을 활성화하고, 로그는 S3 버킷에 안전하게 보관하세요.
6. S3 버킷 퍼블릭 접근 차단하기
AWS에서 가장 흔한 데이터 유출 사고 원인 중 하나가 S3 버킷의 퍼블릭 공개입니다.
계정 수준에서 'S3 퍼블릭 접근 차단(Block Public Access)' 설정을 활성화하면 실수로 버킷을 공개 상태로 만드는 것을 방지할 수 있습니다.
각 버킷 단위로도 설정이 가능하니, 신규 버킷 생성 시 반드시 확인하세요.
확인 방법: S3 콘솔 → 계정의 퍼블릭 액세스 차단 설정 → 4가지 항목 모두 활성화 권장
7. 보안 그룹(Security Group) 규칙 꼼꼼히 설정하기
EC2 인스턴스를 만들 때 보안 그룹은 방화벽 역할을 합니다.
0.0.0.0/0(모든 IP)에서 SSH(22번 포트)나 RDP(3389번 포트)를 허용하는 것은 절대 금물입니다.
접근이 필요한 IP 주소만 허용하고, 불필요한 포트는 모두 닫아두세요. 정기적으로 사용하지 않는 규칙을 점검하고 정리하는 습관도 중요합니다.
8. AWS Budgets로 이상 비용 알림 설정하기
보안 사고는 비용 급증으로 먼저 나타나는 경우가 많습니다.
해커가 계정을 탈취해 GPU 서버를 수백 대 띄우는 사태가 실제로 빈번히 발생합니다.
AWS Budgets를 활용해 월 예산을 설정하고, 예산의 80%에 도달했을 때 이메일로 알림을 받도록 설정하세요.
예기치 않은 청구를 조기에 감지할 수 있습니다.
추가 팁: AWS Cost Anomaly Detection도 함께 활성화하면 비정상적인 비용 급증을 자동으로 감지해 알려줍니다.
9. AWS Config와 Security Hub 활성화하기
AWS Config는 리소스 설정의 변경 이력을 추적하고, 미리 정해진 보안 규칙에 위반되는 설정이 있으면 알려줍니다.
AWS Security Hub는 여러 보안 서비스의 결과를 한 곳에서 확인할 수 있는 통합 대시보드입니다.
두 서비스를 함께 활성화하면 계정의 보안 상태를 한눈에 파악하고 자동으로 모니터링할 수 있습니다.
10. 액세스 키(Access Key) 관리 철저히 하기
AWS CLI나 SDK 사용을 위해 발급받는 액세스 키는 비밀번호와 동일하게 취급해야 합니다.
GitHub 같은 공개 저장소에 절대 올리지 마세요.
코드에 직접 하드코딩하는 것도 금물입니다.
액세스 키 대신 IAM 역할(Role)을 활용하는 것이 훨씬 안전하고, 만약 키를 발급했다면 90일 주기로 교체하고 사용하지 않는 키는 즉시 비활성화하세요.
GitHub 실수 대처법: 실수로 GitHub에 키를 올렸다면, 즉시 AWS 콘솔에서 해당 키를 비활성화하고 새 키를 발급받으세요.
커밋 이력에서 삭제해도 이미 노출된 것으로 간주해야 합니다.
마치며
AWS 보안은 '한 번 설정하고 끝'이 아닙니다.
처음에 기초를 탄탄하게 잡아두고, 주기적으로 점검하는 습관이 중요합니다.
위의 10가지 설정만 제대로 해두어도 대부분의 일반적인 보안 위협을 상당히 줄일 수 있습니다.
AWS 도입이나 클라우드 보안 강화에 대해 더 자세한 도움이 필요하시다면, BSG Partners에 문의해 주세요.
전문 컨설턴트가 귀사의 환경에 맞는 최적의 보안 전략을 함께 만들어 드립니다.
출처 : AWS 공식 문서 및 AWS Well-Architected Framework 보안 원칙 (https://docs.aws.amazon.com/ko_kr/)
기획 : 도예원