AD Connector를 사용하여 Linux EC2 인스턴스를 Active Directory에 원활하게 연결 - AWS Directory Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AD Connector를 사용하여 Linux EC2 인스턴스를 Active Directory에 원활하게 연결

이 절차는 Linux EC2 인스턴스를 관리형 AWS Microsoft AD 디렉터리에 원활하게 연결합니다.

다음과 같은 Linux 인스턴스 배포판과 버전이 지원됩니다.

  • Amazon Linux AMI 2018.03.0

  • Amazon Linux 2(64비트 x86)

  • Red Hat Enterprise Linux 8(HVM)(64비트 x86)

  • Ubuntu Server 18.04 LTS 및 Ubuntu Server 16.04 LTS

  • CentOS 7 x86-64

  • SUSE Linux Enterprise Server 15 SP1

참고

Ubuntu 14 및 Red Hat Enterprise Linux 7 이전의 배포판은 원활한 도메인 조인 기능을 지원하지 않습니다.

필수 조건

Linux EC2 인스턴스에 원활한 도메인 조인을 설정하려면 먼저 이 섹션의 절차를 완료해야 합니다.

원활한 도메인 조인 서비스 계정 선택

AD Connector를 통해 Linux 컴퓨터를 온프레미스 Active Directory 도메인에 원활하게 조인할 수 있습니다. 이렇게 하려면 컴퓨터 계정 만들기 권한이 있는 사용자 계정을 만들어 컴퓨터를 도메인에 조인해야 합니다. 원하는 경우 AD Connector 서비스 계정을 사용할 수 있습니다. 또는 컴퓨터를 도메인에 조인할 수 있는 충분한 권한이 있는 다른 계정을 사용할 수 있습니다. Domain Admins 또는 다른 그룹의 구성원이 컴퓨터를 도메인에 조인할 충분한 권한을 가지고 있을 수 있지만, 이러한 권한은 사용하지 않는 것이 좋습니다. 모범 사례로, 컴퓨터를 도메인에 조인하는 데 필요한 최소 권한이 있는 서비스 계정을 사용하는 것이 좋습니다.

컴퓨터를 도메인에 가입시키는 데 필요한 최소 권한을 가진 계정을 위임하려면 다음 명령을 실행할 수 있습니다. PowerShell 도메인에 조인된 Windows 컴퓨터에 AWS 관리형 Microsoft AD용 액티브 디렉터리 관리 도구 설치이(가) 설치되어 있는 상태에서 이러한 명령을 실행해야 합니다. 또한 컴퓨터 OU 또는 컨테이너에 대한 권한을 수정할 권한이 있는 계정을 사용해야 합니다. 이 PowerShell 명령은 서비스 계정이 도메인의 기본 컴퓨터 컨테이너에 컴퓨터 개체를 만들 수 있도록 허용하는 권한을 설정합니다. GUI(그래픽 사용자 인터페이스)를 선호하는 경우 서비스 계정에 권한 위임에서 설명하는 수동 프로세스를 사용할 수 있습니다.

$AccountName = 'awsSeamlessDomain' # DO NOT modify anything below this comment. # Getting Active Directory information. Import-Module 'ActiveDirectory' $Domain = Get-ADDomain -ErrorAction Stop $BaseDn = $Domain.DistinguishedName $ComputersContainer = $Domain.ComputersContainer $SchemaNamingContext = Get-ADRootDSE | Select-Object -ExpandProperty 'schemaNamingContext' [System.GUID]$ServicePrincipalNameGuid = (Get-ADObject -SearchBase $SchemaNamingContext -Filter { lDAPDisplayName -eq 'Computer' } -Properties 'schemaIDGUID').schemaIDGUID # Getting Service account Information. $AccountProperties = Get-ADUser -Identity $AccountName $AccountSid = New-Object -TypeName 'System.Security.Principal.SecurityIdentifier' $AccountProperties.SID.Value # Getting ACL settings for the Computers container. $ObjectAcl = Get-ACL -Path "AD:\$ComputersContainer" # Setting ACL allowing the service account the ability to create child computer objects in the Computers container. $AddAccessRule = New-Object -TypeName 'System.DirectoryServices.ActiveDirectoryAccessRule' $AccountSid, 'CreateChild', 'Allow', $ServicePrincipalNameGUID, 'All' $ObjectAcl.AddAccessRule($AddAccessRule) Set-ACL -AclObject $ObjectAcl -Path "AD:\$ComputersContainer"

