[IAM] Azure IAM 18개의 운영 규칙 - 18 pillars of Azure IAM Governance

AD
작성자
Roronoa
작성일
2021-09-09 21:56
조회
2312
Azure IAM (Identity and Access Management)
azure

 

ID 액세스 관리(IAM)는 Azure 구독에서 역할 기반 액세스 제어 시스템(RBAC)이라고 부릅니다. 기본적으로 구독, “리소스 그룹” 또는 개별 리소스에 대한 특정 역할을 사용자에게 부여할 수 있습니다.

Azure Active Directory(AAD)는 보다 일반적인 ID 관리 솔루션입니다. 이를 통해 사용자 및 응용 프로그램, 해당 응용 프로그램에 대한 사용자 액세스 등을 관리할 수 있습니다.

논리적으로 Azure 구독은 하나의 Azure AD 내에 존재합니다. 그러나 Azure AD에 사용자 계정이 있다고 해서 Azure 구독에 접속할 수 있는 것은 아닙니다. 사용자가 구독에 할당된 AAD의 구성원(또는 초대된 게스트 사용자) 이어야 하는 것 외에도 RBAC(IAM) 시스템을 사용하여 사용자의 역할을 할당해야 합니다.

Azure IAM 은 Azure Active Directory(AAD) 에서 유저와 그룹을 생성해서 이메일로 생성 가능하며 초대도 가능합니다.

Azure Active Directory는 일반적으로 기업에서 사용하는 온프레미스 AD(Active Directory)와 별개의 제품이며 이름이 비슷하다고 해서 같은 제품이 아닙니다. 간단히 표현 하자면 Azure에서 사용하기 위한 온프레미스 AD(Active Directory) 로써 다양한 기능이 있으며 온프레미스 AD(Active Directory)의 기능중에 Azure 필요한 기능도 있고 온프레미스 AD(Active Directory)와 연동하는 기능 등이 있습니다. 쉽게 말해서 기존의 Microsoft의Active Directory의 Cloud 에 최적화된 축소판 Active Directory가 Azure Active Directory 이며 이는 기본 원판은온프레미스 AD(Active Directory) 이므로 많은 기능이 온프레미스 AD(Active Directory)에서 파생되어 있다고 생각 하시면 쉬우며 이는 다른 제품이라고 생각 하시면 됩니다. 

온프레미스 AD(Active Directory)의 경우 대부분 엔터프라이즈에서 많이 사용되며 엔터프라이즈에 잘 맞게 되어 있습니다. 그러나 Azure Active Directory는 축소판처럼 사용 가능하므로 엔터프라이즈가 아닌 매우 작은 기업도 사용하는데 전혀 문제가 없습니다. 일단 비용이 Azure Active Directory는 비용이 무료이며 특별한 기능 (각 유저에게 커스텀 역할 주기) 을 사용하려면 Azure Active Directory P1 을 사용해야하며 이는 유료입니다. 그러나 요즘의 경우 대부분 Office 365를 대부분의 기업은 전부 사용하기 때문에 Office 365 라이센스와 연동되어서 Azure Active Directory 를 사용한다면 추가 비용 없이 사용도 가능합니다. 물론 각 유저에 커스텀 역할을 주는 기능을 Azure Active Directory에서 사용하지 않고 다른 방법으로 커스텀 역활을 IAM에서 RBAC으로 직접 주는 방법으로 우회하면 비용을 추가로 사용하지 않고도 커스텀 롤을 줄 수 있습니다.

 

Azure IAM 운영 관리 법령 준수 Compliance 

  1. IAM 유저는 Azure Active Directory(AAD)에서  Naming Convention 으로 생성

  2. 비밀번호 관리는 유저가 직접 관리

  3. 모든 유저는 모두 MFA를 강제로 사용

  4. 관리자는 권한과 대한 인벤토리 관리 필요

  5. 관리자는 액세스 와 권한에 대한 플로우 차트 관리 필요

  6. 긴급하게 액세스 권한을 줄수 있는 권한 관리 유저 필요

  7. 자격증명 권한을 모니터링 하고 권한을 축소

  8. 액세스 제한을 두며 가드레일을 정의

  9. 임시 권한은 수명 주기에 따라 권한 액세스 관리

  10. 퍼블릭 및 교차 계정 액세스 분석 

  11. 공유 리소스(허브 부분)의 구독 당 소비 관리 및 모니터링 

  12. IAM Portal 권한은 관리자 만 관리 

  13. 관리자 계정이 Service Principal 생성하며 관리

  14. 모든 Service Principal는 자주 변경 하며 지속적 관리 필요

  15. CLI와 포털 동시에 사용하는 사람은 Service Principal 이 아닌 MFA 로 접속

  16. Service Principal은 최소로 사용

  17. IAM 은 최소권한 원칙이 기본 디폴트

  18. 유저에 권한을 주지 않고 Group 으로 권한을 부여

  19. ARM Template으로 IAM을 Infrastructure as Code 로 관리


 

