Cloud/Azure

Azure Fundamental : 구독 / 계정 / 인증 / 권한 / 리소스 그룹 / AAD

DASEO 2022. 2. 15. 20:30

키워드 : 구독, 계정, 인증, 권한, 리소스 그룹, Azure AD

구독(Subscription)

 

Youtube 채널의 '구독'을 연상할 수 있지만, 이와 다른 의미로 사용된다.

Azure에서의 구독은 계정에서의 비용 및 관리의 경계이며, 리소스를 담는 컨테이너이다.

- 1 계정(Account) : N 구독(Subscription)

- 계정에서의 구독 개수가 많아지면 구독명을 변경해주거나, ID를 활용하여 관리하는 게 좋다.

 

 

  • 구독 이름은 displayname이며, 실제로 구독을 구분하기 위한 값은 구독 ID이다.
  • 구독 취소 시 해당 구독에서 사용하던 모든 리소스를 즉시 반납/반환하게 된다.
    • 보존기간(30~60일)이 지나면 완전히 삭제된다.
  • 미리 보기(Preview)
    • Private preview, Public preview 등 다양한 형태로 제공되고 있다.
    • 안전성/보존성이 보장되지 않는 임시 기능(beta형태)이기 때문에 실무에서는 추천하지 않는다.
  • 구독 이동
    • 계약서상의 이유로 구독이 변경되는 경우
    • 리소스 이동이 필요한 경우
      • 동일 테넌트에서 다른 구독으로의 이동만 가능
      • 다른 테넌트의 경우 두 테넌트를 합친 후 이동
    • 파트너가 변경되는 경우

※ 구독/리소스 이동은 사전검토가 필요한 작업이며, 서비스 영향도 및 부가적으로 발생하는 side effect에 대한 철저한 검증이 필요한 작업이다.

Azure Portal상의 Subscription 화면

 

 


구독 디자인 장단점

구독 형태 Single Multi
특징 - 단일 구독(Subscription)으로 관리
- 각 리소스의 역할에 따라 Zone을 구분하여
  리소스 그룹으로 구분하여 배치
- 공통, 서비스, 개발 Subscription을 구분하여 관리
- Management Group으로 전체 관리
장점 - 쉬운 비용 관리
  (리소스 비용 분리할 필요 없는 경우)
- 리소스 그룹, Tag를 통한 비용 구분
- 중앙 운영 방식
- 공통의 인프라를 공유하여 사용(ex, Networking)
- 리소스 사용단위가 짧은 경우 생성/삭제가 용이함
- 구독 별 단위로 청구 구분 가능( 상세 구분: Tag)
- 구독 당 리소스 제한 및 제약 조건 극복
- 구독 단위로 RBAC 가능
- 개발 및 프로젝트 팀의 민첩성 증가
단점 - 개발 및 프로젝트 팀을 위한 민첩성 저하됨
- 구독별 리소스 할당량에 제한이 있음
  (대규모 조직의 경우 불리함)
- 리소스 비용(in/outbound)이 한번에 부과되기 때문에 세부 사용량 측정이 어려움
- 세분화된 권한 관리 모델(RBAC)이 필요함
- 리소스 복잡도 증가
(Network: Network circuits, IP Address 등)
관리: Monitoring, patching, Storage, etc...
- 복잡도 증가에 따른 비용 증가 (특히, 네트워크 비용)
- 같은 리소스에 대한 중복 배포 및 관리 필요
디자인
예시

 

Azure 관리 그룹(Management Group)

구독의 개수가 많아질 경우 효율적으로 관리할 필요가 있다.

여러 구독에서 각각의 액세스, 정책 및 규정 준수를 관리하기 위한 서비스이며, Azure 리소스를 계층적으로 정렬하여 분류할 수 있다.

관리 그룹에 속하는 모든 구독은 관리 그룹에 적용되는 조건(RBAC, Policy)을 자동으로 상속한다.

 

인증 
- 리소스에 대한 액세스 사용자/서비스를 식별한다.
- 합법적인 액세스 자격 증명 요청
- 보안 ID 및 액세스 제어 원칙 기반 마련