GUI(그래픽 사용자 인터페이스)를 선호하는 경우 서비스 계정에 권한 위임에서 설명하는 수동 프로세스를 사용할 수 있습니다.

도메인 서비스 계정을 저장할 보안 암호 생성

를 AWS Secrets Manager 사용하여 도메인 서비스 계정을 저장할 수 있습니다.

보안 암호를 만들고 도메인 서비스 계정 정보를 저장하려면
  1. https://console.aws.amazon.com/secretsmanager/ 에서 AWS Management Console 로그인하고 AWS Secrets Manager 콘솔을 엽니다.

  2. 새 보안 암호 저장(Store a new secret)을 선택합니다.

  3. 새 보안 암호 저장(Store a new secret) 페이지에서 다음을 수행합니다.

    1. 암호 유형에서 다른 암호 유형을 선택합니다.

    2. 키/값 쌍에서 다음을 수행하십시오.

      1. 첫 번째 상자에 awsSeamlessDomainUsername를 입력합니다. 같은 행의 다음 상자에 서비스 계정의 사용자 이름을 입력합니다. 예를 들어 이전에 PowerShell 명령을 사용한 경우 서비스 계정 이름은 다음과 같습니다awsSeamlessDomain.

        참고

        있는 그대로 awsSeamlessDomainUsername을 입력해야 합니다. 선행 공백이나 끝 공백이 없어야 합니다. 그렇지 않으면 도메인 조인에 실패합니다.

        
                         AWS Secrets Manager 콘솔의 암호 유형 선택 페이지에서 암호 유형에서 다른 유형의 암호가 awsSeamlessDomainUsername 선택되며 키 값으로 입력됩니다.
      2. Add row(행 추가)를 선택합니다.

      3. 새 행의 첫 번째 상자에 awsSeamlessDomainPassword를 입력합니다. 같은 행의 다음 상자에 서비스 계정의 암호를 입력합니다.

        참고

        있는 그대로 awsSeamlessDomainPassword을 입력해야 합니다. 선행 공백이나 끝 공백이 없어야 합니다. 그렇지 않으면 도메인 조인에 실패합니다.

      4. 암호화 키에서 기본값을 그대로 유지합니다aws/secretsmanager. AWS Secrets Manager 이 옵션을 선택하면 항상 암호를 암호화합니다. 사용자가 생성한 키를 선택할 수도 있습니다.

        참고

        사용하는 비밀번호에 따라 수수료가 부과됩니다. AWS Secrets Manager현재 기준의 전체적인 요금 목록은 AWS Secrets Manager 요금을 참조하세요.

        Secrets Manager에서 생성한 AWS 관리 키를 aws/secretsmanager 사용하여 비밀을 무료로 암호화할 수 있습니다. 자체 KMS 키를 생성하여 암호를 암호화하는 경우 현재 요율로 AWS 요금이 부과됩니다. AWS KMS 자세한 내용은 AWS Key Management Service 요금을 참조하십시오.

      5. 다음을 선택합니다.

  4. 비밀 이름에 다음 형식을 사용하여 디렉터리 ID가 포함된 비밀 이름을 입력합니다. 이때 d-xxxxxxxxxxx는 디렉터리 ID로 대체합니다.

    aws/directory-services/d-xxxxxxxxx/seamless-domain-join

    이는 애플리케이션에서 보안 암호를 검색하는 데 사용됩니다.

    참고

    있는 그대로 aws/directory-services/d-xxxxxxxxx/seamless-domain-join를 입력해야 하지만, d-xxxxxxxxxxxxx를 디렉터리 ID로 바꿔야 합니다. 선행 공백이나 끝 공백이 없어야 합니다. 그렇지 않으면 도메인 가입에 실패합니다.

    
                 AWS Secrets Manager 콘솔의 암호 구성 페이지에서 암호 이름을 입력하고 강조 표시합니다.
  5. 다른 모든 항목은 기본값으로 설정한 후 Next(다음)를 선택합니다.

  6. Configure automatic rotation(자동 교체 구성)Disable automatic rotation(자동 교체 사용 안 함)으로 선택하고 Next(다음)를 선택합니다.

  7. 설정을 검토한 다음 Store(저장)를 선택하여 변경 내용을 저장합니다. 이제 Secrets Manager 콘솔에서 새 보안 암호가 목록에 포함된 계정의 보안 암호 목록으로 돌아갑니다.

  8. 목록에서 새로 생성한 보안 암호 이름을 선택하고 보안 암호 ARN 값을 기록해 둡니다. 다음 단원에서 이 값을 사용하게 됩니다.