1.IAM 유저는 Azure Active Directory(AAD)에서  Naming Convention 으로 생성

IAM 유저는 Naming Convention 에 맞게 유저 생성 및 관리합니다. 

예제) 프로젝트 이름의 첫 문자이름과 00x 이름으로 이름 구분 projectname00x@email

예제) 내부 직원은 projectname00x-FirstNameLastname@email

예제) 외부 직원은projectname00x-GroupName00x@email

예제) 그룹 단위 유저는 projectname00x-GroupName00x@email

2.비밀번호 관리는 유저가 직접 관리

유저의 비밀번호는 초기 제공된 비밀번호가 강제적으로 패스워드 변경해야 로그인 가능하도록 패스워드

변경 권한을 제공합니다. 초기 비밀번호는 랜덤 생성 제공하며 유저가 주기적으로 변경하도록 3개월에 한번

변경하도록 비밀번호 리셋을 진행 합니다.

3.모든 유저는 모두 MFA를 강제로 사용

모든 유저는 Multi-Factor-Authentication (다중인증) 장치를 사용해서 접속하도록 강제해서 보안을 강화 합니다.

4.관리자는 액세스 정의에 대한 인벤토리 관리

변경시 모든 액세스 정의에 대한 관리를 엑셀 차트를 사용하며 항상 업데이트 합니다.
azure

5.관리자는 액세스 정의와 권한에 대한 플로우 차트 관리

주기적으로 액세스 정의와 권한에 대한 플로우 다이어그램을 업데이트 합니다
azure

6.긴급하게 액세스 권한을 줄수 있는 권한 관리 

자동화된 프로세스에는 대부분 장기 자격 증명이 사용되므로 긴급하게 테스트 권한을 줄 수 있는 유저에 장기

자격 증명을  미리 생성 해서 빠른 대처를 합니다.

7.자격증명 권한을 모니터링 하고 권한을 축소

자격증명 권한을 지속적으로 모니터링 하고 주기적으로 권한을 축소하여 가이드하며  사용하지 않는 자격 증명 및

권한은 삭제합니다. 정기적으로 주 1회 모니터링 후 결과 반영합니다.

8.액세스 제한을 두며 가드레일을 정의

조직의 모든 자격 증명에 대한 액세스를 제한하는 공통 제어를 설정합니다. 예를 들어 특정 AWS 리전에 대한 액세스를

제한하거나 중앙 보안 팀에 사용되는 IAM 역할과 같은 공통 리소스를 운영자가 삭제하지 못하게 할 수 있습니다.

9.임시 권한은 수명 주기에 따라 권한 액세스 관리

임시 권한을 사용할때는 수명 주기를 명시하며 수명 주기는 자동 관리 됩니다. MFA 수명주기를 사용 하지 않고는 CLI

명령어는 권한 불가 입니다.

10.퍼블릭 및 교차 계정 액세스 분석 

외부 유저 나 퍼블릭 유저의 주기적 액세스 분석이 필요하며 권한 관리 합니다. 정기적으로 주 1회 모니터링 후 결과 반영합니다.

11.공유 리소스(허브 부분)의 소비 관리 및 모니터링 

공유 리소스가 있는 부분의 권한은 관리자만 권한을 가져야 하며 책임을 가집니다.

예제)허브 부분의 리소스

12.IAM Portal 권한은 관리자 만 관리 

비밀번호 변경 부분을 제외한 IAM Portal 권한은 관리자만 관리 합니다.

13.관리자 계정은 Access Key를 생성하지 않음

관리자 계정은 Access Key 를 생성 하지 않으며 사용하지 않습니다.

14.Root 계정은 Access Key 를 생성 하지 않음

Root 계정은 Access Key 를 생성 하지 않으며 사용하지 않습니다.

15.모든 Access Key는 3개월에 한번 변경

장기 자격 증명 Access Key는 3개월 단위로 변경을 진행합니다. 

16.IAM 은 최소권한 원칙이 기본 디폴트

유저 권한 관리는 최소 권한 원칙을 디폴트로 유지하며 주기적인 권한 축소 합니다.

17.유저에 권한을 주지 않고 Group 으로 권한을 부여.

유저 각자에 권한을 주면 권한 관리가 어려우므로 그룹으로 권한 관리 합니다.

 

18.장기 자격 증명 보단 임시 자격 증명 사용 

자동화를 위해서 코드 내부에 장기 자격 증명을 사용한다면 MFA 없이 사용 가능하나 

최소한 사용을 권장합니다.

19.ARM Template으로 IAM을 Infrastructure as Code 로 관리

 

결론

현재는 Azure Active Directory 부분은 ARM Template으로 유저 생성 관리는 불가능합니다.  MS Graph  로 관리는 가능하나  ARM Templete이 Infrastructure As Code 로써 이 부분이 지원되지 않는 것은 아쉽습니다. 만약  Infrastructure As Code로 관리 하려면 IAM 만 가능하므로 이점을 염두 하셔야 합니다