Oops - IT

AWS IAM - AD Federation with Identity Provider 본문

AWS

AWS IAM - AD Federation with Identity Provider

김모우 2025. 2. 22. 19:24
반응형

 

 

개요


  • AWS IAM의 Identity Provider를 이용하여, Managed AD와 Federation 작업 진행
  • AD 계정 기반 SMAL 인증을 통해 AWS 리소스 접근 및 Multi Account 운영 전략

 

 

구성


  • 테스트 구성으로 AD는 AWS EC2에 Windows 서버 구성 후 진행하였습니다.
  • 구성도
    https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html

 

Active Directory 구성


 

RDP를 사용하여 Windows 인스턴스에 연결 - Amazon Elastic Compute Cloud

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

  • [사전 작업] 초기 EC2 생성 후 Computer 이름 변경 및 Administrator 암호를 사전 변경해줍니다.
  • 재부팅 완료 후 서버 관리자 -> 역할 및 기능 설치 선택

  • "Active Directory Domain Services" 기능 설치

 

  • 나머지는 Default 값으로 선택해주고 Active Directory 설치를 진행합니다.
  • 설치가 완료되면, 서버 관리자의 플래그에 도메인 컨트롤러 승격 관련 메세지가 표시되는데요, AD 관리를 위해 도메인 컨트롤러로 해당 서버를 승격해주도록 하겠습니다.

 

  • 현재, 도메인은 신규 도메인으로 Forest 구성이 없으므로, "Add a new forest" 선택 후 신규 도메인 이름을 입력해줍니다.

 

  • DSRM(Domain Services Restore Mode) Password를 입력해줍니다. (AD를 복구 시 부팅모드에서 사용 됩니다.)
  • 나머지는, Default 값으로 설치를 진행합니다.

 

  • 도메인 컨트롤러 승격 완료 후 해당 서버 리부팅을 진행합니다.

 

Active Directory 사용자 및 그룹 구성


  • 작업을 진행할 도메인 계정을 하나 생성 후에 해당 계정으로 전환 후 작업하겠습니다.
  • "Active Directory Users and Computers" 접속 -> Users -> User 생성

 

  • 작업에 필요한 권한 할당을 위해 아래 그룹의 멤버로 추가해 줍니다.
    • Domain Admins
    • Enterprise Admins
    • Schema Admins
    • Remote Desktop Users
  • 생성한 계정으로 재접속해 줍니다.
    (해당 계정으로 계속 작업을 진행할 것으로, 편의를 위해 Active Directory Users and Computer 같은 App들은 작업 표시줄 고정해주시면 좋습니다.)

 

  • AD Federation에 필요한 OU, 그룹, 유저를 생성해 줍니다.
    • 수동 생성 하셔도 되며, 아래 Git의 Powershell 스크립트를 이용하셔도 됩니다.
    • "AWS" OU 생성
      • "AWS-Admin", "AWS-Dev" 그룹 생성 (AWS IAM Role 역할 전환 시 권한 분리용으로 사용합니다.)
      • "awsadmin", "awsuser" 유저 생성
      • 유저 들을 알맞은 그룹에 할당
        • "awsadmin" -> "AWS-Admin", "AWS-Dev"
        • "awsuser" -> "AWS-Dev"
    • 생성 완료 모습

 

 

  • 이제 1차적인 AD 작업은 완료되었습니다. 그러면, AD FS 기능 설치 및 연동을 진행해보겠습니다.

 