필요한 IAM policy 정책 및 역할 생성

다음 사전 필수 단계를 사용하여 Secrets Manager 원활한 도메인 가입 암호 (이전에 생성함) 에 대한 읽기 전용 액세스를 허용하는 사용자 지정 정책을 생성하고 새 DomainJoin LinuxEC2 IAM 역할을 생성합니다.

Secrets Manager IAM 읽기 정책 생성

IAM 콘솔을 사용하여 Secrets Manager 보안 암호에 대한 읽기 전용 액세스 권한을 부여하는 정책을 생성합니다.

Secrets Manager IAM 읽기 정책을 생성하려면
  1. IAM 정책을 생성할 권한이 있는 AWS Management Console 사용자로 로그인합니다. 그런 다음 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창의 액세스 관리에서 정책을 선택합니다.

  3. 정책 생성(Create policy)을 선택합니다.

  4. JSON 탭을 선택하고 다음 JSON 정책 문서에서 텍스트를 복사합니다. 그런 다음 JSON 텍스트 상자에 붙여 넣습니다.

    참고

    지역 및 리소스 ARN을 이전에 생성한 암호의 실제 지역 및 ARN으로 교체해야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:xxxxxxxxx:secret:aws/directory-services/d-xxxxxxxxx/seamless-domain-join" ] } ] }
  5. 마쳤으면 [Next]를 선택합니다. 정책 검사기가 모든 구문 오류를 보고합니다. IAM 검증 정책에 대한 자세한 내용은 Validating IAM policies를 참조하세요.

  6. Review policy(정책 검토) 페이지에서 SM-Secret-Linux-DJ-d-xxxxxxxxxx-Read와 같은 정책의 이름을 입력합니다. Summary(요약)을 검토하여 정책이 부여하는 권한을 확인합니다. 그런 다음 Create policy(정책 생성)를 선택하여 변경 내용을 저장합니다. 새로운 정책이 관리형 정책 목록에 나타나며 ID 연결 준비가 완료됩니다.

참고

보안 암호당 정책을 하나씩 생성하는 것이 좋습니다. 이렇게 하면 인스턴스가 적절한 보안 암호에만 액세스할 수 있고 인스턴스가 손상될 경우 미치는 영향이 최소화됩니다.

Linux/EC2 역할을 생성하십시오. DomainJoin

IAM 콘솔을 사용하여 Linux EC2 인스턴스를 도메인에 조인하는 데 사용할 역할을 생성합니다.

