AS-IS
ISMS 대응 전 기존 어드민 페이지 접근하는 순서는 다음과 같습니다.
- 유저가 도메인 접근 시 route 53을 접근한다.
- route53에 연결된 s3로 접속한다.
위와 같은 방식으로는 외부의 누구나 어드민 url 혹은 s3 url 만 알 수 있다면 접근할 수 있어 보안적으로 이슈가 발생할 수 있었습니다.
이 부분을 해결하고자 하였습니다.
TO-BE
위와 같이 어디서나 접근이 가능한 보안 문제를 해결하고자 다음과 같이 구성하였습니다.
- Public Subnet과 Private Subnet을 설정한다.(10.0.0.0/16)
- Private S3를 위한 VPC Endpoint를 설정한다.
- ECS Fargate에 NGINX를 사용하여 S3 웹 호스팅으로 Foward Proxy를 설정한다.
Private S3 Bucket Policy 설정
{
"Version": "2008-10-15",
"Id": "PolicyForPrivateContent",
"Statement": [
{
"Sid": "Access-to-specific-VPCE-only",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::static-s3/*",
"Condition": {
"StringEquals": {
"aws:sourceVpce": "vpce-0dlfksass33d"
}
}
}
]
}
NGINX 설정
location / {
rewrite ^ /static-s3/index.html break;
proxy_pass https://s3.ap-northeast-2.amazonaws.com;
}
VPC망에 접근 가능한 허용된 ip만 접근이 가능하도록 설정하였습니다.
S3 또한 Public 형태가 아닌 Private하게 허용된 VPC망에서만 접근이 가능하도록 변경하였습니다.
ISMS를 대응하기 위하여 어드민 페이지를 보안 가이드에 맞게 작업한 방식을 해결한 방식에 대하여 공유해보았습니다.