안녕하세요. ManVSCloud 김수현입니다.
이전 포스팅 “1-1. [NCP] 네이버 클라우드에서의 보안 – ACCOUNT”에 이어
“1-2. [NCP] 네이버 클라우드에서의 보안 – ACCOUNT” 포스팅입니다.
API 인증키와 Sub Account에 대한 내용으로 오늘도 중요한 계정 보안에 해당되는 내용입니다.
Manage API authentication keys
API 인증키는 Server, Load Balancer, Auto Scaling, Monitoring, Security 등 다양한 기능을 API로 제어가 가능합니다. Access Key를 통해 여러 기능을 API로 제어할 수 있다보니 Key가 유출될 경우 해커가 리소스 등록, 수정, 조회를 자유롭게 할 수 있게되므로 Key를 주기적으로 변경해주어야 겠습니다.
메인 계정의 경우 마이페이지 → 인증키 관리에서 확인할 수 있습니다.
(Sub Account의 API Key도 관리해줍시다. (개인 Sub Account → API Key))

메인 계정의 경우 모든 권한을 갖는 Root, Administrator 같은 계정이라고 볼 수 있습니다.
메인 계정의 API key가 유출될 경우 상당히 크리티컬한 문제로 이어질 수 있기에 Sub Account을 이용하여 API Key를 사용하는 것이 좋겠습니다.
(Access Key와 Secret Key를 GitHub 같은 곳에 떡하니 올려놓는 일은 발생하지 않길바랍니다…)
API에 대한 설명은 가이드가 잘 되어있어 링크로 추가하였으니 참고하면 좋을듯 합니다.

본 페이지에서는 NAVER Cloud Platform API 대한 간략한 설명 및 API 호출하는 방법을 제공합니다.
API는 RESTful API 방식으로 제공되며, XML와 JSON 형식으로 응답합니다. 액션에 따라 파라미터 값을 입력하고 등록, 수정, 삭제, 조회할 수 있으며, 서비스 및 운영 도구 자동화에 활용할 수 있습니다. …
SubAccount

보안 위험으로부터 관리하려면 적절한 통제가 필요합니다.
[Management] 카테고리에 있는 SubAccount를 이용한다면 RBAC(Role-Based Access Control) 즉 역할 기반 접근 통제가 가능합니다.
이 서비스를 이용하여 직무 분리를하고 최소 권한을 줄 것입니다.
* 직무 분리 : 권한 오남용이나 고의적 행위로 인해 발생할 수 있는 잠재적 피해를 줄이기 위해 필요하며 불가피한 이유로 직무 분리가 어려운 경우 별도의 보완 통제가 필요합니다.
* 직무 분리 및 책임 및 최소 권한의 원칙, 직원 보안, 알 필요성의 원칙, 직무 순환, 신의 성실의 원칙이 관리적 통제에 속하며 기술적, 물리적 통제도 존재합니다.
[웨비나] 클라우드 보안 A to Z: 클라우드상 책임 공유 모델 IAM 이해하기에서 나왔던 부분을 간단하게 소개하고 영상 링크를 아래에 추가해두었습니다.
내용이 좋으니 영상을 보시면 이해에 많은 도움될 것입니다.

[Main Account]
Main Account는 Naver Cloud Platform에 가입하게 될 때 사용한 이메일 주소입니다.
Main Account를 통해서만 Sub Account의 사용자를 생성할 수 있으며
테넌트가 독립적으로 접근 가능한 콘솔 도메인을 생성할 수 있습니다.
Naver Cloud Platform 전체 리소스를 관리합니다.
* 테넌트 : 소프트웨어 인스턴스에 대해 공통이 되는 특정 접근 권한을 공유하는 사용자
[Sub Account]
RBAC(Role-Based Access Control) 기능을 통한 권한 관리를 Sub Account를 통해 구현합니다.
주요 직무자를 식별할 수 있도록 naming 규칙을 통해 이용자를 생성하고, 권한을 부여하여 관리할 수 있습니다.
[Group]
동일한 역할을 수행하는 이용자를 그룹화하여 관리합니다.
[Policies]
Policies를 통해 Sub Accounts와 Group에 권한을 부여할 수 있습니다.
위 서비스를 이용하여 아래와 사진과 같이 직무 분리하여 사용할 수 있습니다.

[Main Account Role]
Sub Account 사용자 생성
Sub Account 사용자 권한 부여/회수
Sub Account 장기간 미 접속 계정 관리
미사용 리소스에 대한 관리 제거 삭제
[Security Manager Role]
Sub Account 사용자 권한 부여 검토
사용자/리소스의 생성/삭제/변경의 적정성 검토
보안 서비스의 적용/운영
[Infra Manager Role]
VPC/Server의 생성, 운영 및 변경 관리
ACG/NACL등의 허용/차단 관리
[DB Manager Role]
DB의 생성, 운영 및 변경 관리