Identity

  • 조직 계정 : 구독을 Azure Active Directory Tenant에 연결해줌
  • Microsoft 계정 : 기존의 조직 계정으로 e-mail과 연결하지 않고 만든 계정 (outlook.com / Hotmail.com 등)

 

권한 부여
- 인증된 사용자/서비스의 액세스 수준 결정
- 액세스 할 수 있는 데이터를 통해 수행할 수 있는 작업 정의

권한 부여 기본 구조 / RBAC을 통한 권한(역할) 할당

RBAC (역할 기반 접근제어: Role Base Access Control)
- 사용자, 그룹, 서비스 주체에게 역할을 할당할 수 있다.
- 기본적으로 제공되는 역할 외에도 사용자 지정 권한을 생성하여 할당할 수 있다.

 

Resource Group
Azure의 각 종 리소스를 담는 논리적인 컨테이너
※ 같은 생명 주기를 가지는 리소스끼리 같은 리소스 그룹에 배치하여 효율성 극대화
  • 모든 리소스는 하나의 리소스 그룹에만 속할 수 있다.
  • 리소스 그룹 안에 서로 지역(region)이 다른 리소스도 포함될 수 있다.
  • 리소스 그룹에 다른 리소스 그룹을 포함시킬 수 없다.
  • 리소스의 여러 상황을 고려하여 디자인한다.
    • 리소스 유형이 식별되도록 네이밍 한다.
    • 리소스 그룹 단위로 수명 주기를 관리한다.
    • 애플리케이션의 역할별로 구분된 리소스 그룹에 RBAC을 적용하여 리소스에 접근 권한을 통제한다.
  • ARM(Azure Resource Manager) 템플릿을 통해 리소스 및 그룹을 효율적으로 생성/배포할 수 있다.

 

Azure Active Directory (AAD)
: 사용자와 그룹의 Identity 및 액세스 관리 클라우드 기반 솔루션
 (Windows Active Directory 도메인 서비스와 다른 서비스)
=> Azure상에서 서비스/애플리케이션에 누군가 액세스 할 때 권한과 계정을 검증한다고 보면 된다.

Azure AD의 제공 서비스

  • 인증
  • On-Premises AD를 클라우드로 확장
  • 클라우드 Application 간 SSO
  • 다단계 인증(MFA)
  • 응용 프로그래 관리
  • B2B 및 B2C의 ID 서비스

 

 

Azure AD identity model

cloud / cloud<-on-prem / cloud <-> on-prem

테넌트(Tenant)
Azure AD에서 테넌트는 조직과 같은 의미로 사용된다.
조직이 Microsoft 클라우드 서비스(Azure , MS 365등)를 등록할 때 부여받고 소유하는 Azure AD 서비스의 전용 인스턴스가 테넌트이다.

A기업이 Azure service 사용시 A기업 전용 AAD를 부여받고 이 인스턴스가 Tenant임

  • 각 Azure AD 디렉터리는 고유하며, 다른 Azure AD 디렉터리와 구별된다.
    즉, 한 Azure AD 디렉터리의 사용자나 관리자는 실수/악의적으로 다른 디렉터리에 액세스 할 수 없다.
  • 한 테넌트는 여러 개의 구독을 가질 수 있음
  • 하나의 구독이 여러개의 테넌트를 가질 수 없음

 

Azure portal에서 테넌트 전환시 나타나는 화면

  • 각 Azure AD 디렉터리는 고유하며, 다른 Azure AD 디렉터리와 구별된다.
    즉, 한 Azure AD 디렉터리의 사용자나 관리자는 실수/악의적으로 다른 디렉터리에 액세스 할 수 없다.
  • 한 테넌트는 여러개의 구독을 가질 수 있음
  • 하나의 구독이 여러개의 테넌트를 가질 수 없음

 

Azure AD Connect
Hybrid ID 목표를 충족하고 달성하도록 설계된 on-premises Microsoft Application

[제공 기능]

  • 암호 해시 동기화 (Pssword hash sync)
  • 통과 인증 (Passthrough Authentication)
  • 페더레이션 통합
    : Azure AD Connect의 선택적 부분이며 온-프레미스 AD FS 인프라를 사용하여 Hybird 환경을 구성하는 데 사용
  • 동기화