iam

1 개의 포스트

Secure (and usable) multi-AWS account IAM setup (새 탭에서 열림)

다수의 AWS 계정을 운영하는 방식은 관리 복잡성을 증가시키지만, 네트워크, API, 컴퓨팅 자원 차원에서 자연스러운 보안 경계를 제공한다는 강력한 이점이 있습니다. 본 글은 중앙 집중화된 단일 계정에서 IAM 사용자를 관리하고, 필요할 때마다 MFA 인증을 거쳐 타 계정의 역할을 수행(Assume Role)하는 보안 패턴을 제안합니다. 이를 통해 사용자 권한 오남용을 방지하고 보안 사고 발생 시 피해 범위(Blast Radius)를 최소화하는 실무적인 다중 계정 관리 체계를 구축할 수 있습니다. ## 다중 AWS 계정 체계의 보안적 이점 계정 분리는 운영 부담을 늘리지만, 보안 측면에서는 다음과 같은 격리 효과를 제공합니다. * **네트워크 수준의 격리:** VPC 피어링을 명시적으로 설정하지 않는 한, 계정 간 네트워크는 완전히 분리됩니다. * **API 수준의 격리:** 특정 계정이 침해되더라도 역할 위임(Role Delegation)이 설정되어 있지 않다면 타 계정의 자원에 접근할 수 없습니다. * **컴퓨팅 및 비용 관리:** 비정상적인 자원 사용(예: 비트코인 채굴 등) 발생 시 계정별 결제 알림이나 CloudTrail 모니터링을 통해 즉각적인 탐지가 가능하며, 계정별 지출 한도를 설정하여 피해를 제한할 수 있습니다. ## 중앙 집중식 IAM 사용자 관리 효율적인 관리를 위해 IAM 사용자는 단 하나의 '메인 계정'에만 존재해야 합니다. * **관리의 추적성:** 입사나 퇴사 시 한 곳에서만 권한을 조정하면 되므로 관리 실수를 줄이고 암호 복잡성 정책 등을 일관되게 적용할 수 있습니다. * **비인가 사용자 탐지:** 메인 계정 외의 다른 계정에서 IAM 사용자가 생성되는 것을 모니터링하여 보안 위협을 실시간으로 감지할 수 있습니다. * **SSO 대비 MFA의 정교함:** 일반적인 SSO(Single Sign-On) 대신 개별 IAM 사용자를 유지하는 이유는 특정 작업 수행 시마다 MFA를 강제하는 등 더 세밀한 보안 제어가 가능하기 때문입니다. ## 최소 권한 원칙과 권한 상승 메커니즘 기본적으로 모든 사용자는 매우 제한적인 권한만을 가지며, 필요 시에만 권한을 높이는 'sudo' 방식을 사용합니다. * **제한된 초기 권한:** 사용자는 자신의 비밀번호 변경, API 키 관리, MFA 기기 등록 등 셀프 서비스 기능 외에는 어떤 자원에도 접근할 수 없는 상태로 시작합니다. 이는 자격 증명이 유출되더라도 공격자가 할 수 있는 일을 극도로 제한합니다. * **역할 전환(Assume Role):** 실제 업무 수행을 위해서는 `sts:AssumeRole` API를 호출하여 타 계정의 역할을 일시적으로 획득해야 합니다. * **세션 수명 제한:** 역할 전환을 통해 발급받은 임시 자격 증명은 기본적으로 1시간의 짧은 수명(TTL)을 가지므로, 자격 증명이 노출되더라도 악용될 수 있는 시간적 창구가 좁습니다. ## MFA 기반의 강력한 보안 통제 모든 권한 상승 과정에는 다요소 인증(MFA)이 필수적으로 결합되어야 합니다. * **MFA 강제화:** 사용자가 특정 역할을 수행하기 위해서는 반드시 활성화된 MFA 기기를 통해 인증을 완료해야만 `sts:AssumeRole` 호출이 성공하도록 설계합니다. * **비용 기반 보안:** MFA는 공격자의 침입 비용을 높이는 역할을 하며, API 키만 탈취한 공격자가 읽기 권한 이상의 동작을 수행하는 것을 효과적으로 차단합니다. ## 직무 기반의 역할 분리 사용자의 활동 영역에 따라 역할을 그룹화하여 관리 효율성을 높입니다. * **도메인별 역할 구성:** 네트워크 및 DNS 관리를 위한 VPC 역할, 컴퓨팅 자원 관리를 위한 EC2 역할, 데이터 저장을 위한 S3 역할 등으로 구분하여 권한을 할당합니다. * **확장성 고려:** 이 모델은 현재 IAM 그룹의 제한 사항을 고려할 때 최대 10개 정도의 계정을 운영하는 환경에 가장 적합하며, 특히 개발 환경보다는 강력한 통제가 필요한 운영(Production) 환경에 최적화되어 있습니다. **결론적으로,** 보안성을 극대화하려면 사용자를 한 곳에서 관리하되 실제 작업은 MFA 인증을 거친 임시 역할을 통해 수행하게 해야 합니다. 이러한 방식은 초기 설정에 노력이 필요하지만, 계정이 늘어남에 따라 발생할 수 있는 보안 사각지대를 없애고 인프라 전체의 가시성을 확보하는 가장 확실한 방법입니다.