추가로 위 영상을 보면 좋을듯하나 영상을 볼 시간이 없으신 분들을 위해
각 리소스 별 네이밍 방법을 아래에 추가했습니다.
리소스 별 네이밍을 잘 해두는 것도 상당히 중요합니다.
저는 네이밍을 설정할 때 아래표와 같이 설정하지는 않지만 나름 규칙적이고 리소스를 찾을 때 구분이 쉽도록 설정해두는 편입니다.
예를 들어 서버를 하나 생성 시 manvscloud-web-prd-kr1와 같이 만드는 것이죠.
어떤 프로젝트인지, 어떤 서비스를 하는 서버인지, 개발/운영, 리전을 나누어 네이밍합니다.
리소스 이름 길이가 제한이 있어 프로젝트 이름을 mvsc와같이 축약하는 방법도 있습니다.
각자만의 방법으로 네이밍을 하더라도 리소스 이름만 봐도 확실히 구분된다면 좋은 네이밍이라 볼 수 있습니다.

Sub Account – Training
생성 실습을 보며 Sub Account를 어떻게 사용할지 고려해보시기 바랍니다.
1. Sub Account가 접속할 수 있는 Link 생성


2. 위에서 생성한 도메인으로 접속할 Sub Account 생성


접근 유형을 Consle 접근, API 접근 선택해줍니다.
Console 접근 설정 시 모든 곳에서 접근 가능 및 지정한 IP 대역에서만 접속 가능 여부를 설정할 수 있습니다.
저는 지정한 IP에서만 접근 가능도록 설정하는 것을 적극적으로 권장드립니다.
IP 지정 이후 [서브 계정 상세]에서 접근 가능 IP대역 조회/변경/추가/삭제가 가능합니다.
또한 강력한 권한을 가진 계정일수록 2차 인증 설정 역시 권장합니다.


Main 계정에서 Sub 계정들을 사진과 같이 관리할 수 있습니다.
일시 정지 및 일시 정지 해지 등이 관리 가능하니 더 이상 사용하지 않는 계정은 방치해두지 말고 삭제해야하며 일시적으로 사용하지 않는 경우 일시 정지하여 계정 사용이 필요 시에만 사용할 수 있도록 운영해야합니다.
3. 정책(Policies) 설정

정책 설정은 이미 만들어진 관리형 정책이 있으며 정책을 생성하여 커스터마이징이 가능합니다.

정책 설정 시 VPC/Classic별로 설정이 가능하며 제품별 정책이 설정가능합니다.
리소스를 지정하여 선택된 리소스에 해당해서만 정책이 적용되도록 설정할 수 있고 전체 선택 후 따로 리소스 지정 여부 선택없이 적용대상을 추가하면 모든 리소스를 대상으로 추가가 됩니다.

지금 실습으로 보여지는 정책을 따라하기보다 실무에서는 요구되는 보안사항에 따라 정책을 설정하여 직무 분리 및 최소 권한의 원칙을 지킵시다.
4. 그룹(Groups) 생성



그룹에는 생성한 서브 계정과 정책을 추가하여 관리가 가능합니다.
web_prd_engieer라는 그룹에 엔지니어 5명의 서브 계정을 생성 및 추가 해주고 해당 그룹이 공통적으로 가져야할 정책을 추가해주면 되겠습니다.
(그룹 하나에 서브 계정 하나로 여러 엔지니어가 함께 사용한다면 책임추적성X)
5. 역할(Roles) 생성

역할에 속한 Server는 자격 증명을 위한 Key를 서버 내 저장하지 않아도 역할을 통해 Naver Cloud 내에 서비스 및 리소스 접근이 가능합니다.
(서버 내 Key 저장을 하지 않아도 되기에 보안 위험에 도움됩니다)

지금까지 Sub Account를 이용한 역할 기반 접근 통제에 대해 알아보고 실습도 해보았습니다.
RBAC에 대해 깊이있게 공부하다가 읽어보게된 PDF 파일이 하나 있는데 내용이 좋아서 해당 링크를 아래에 추가 했습니다.
Personal Comments and Wrap-up

보안학과 졸업 후 정말 오랜만에 보안에 대해서 생각해보는 시간을 갖고 포스팅을 하고 있습니다.
보안학을 배울 때도 자주 들었던 말이지만 취업을 하고 꽤 긴 시간동안 일을 해오면서도 “100% 완벽한 보안은 없다.” 라는 말은 정말 맞는 말이구나 자주 느낍니다.
보안을 따로 배우지 않았음에도 오랜 기간 IT업계에서 일을 하신 분들이라면 다들 공감하실 것입니다. 그리고 무엇보다 피해최소화가 중요하다는 걸…
아마 다음 포스팅은 “[NCP] 네이버 클라우드에서의 보안 – Server”가 예정되어 있습니다.
내용이 길어질 경우 나누어 포스팅 될 수 있으니 참고 부탁드리며 [NCP] 네이버 클라우드에서의 보안 시리즈 사이 다른 포스팅도 작성됩니다.
긴 글 읽어주셔서 감사합니다.


2 Comments
I really like your blog.. very nice colors & theme. Did you make this website
yourself or did you hire someone to do it for you?
Plz reply as I’m looking to construct my own blog and
would like to know where u got this from. thank you
I didn’t create the theme I used myself, I’m using someone else’s theme.
Browse free/paid themes, check the features and designs you need, and pick and use the one you like the most.