컨테이너화된 Windows 워크로드 구현
Contoso는 Windows 및 Linux 기반 워크로드에 대한 ID 공급자로 AD DS를 사용하며, 기본 인증 프로토콜은 Kerberos입니다. 정보 보안 팀은 Azure Stack HCI의 AKS에서 호스트하는 컨테이너화된 워크로드를 Contoso의 AD DS 환경과 통합할 옵션을 조사하도록 요청했습니다. 여러분은 Windows 기반 노드 및 컨테이너를 Kubernetes 클러스터에 배포하려 한다는 점을 고려하여, 이러한 통합이 가능한 범위를 확인하고자 합니다.
Azure Stack HCI의 AKS 내 Windows 컨테이너를 AD DS와 통합
일부 시나리오에서는 Kubernetes Pod에서 실행되는 컨테이너화된 Windows 기반 애플리케이션이 AD DS 보호 리소스에 액세스해야 할 수 있습니다. 이러한 기능을 사용하려면 AD DS 도메인 기반 ID를 사용하여 인증 및 권한 부여 작업을 성공적으로 완료해야 합니다. 이 ID를 구현하기 위해 gMSA(그룹 관리 서비스 계정)를 사용할 수 있습니다.
gMSA는 자체 인증이 가능해야 하는 기존 Windows 서비스 및 애플리케이션의 ID 관리 방법과 비교했을 때 자동 암호 변경, 간소화된 설정 및 유지 관리, 위임된 관리에 대한 지원 등 여러 이점을 제공합니다.
Pod가 gMSA를 인증에 사용할 수 있도록 하려면 AD DS 도메인에 Pod를 호스트할 모든 Windows Server 기반 Kubernetes 작업자 노드를 조인합니다. SSH(Secure Shell)를 통해 각 노드에 연결한 다음 조인 스위치로 netdom.exe 명령줄 유틸리티를 실행하여 도메인 조인을 수행합니다.
프로세스의 나머지 부분은 Windows Server 작업자 노드가 포함되는 모든 Kubernetes 클러스터에서와 동일하며, 다음과 같은 상위 수준 단계가 있습니다.
- AD DS에서 gMSA를 프로비전하고 Windows Server 노드에 할당합니다.
- AD DS gMSA(GMSACredentialSpec)를 나타내는 사용자 지정 Kubernetes 리소스 종류를 정의합니다.
- Pod 및 컨테이너에 대한 GMSACredentialSpec 참조를 자동으로 채우고 유효성을 검사하는 웹후크 기반 메커니즘을 구성합니다.
- GMSACredentialSpec 리소스 종류에 따라 사용자 지정 리소스를 만듭니다.
- GMSACredentialSpec 리소스에 대해 RBAC를 사용하도록 클러스터 역할을 정의합니다.
- AD DS gMSA에 역할을 할당하여 해당 GMSACredentialSpec 리소스의 사용 권한을 부여합니다.
- AD DS 인증에 사용할 Pod의 정의에 GMSACredentialSpec 리소스에 대한 참조를 포함합니다.
참고
gMSA 지원을 사용 설정하려면 Kubernetes 클러스터의 이름이 3자를 초과해서는 안 됩니다. 이러한 제약 조건의 이유는 도메인 조인 컴퓨터 이름의 자수가 15자로 제한되기 때문입니다.