- 우당탕탕 Cloud 구축과 운영/아키텍트 방법론

[Cloud 인프라 아키텍트 방법론] AWS 보안 강화를 위한 방법 (Access Key 보안)

오돌오돌 오돌뼈 2022. 12. 29. 19:17
반응형

 어떤 인프라 아키텍처를 쓰던 가장 중요한 것을 꼽자면 그건 바로 보안이다. CSP는 Onpremise와 달리 자원이 나에게 있지 않다. 물리적인 부분의 보안은 우리가 신경쓸 수 있는 영역이 아니다. 각 CSP사에서 보장을 할 것이니 이 부분은 제외하고 우리가 신경쓸 수 있는 보안 활동을 확실하게 수행해야한다. 특히 가장 사고가 많이 일어나고 해킹의 원인이 되는 부분은 계정과 Access Key이다.

- 보안 사고 발생시 영향도 최악의 영역 Access Key

 계정의 유출도 심각하지만, 계정은 우리가 흔히 비밀번호를 숨기려고 노력을 많이한다. 하지만 Access Key는 외울 수 없어서인지 생각보다 쉽게 유출시키고 있다. Access Key도 계정과 마찬가지로 알게되면 그 Key가 가지고 있는 모든 권한을 가지고 사용할 수가 있다. 임의로 엄청난 비용의 자원을 생성할 수도, 내가 가진 모든 자원을 복제하여 소유할 수도 있다. 심지어 완전 삭제도 가능하다.(이렇게 삭제된 경우 AWS에서도 복원하기가 어렵다.)

 그렇다면 이 소중한 Access Key를 어떻게 지켜야 할까?

 

- Access Key보안의 5가지 방법

AWS Access Key의 보안을 강화할 수 있는 5가지 방법이 있다.

1) 일반 계정과 Access Key의 분리

 AWS IAM에서 계정을 생성할 때, 두 가지 방법으로 생성이 가능하다. 그건 바로 일반 계정과 Programming방식 계정이다.일반계정은 우리가 흔히 사용하는 ID/Password방식의 계정이고, Programming방식 계정이 바로 Access Key만 사용하기 위한 Access Key 전용 계정이다. 일반 계정에서 Access Key를 만들지 말자. Access이유는 다음과 같다.

 보통 우리가 Access Key를 사용하는 이유는 API를 사용하기 위함이다. 만약에 일반계정에서 Access Key를 사용하다가 일반 계정이 유출되면 일반 계정의 권한 뿐만 아니라 해당 API까지 중단되고 유출까지 발생할 수 있는 것이다. 

 계란을 한 바구니에 담지말라는 원칙은 여기서도 동일한 것이다.

 

2) MFA 적용

 MFA는 Multi-Factor Authentication으로 계정/패스워드, Access Key기준에서는 Key값외에 휴대전화나 인증 App으로 인증을 받아 사용하는 것이다. 물론 API를 사용할 때, MFA까지 사용하려면 고쳐야할 소스, 개발해야하는 양이 늘어나는 건 맞다. 하지만 MFA를 거는 순간, 우리 Access Key보안의 방화벽이 하나 더 생기는 것이다. 아마 이 MFA까지 걸린 Access Key를 뚫는 건 정말 쉽지 않은 일일 것이다.

3) Access Key IP Restriction 적용

 Access Key에 지정된 IP만 접근하도록 Policy 설정해두자. Access Key의 용도는 일반적으로 API이기 때문에 보통은 일정한 IP에서 접근한다. 지정한 IP에서만 접근하도록 설정해 둔다면 해킹을 당하더라도 특정 IP가 아니면 들어올 수 없기 떄문에 공격을 당하지 않을 가능성이 기하급수적으로 늘어날 것이다. 접근하는 IP가 유동적인 AWS IP라면 그에 따른 옵션도 AWS에서 제공하기 때문에 걱정하지말자 Access Key에 IP  Restriction하는 Policy를 만드는 방법은 아래를 참고하자.

https://aws.amazon.com/ko/premiumsupport/knowledge-center/iam-restrict-calls-ip-addresses/

4) Access Key Rotation

 일반적인 웹사이트에서는 Password는 보통 3개월에 한번씩 변경요청을 한다. Access Key도 마찬가지이다. 보안사고 가능성은 흘러가는 시간과 정비례한다. 이 가능성을 줄이기 위해서는 지속적으로 변경을 해주어야한다. 물론 굉장히 귀찮은 일임은 맞다. 하지만 귀찮다고 보안을 약화시킬 이유는 더더욱 없다.

5) 권한 축소

 정말 위의 4가지가 모두 뚫렸다고 생각해보자. 마지막 보루는 권한을 축소하는 것이다. Access Key에는 필요한 권한만 부여하고, Admin권한은 정말 긴급상황에서만 부여하도록 하자. 권한 제어는 마지노선이다.

반응형