Linux/EC2 역할을 만들려면 DomainJoin
  1. IAM 정책을 생성할 권한이 있는 AWS Management Console 사용자로 로그인합니다. 그런 다음 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창의 액세스 관리에서 역할을 선택합니다.

  3. 콘텐츠 창에서 Create role(역할 생성)을 선택합니다.

  4. 신뢰할 수 있는 엔티티 유형 선택 아래에서 AWS 서비스를 선택합니다.

  5. 사용 사례에서 EC2를 선택한 후 다음을 선택합니다.

    
                  IAM 콘솔의 신뢰할 수 있는 엔티티 선택 페이지에서 AWS 서비스와 EC2가 선택됩니다.
  6. Filter policies(필터 정책)의 경우 다음을 수행합니다.

    1. AmazonSSMManagedInstanceCore을 입력합니다. 그런 다음 목록에서 해당 항목의 확인란을 선택합니다.

    2. AmazonSSMDirectoryServiceAccess을 입력합니다. 그런 다음 목록에서 해당 항목의 확인란을 선택합니다.

    3. SM-Secret-Linux-DJ-d-xxxxxxxxxx-Read(또는 이전 절차에서 생성한 IAM 정책의 이름)을(를) 입력합니다. 그런 다음 목록에서 해당 항목의 확인란을 선택합니다.

    4. 위에 나열된 세 가지 정책을 추가한 후 역할 생성을 선택합니다.

    참고

    AmazonSSM은 인스턴스를 관리자에 Active Directory 조인할 권한을 DirectoryServiceAccess 제공합니다. AWS Directory Service AmazonSSM은 ManagedInstanceCore 서비스를 사용하는 데 필요한 최소 권한을 제공합니다. AWS Systems Manager 이러한 권한으로 역할을 생성하는 방법과 IAM 역할에 할당할 수 있는 기타 권한 및 정책에 관한 정보에 대한 자세한 내용은 AWS Systems Manager 사용 설명서Systems Manager용 IAM 인스턴스 프로파일 생성을 참조하세요.

  7. 새 역할의 이름 (예: 역할 이름) 필드에 원하는 다른 이름을 입력합니다. LinuxEC2DomainJoin

  8. (선택 사항)역할 설명에 설명을 입력합니다.

  9. (선택 사항) 3단계: 태그를 추가할 태그 추가에서 새 태그 추가를 선택합니다. 태그 키-값 쌍은 이 역할에 대한 액세스를 구성, 추적 또는 제어하는 데 사용됩니다.

  10. 역할 생성을 선택합니다.

Linux EC2 인스턴스를 관리형 AWS Microsoft AD 디렉터리에 원활하게 연결합니다.

필수 작업을 모두 구성했으므로 이제 다음 절차를 사용하여 EC2 Linux 인스턴스를 원활하게 연결할 수 있습니다.

