AWS CLI로 도메인 없는 gMSA를 사용한 Amazon ECS Windows 컨테이너
AWS CLI로 도메인 없는 gMSA를 사용한 Amazon ECS Windows 컨테이너
다음 튜토리얼은 AWS CLI로 Active Directory에 접근할 수 있는 자격 증명을 가진 Windows 컨테이너를 실행하는 Amazon ECS 태스크를 만드는 방법을 보여줍니다. 이 글에서는 도메인 없는 gMSA(domainless gMSA)를 사용하는 태스크 생성 과정을 알아봅니다.
출처: 문서
본문
다음 튜토리얼은 AWS CLI로 Active Directory에 접근할 수 있는 자격 증명을 가진 Windows 컨테이너를 실행하는 Amazon ECS 태스크를 만드는 방법을 보여줍니다. 도메인 없는 gMSA를 사용하면 컨테이너 인스턴스가 도메인에 조인되지 않고, 인스턴스의 다른 애플리케이션은 자격 증명을 사용해 도메인에 접근할 수 없으며, 서로 다른 도메인에 조인하는 태스크를 같은 인스턴스에서 실행할 수 있어요.
이 주제는 다음과 같은 단계로 구성됩니다.
- 사전 요구 사항
- 1단계: AD DS(Active Directory Domain Services)에서 gMSA 계정 생성 및 구성
- 2단계: 자격 증명을 Secrets Manager에 업로드
- 3단계: 도메인 없는 gMSA 정보를 포함하도록 CredSpec JSON 수정
- 4단계: CredSpec을 Amazon S3에 업로드
- 5단계: (선택 사항) Amazon ECS 클러스터 생성
- 6단계: 컨테이너 인스턴스용 IAM 역할 생성
- 7단계: 사용자 지정 태스크 실행 역할 생성
- 8단계: Amazon ECS Exec용 태스크 역할 생성
- 9단계: 도메인 없는 gMSA를 사용하는 태스크 정의 등록
- 10단계: Windows 컨테이너 인스턴스를 클러스터에 등록
- 11단계: 컨테이너 인스턴스 확인
- 12단계: Windows 태스크 실행
- 13단계: 컨테이너에 gMSA 자격 증명이 있는지 확인
- 14단계: 정리(Clean up)
- Windows 컨테이너용 Amazon ECS 도메인 없는 gMSA 디버깅
사전 요구 사항 (Prerequisites)
이 튜토리얼은 다음 사전 요구 사항이 완료되었음을 가정합니다.
- Set up to use Amazon ECS의 단계가 완료되었습니다.
- IAM 사용자가 AmazonECS_FullAccess IAM 정책 예시에 지정된 필수 권한을 가지고 있습니다.
- 최신 버전의 AWS CLI가 설치되고 구성되었습니다. AWS CLI 설치 또는 업그레이드에 대한 자세한 내용은 AWS Command Line Interface 설치 문서를 참고하세요.
- 참고: 듀얼 스택(dual-stack) 서비스 엔드포인트를 사용하면 AWS CLI, SDK, Amazon ECS API에서 IPv4와 IPv6 모두를 통해 Amazon ECS와 상호작용할 수 있습니다. 자세한 내용은 Amazon ECS 듀얼 스택 엔드포인트 사용 문서를 참고하세요.
- 컨테이너가 접근할 리소스가 있는 Active Directory 도메인을 설정합니다. Amazon ECS는 다음 설정을 지원합니다:
- Directory Service Active Directory — Directory Service는 Amazon EC2에 호스팅되는 AWS 관리형 Active Directory입니다. 자세한 내용은 AWS Directory Service Administration Guide의 AWS Managed Microsoft AD 시작하기 문서를 참고하세요.
- 온프레미스 Active Directory — Amazon ECS Linux 컨테이너 인스턴스가 도메인에 조인할 수 있는지 확인해야 합니다. 자세한 내용은 AWS Direct Connect 문서를 참고하세요.
- Active Directory 도메인 이름을 확인할 수 있는 VPC와 서브넷이 있습니다.
- 도메인 없는 gMSA와 각 인스턴스를 단일 도메인에 조인하는 방법 중 하나를 선택합니다. 도메인 없는 gMSA를 사용하면 컨테이너 인스턴스가 도메인에 조인되지 않고, 인스턴스의 다른 애플리케이션은 자격 증명을 사용해 도메인에 접근할 수 없으며, 서로 다른 도메인에 조인하는 태스크를 같은 인스턴스에서 실행할 수 있어요.
- 그런 다음 CredSpec 및 (선택적으로) 도메인 없는 gMSA용 Active Directory 사용자 자격 증명에 대한 데이터 스토리지를 선택합니다.
- Amazon ECS는 Active Directory 자격 증명 사양 파일(CredSpec)을 사용합니다. 이 파일에는 gMSA 계정 컨텍스트를 컨테이너로 전파하는 데 사용되는 gMSA 메타데이터가 포함되어 있습니다. CredSpec 파일을 생성한 다음 컨테이너 인스턴스의 운영 체제에 특정한 다음 표의 CredSpec 스토리지 옵션 중 하나에 저장합니다. 도메인 없는 방법을 사용하려면 CredSpec 파일의 선택적 섹션이 컨테이너 인스턴스의 운영 체제에 특정한 다음 표의 도메인 없는 사용자 자격 증명 스토리지 옵션 중 하나에 자격 증명을 지정할 수 있습니다.
| 저장 위치 | Linux | Windows |
|---|---|---|
| Amazon Simple Storage Service | CredSpec | CredSpec |
| AWS Secrets Manager | (도메인 없는) 사용자 자격 증명 | (도메인 없는) 사용자 자격 증명 |
| Amazon EC2 Systems Manager Parameter Store | CredSpec | CredSpec, (도메인 없는) 사용자 자격 증명 |
| 로컬 파일 | 해당 없음 | CredSpec |
- (선택 사항) AWS CloudShell은 자체 EC2 인스턴스를 만들 필요 없이 고객에게 명령줄을 제공하는 도구입니다. 자세한 내용은 AWS CloudShell 사용자 가이드의 AWS CloudShell이란 무엇인가 문서를 참고하세요.
1단계: AD DS(Active Directory Domain Services)에서 gMSA 계정 생성 및 구성 (Step 1: Create and configure the gMSA account on AD DS)
Active Directory 도메인에 gMSA 계정을 만들고 구성합니다.
참고: 이 단계는 두 개의 별도 계정을 만듭니다. 컨테이너의 아이덴티티를 제공하는 그룹 관리 서비스 계정(gMSA, Group Managed Service Account)과 도메인 인증에 사용되는 일반 사용자 계정입니다. 이 계정들은 서로 다른 목적을 제공하므로 서로 다른 이름을 가져야 합니다.
KDS(Key Distribution Service) 루트 키 생성
참고: Directory Service를 사용한다면 이 단계를 건너뛸 수 있습니다. KDS 루트 키와 gMSA 권한은 AWS 관리형 Microsoft AD와 함께 구성됩니다.
도메인에 gMSA 서비스 계정을 아직 만들지 않았다면 먼저 KDS(Key Distribution Service) 루트 키를 생성해야 합니다. KDS는 gMSA 암호를 만들고, 회전하고, 권한 있는 호스트에 릴리스하는 역할을 담당합니다. ccg.exe가 gMSA 자격 증명을 검색해야 할 때 KDS에 연락해 현재 암호를 검색합니다.
KDS 루트 키가 이미 생성되었는지 확인하려면 ActiveDirectory PowerShell 모듈을 사용해 도메인 컨트롤러에서 도메인 관리자 권한으로 다음 PowerShell cmdlet을 실행합니다.
더 알아보기 (Learn more)
- Windows 컨테이너용 도메인 없는 gMSA에 대한 자세한 내용은 AWS 개발자 가이드의 관련 문서를 참고하세요.