AD FS 구성


  • AD FS 구성 시 SSL 인증서를 요구하는데, Public 인증서의 경우 발급에 비용이 들어가니, AD에서 발급하는 사설 인증서를 먼저 발급해보겠습니다.
  • 서버 관리자 -> 역할 및 기능 설치 -> "Active Directory Certificate Services" 선택
    • Role
      • Certification Authority (Default)
      • Certification Authority Web Enrollment (추가)

 

  • 나머지는, Default 선택 후 설치를 진행합니다.

 

  • 설치가 완료되면, CA 설정을 진행해줍니다.

 

  • Role Services -> 기존 선택한 Role 2개 모두 선택
  • Enterprise CA 선택
    • Enterprise: Active Directory를 필요로 하며, Group Policy를 이용하여 모든 사용자와 컴퓨터를 위해 Root CA 인증서를 자동으로 전파합니다. AD 기반 전사적으로 인증서 기반으로 사용할 때 이용
    • Standalone: Active Directory를 필요로 하지 않으며, 이름 그대로 독립적으로 구성될 수 있습니다. 매우 강력한 보안을 필요로 하여 네트워크가 단절된 곳에 Root CA를 설치해야 할 경우 이용
  • Root CA 선택
  • Create a new private key 선택, Key 암호화 방식 Default 선택
  • 나머지, Default 값으로 선택 후 설정 완료해줍니다.

 

  • 생성된 Root CA를 기반으로 사설 SSL 인증서를 발급해 보겠습니다.
  • 설치된 IIS APP 접속 -> Server Certification 선택

 

  • 오른쪽 버튼 클릭 후 "Create Cerificate Request" 선택

 

  • 기본 값 선택 후 저장할 위치를 선택해 줍니다. 그러면 Private Key가 txt 파일로 지정한 경로에 생성이 됩니다.
  • Web 인증서 등록을 위해 Web 사이트 접속 (URL: http://<Server 도메인>/certsrv

 

 

  • 위의 과정을 통해, Certificate를 다운로드 했으면, Certifiacte Request를 완료해줍니다.
  • 다시 Server Certification으로 돌아와서 "Complete Certifiacte Request" 실행
  • 위의 다운로드 받은 Certificate를 등록해줍니다.

 

  • 생성 완료 후 해당 인증서를 Export 해줍니다.
  • Export 시 사용할 SSL 인증서의 암호를 입력해줍니다.

 

  • 그러면, 지정한 경로에 *pfx 확장자 파일의 SSL 인증서가 생성이 됩니다.
  • 다음으로, AD FS 기능 설치를 진행합니다.
  • 기능 설치 시, 아까 생성한 SSL 인증서 정보를 등록해 줍니다.

 

 

  • 여기서 AD FS 서비스 실행 시 GMSA(Group Managed Service Account)를 사용할 것인데 생성을 위해 Powershell 실행 후 KDS 루트 키를 아래 명령어로 임시로 활성화 해줍니다.
    • # add-kdsrootkey -effectivetime (get-date).addhours(-10)
  • 그러면, 아래와 같이 GMSA 계정 입력 창이 활성화 됩니다.

 

  • 설치 및 설정 작업을 마무리 합니다.

 

  • AD FS 진행 전, AWS IAM에서 Metadata를 통해 SAML 연동을 하여, 연동 포인트를 우선 생성해주겠습니다.
  • https://<서버 FQDN>/FederationMetadata/2007-06/FederationMetadata.xml
  • AWS Console -> IAM -> Identity Providers 선택
  • 메타데이터 파일 다운로드 후 AWS Identity Providers에서 등록 진행

 

 

 

  • Rule#3
    • Claim rule Template
      • Send Claims Using a Custom Rule
    • Claim Rule Name
      • Get AD Groups
    • Custom Rule
      c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
       => add(store = "Active Directory", types = ("http://temp/variable"), query = ";tokenGroups;{0}", param = c.Value);
  • Rule#4
    • Claim rule Template
      • Send Claims Using a Custom Rule
    • Claim Rule Name
      • Role
    • Custom Rule
      c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"]
       => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-", "arn:aws:iam::<acccount id>:saml-provider/<provider_name>,arn:aws:iam::<account id>:role/ADFS-"));


  • AWS IAM에서 SMAL용 Role을 생성해줍니다.
    • ADFS-Admin
    • ADFS-Dev

 

 

 

  • 접속 확인

 

 

 

 

AWS Federated Authentication with Active Directory Federation Services (AD FS) | Amazon Web Services

Today we’d like to walk you through AWS Identity and Access Management (IAM), federated sign-in through Active Directory (AD) and Active Directory Federation Services (ADFS). With IAM, you can centrally manage users, security credentials such as access k

aws.amazon.com

 

반응형

'AWS' 카테고리의 다른 글

AMI with Packer  (0) 2025.01.20
GameLift 알아보기  (0) 2025.01.16
Lambda 사용 해보기  (2) 2025.01.15
EKS 생성하기 - LB를 통한 서비스 외부 노출  (0) 2025.01.14
EKS 생성하기  (0) 2025.01.14