Linux 인스턴스를 원활하게 연결하려면
  1. AWS Management Console 로그인하고 https://console.aws.amazon.com/ec2/ 에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 표시줄의 지역 선택기에서 기존 디렉토리와 AWS 리전 동일한 디렉토리를 선택합니다.

  3. EC2 대시보드시작 인스턴스 섹션에서 인스턴스 시작을 선택합니다.

  4. 인스턴스 시작 페이지의 이름 및 태그 섹션에서 Linux EC2 인스턴스에 사용할 이름을 입력합니다.

  5. (선택 사항) 추가 태그 추가에서 이 EC2 인스턴스에 대한 액세스를 구성, 추적, 제어할 태그-키 값 페어를 하나 이상 추가합니다.

  6. 애플리케이션 및 OS 이미지 (Amazon 머신 이미지) 섹션에서 시작하려는 Linux AMI를 선택합니다.

    참고

    사용되는 AMI에는 AWS Systems Manager (SSM 에이전트) 버전 2.3.1644.0 이상이 있어야 합니다. AMI에서 인스턴스를 시작하여 AMI에 설치된 SSM 에이전트 버전을 확인하려면 현재 설치된 SSM 에이전트 버전 가져오기를 참조하세요. SSM 에이전트를 업그레이드해야 하는 경우 Linux용 EC2 인스턴스에 SSM 에이전트 설치 및 구성을 참조하세요.

    SSM은 Linux 인스턴스를 도메인에 aws:domainJoin 조인할 때 플러그인을 사용합니다. Active Directory 플러그인은 Linux 인스턴스의 호스트 이름을 EC2AMAZ- XXXXXXX 형식으로 변경합니다. 에 대한 자세한 내용은 사용 aws:domainJoin 설명서의 AWS Systems Manager 명령 문서 플러그인 참조를 참조하십시오.AWS Systems Manager

  7. 인스턴스 유형 섹션의 인스턴스 유형 드롭다운 목록에서 사용하려는 인스턴스 유형을 선택합니다.

  8. 키 페어(로그인) 섹션에서 새 키 페어 생성을 선택하거나 기존 키 페어에서 선택할 수 있습니다. 새로운 키 페어를 생성하려면 새 키 페어 생성을 선택합니다. 키 페어의 이름을 입력하고 키 페어 유형프라이빗 키 파일 형식에 대한 옵션을 선택합니다. OpenSSH에서 사용할 수 있는 형식으로 프라이빗 키를 저장하려면 .pem을 선택합니다. PuTTY에서 사용할 수 있는 형식으로 프라이빗 키를 저장하려면 .ppk를 선택합니다. Create key pair(키 페어 생성)를 선택합니다. 브라우저에서 프라이빗 키 파일이 자동으로 다운로드됩니다. 안전한 장소에 프라이빗 키 파일을 저장합니다.

    중요

    이때가 사용자가 프라이빗 키 파일을 저장할 수 있는 유일한 기회입니다.

  9. 인스턴스 시작 페이지의 네트워크 설정 섹션에서 편집을 선택합니다. VPC - 필수 드롭다운 목록에서 디렉터리가 생성된 VPC를 선택합니다.

  10. 서브넷 드롭다운 목록에서 VPC의 퍼블릭 서브넷 중 하나를 선택합니다. 선택한 서브넷에서는 인터넷 게이트웨이로 모든 외부 트래픽이 라우팅되어야 합니다. 그렇지 않으면 인스턴스를 원격으로 연결할 수 없게 됩니다.

    인터넷 게이트웨이에 연결하는 방법에 대한 자세한 내용은 Amazon VPC 사용 설명서인터넷 게이트웨이를 사용하여 인터넷에 연결을 참조하세요.

  11. Auto-assign Public IP(퍼블릭 IP 자동 할당)에서 Enable(활성화)을 선택합니다.

    퍼블릭 및 프라이빗 IP 주소 지정에 대한 자세한 내용은 Windows 인스턴스용 Amazon EC2 사용 설명서Amazon EC2 인스턴스 IP 주소 지정을 참조하세요.

  12. 방화벽(보안 그룹) 설정의 경우 기본 설정을 사용하거나 필요에 맞게 변경할 수 있습니다.

  13. 스토리지 구성 설정의 경우 기본 설정을 사용하거나 필요에 맞게 변경할 수 있습니다.

  14. 고급 세부 정보 섹션을 선택하고 도메인 조인 디렉터리 드롭다운 목록에서 도메인을 선택합니다.

    참고

    도메인 조인 디렉터리를 선택하면 다음이 표시될 수 있습니다.

    
       도메인 조인 디렉터리를 선택할 때 오류 메시지가 표시됩니다. 기존 SSM 문서에 오류가 있습니다.

    이 오류는 EC2 시작 마법사가 예상치 못한 속성을 가진 기존 SSM 문서를 식별할 때 발생합니다. 다음 중 하나를 수행할 수 있습니다.

    • 이전에 SSM 문서를 편집했는데 속성이 예상된 경우 [Close] 를 선택하고 변경 없이 EC2 인스턴스를 시작하십시오.

    • SSM 문서를 삭제하려면 여기에서 기존 SSM 문서 삭제 링크를 선택합니다. 이렇게 하면 올바른 속성을 가진 SSM 문서를 만들 수 있습니다. EC2 인스턴스를 시작하면 SSM 문서가 자동으로 생성됩니다.

  15. IAM 인스턴스 프로필의 경우 사전 요구 사항 섹션 2단계: LinuxEC2 역할 생성에서 이전에 생성한 IAM 역할을 선택합니다. DomainJoin

  16. 인스턴스 시작을 선택합니다.

참고

SUSE Linux로 원활한 도메인 조인을 수행하는 경우 인증이 작동하려면 재부팅해야 합니다. Linux 터미널에서 SUSE를 재부팅하려면 sudo reboot를 입력합니다.