Azure Fundamental : 구독 / 계정 / 인증 / 권한 / 리소스 그룹 / AAD
키워드 : 구독, 계정, 인증, 권한, 리소스 그룹, Azure AD
구독(Subscription)
Youtube 채널의 '구독'을 연상할 수 있지만, 이와 다른 의미로 사용된다.
Azure에서의 구독은 계정에서의 비용 및 관리의 경계이며, 리소스를 담는 컨테이너이다.
- 1 계정(Account) : N 구독(Subscription)
- 계정에서의 구독 개수가 많아지면 구독명을 변경해주거나, ID를 활용하여 관리하는 게 좋다.
- 구독 이름은 displayname이며, 실제로 구독을 구분하기 위한 값은 구독 ID이다.
- 구독 취소 시 해당 구독에서 사용하던 모든 리소스를 즉시 반납/반환하게 된다.
- 보존기간(30~60일)이 지나면 완전히 삭제된다.
- 미리 보기(Preview)
- Private preview, Public preview 등 다양한 형태로 제공되고 있다.
- 안전성/보존성이 보장되지 않는 임시 기능(beta형태)이기 때문에 실무에서는 추천하지 않는다.
- 구독 이동
- 계약서상의 이유로 구독이 변경되는 경우
- 리소스 이동이 필요한 경우
- 동일 테넌트에서 다른 구독으로의 이동만 가능
- 다른 테넌트의 경우 두 테넌트를 합친 후 이동
- 파트너가 변경되는 경우
※ 구독/리소스 이동은 사전검토가 필요한 작업이며, 서비스 영향도 및 부가적으로 발생하는 side effect에 대한 철저한 검증이 필요한 작업이다.
구독 디자인 장단점
구독 형태 | 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 (역할 기반 접근제어: 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
테넌트(Tenant)
Azure AD에서 테넌트는 조직과 같은 의미로 사용된다.
조직이 Microsoft 클라우드 서비스(Azure , MS 365등)를 등록할 때 부여받고 소유하는 Azure AD 서비스의 전용 인스턴스가 테넌트이다.
- 각 Azure AD 디렉터리는 고유하며, 다른 Azure AD 디렉터리와 구별된다.
즉, 한 Azure AD 디렉터리의 사용자나 관리자는 실수/악의적으로 다른 디렉터리에 액세스 할 수 없다. - 한 테넌트는 여러 개의 구독을 가질 수 있음
- 하나의 구독이 여러개의 테넌트를 가질 수 없음
- 각 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 환경을 구성하는 데 사용 - 동기화