AWS 계정의 루트 사용자 모범 사례
AWS 계정의 루트 사용자 모범 사례
AWS 계정을 처음 만들면 계정의 모든 AWS 리소스에 대한 완전한 접근 권한을 가진 기본 자격 증명 세트로 시작해요. 이 자격 증명을 AWS 계정 루트 사용자라고 불러요. 루트 사용자 자격 증명이 필요한 작업이 아니라면 AWS 계정 루트 사용자에 접근하지 않는 것을 강력히 권장해요. 루트 사용자 자격 증명과 계정 복구 메커니즘을 안전하게 보호해서, 매우 높은 권한의 자격 증명이 무단 사용에 노출되지 않도록 해야 해요. 이번 글에서는 루트 사용자 보안을 위한 모범 사례를 정리해 볼게요.
출처: 문서
본문
AWS Organizations로 관리하는 여러 AWS 계정에서는 무단 사용을 막기 위해 구성원 계정에서 루트 사용자 자격 증명을 제거하는 것을 권장해요. 루트 사용자 비밀번호, 액세스 키, 서명 인증서를 제거하고 다중 인증(MFA)을 비활성화·삭제할 수 있어요. 구성원 계정은 자기 루트 사용자로 로그인하거나 루트 사용자의 비밀번호 복구를 수행할 수 없게 돼요. 자세한 내용은 구성원 계정의 루트 접근 중앙 관리를 참고하세요.
루트 사용자에 접근하는 대신 일상 작업용 관리 사용자를 만들어 사용하세요. 새 AWS 계정이라면 AWS 계정 설정을, AWS Organizations로 관리하는 여러 계정이라면 IAM Identity Center 관리 사용자용 AWS 계정 접근 설정을 참고하세요. 관리 사용자로 AWS 계정의 리소스에 접근해야 하는 사용자를 위한 추가 자격 증명을 만들 수 있고, AWS 접근 시 임시 자격 증명으로 인증하도록 요구하는 것을 강력히 권장해요.
- 단일 독립형 AWS 계정이라면 IAM 역할을 사용해 계정에 특정 권한을 가진 자격 증명을 만들어요. 역할은 필요한 사람이면 누구나 맡을 수 있도록 설계됐고, 비밀번호나 액세스 키 같은 표준 장기 자격 증명이 연결되어 있지 않아요. 역할을 맡으면 역할 세션에 대한 임시 보안 자격 증명을 제공받아요. IAM 역할과 달리 IAM 사용자는 비밀번호와 액세스 키 같은 장기 자격 증명을 가져요. 가능하면 비밀번호·액세스 키 같은 장기 자격 증명을 가진 IAM 사용자를 만드는 대신, 모범 사례에 따라 임시 자격 증명에 의존하세요.
- AWS Organizations로 관리하는 여러 AWS 계정이라면 IAM Identity Center 워크포스 사용자를 사용해요. IAM Identity Center로 AWS 계정 전반의 사용자와 계정 내 권한을 중앙에서 관리할 수 있어요. IAM Identity Center나 외부 자격 증명 공급자로 사용자 자격 증명을 관리하세요. 자세한 내용은 _AWS IAM Identity Center 사용자 가이드_의 AWS IAM Identity Center란 무엇인가요?를 참고하세요.
Topics
- 루트 사용자 자격 증명을 보호해 무단 사용 방지
- 강력한 루트 사용자 비밀번호로 접근 보호
- 다중 인증(MFA)으로 루트 사용자 로그인 보호
- 루트 사용자용 액세스 키를 만들지 않기
- 가능하면 루트 사용자 로그인에 다인 승인 사용
- 루트 사용자 자격 증명에 그룹 이메일 주소 사용
- 계정 복구 메커니즘에 대한 접근 제한
- AWS Organizations 계정 루트 사용자 자격 증명 보안
- 접근 및 사용 모니터링
무단 사용을 방지하기 위해 루트 사용자 자격 증명 보호 (Secure your root user credentials to prevent unauthorized use)
루트 사용자 자격 증명을 보호하고 루트 사용자가 필요한 작업에만 사용하세요. 무단 사용을 막기 위해 루트 사용자에 접근해야 할 엄격한 업무상 필요가 있는 사람 외에는, 루트 사용자 비밀번호, MFA, 액세스 키, CloudFront 키 쌍, 서명 인증서를 누구와도 공유하지 마세요.
루트 사용자 비밀번호를, 그 비밀번호로 접근하는 계정에서 AWS 서비스에 의존하는 도구와 함께 저장하지 마세요. 비밀번호를 잃어버리거나 잊어버리면 그 도구들에 접근할 수 없게 돼요. 복원력(resiliency)을 우선시하고 저장 위치에 대한 접근을 승인하려면 두 명 이상이 필요하도록 고려하세요. 비밀번호 또는 저장 위치에 대한 접근은 로깅하고 모니터링해야 해요.
강력한 루트 사용자 비밀번호로 접근 보호 (Use a strong root user password to help protect access)
강력하고 고유한 비밀번호를 사용하는 걸 권장해요. 강력한 비밀번호 생성 알고리즘을 가진 비밀번호 관리자 같은 도구가 도움이 될 수 있어요. AWS는 비밀번호가 다음 조건을 충족하도록 요구해요.
- 최소 8자, 최대 128자여야 해요.
- 대문자, 소문자, 숫자, 그리고 ! @ # $ % ^ & * ( ) < > [ ] { } | _ + - = 기호 중 최소 세 가지 유형을 포함해야 해요.
- AWS 계정 이름이나 이메일 주소와 동일하면 안 돼요.
자세한 내용은 AWS 계정 루트 사용자 비밀번호 변경을 참고하세요.
MFA로 루트 사용자 로그인 보호 (Secure your root user sign-in with multi-factor authentication)
루트 사용자는 권한 있는 작업을 수행할 수 있으므로, 로그인 자격 증명인 이메일 주소와 비밀번호에 더해 두 번째 인증 요소로 루트 사용자에 MFA를 추가하는 것이 중요해요. AWS 계정 루트 사용자에는 현재 지원되는 MFA 유형의 어떤 조합으로든 최대 8개의 MFA 디바이스를 등록할 수 있어요.
보안 전략에 추가 유연성과 복원력을 제공하려면 루트 사용자 자격 증명에 여러 MFA 디바이스를 활성화하는 것을 강력히 권장해요. 모든 AWS 계정 유형(독립형, 관리, 구성원 계정)은 루트 사용자에 대해 MFA를 구성해야 해요. MFA가 이미 활성화되지 않았다면 사용자는 AWS Management Console에 대한 첫 로그인 시도 후 35일 이내에 MFA를 등록해야 해요.
- FIDO 인증 하드웨어 보안 키는 타사 공급자가 제공해요. 자세한 내용은 AWS 계정 루트 사용자용 FIDO 보안 키 활성화를 참고하세요.
- 시간 기반 일회용 비밀번호(TOTP) 알고리즘을 기반으로 6자리 숫자 코드를 생성하는 하드웨어 디바이스예요. 자세한 내용은 AWS 계정 루트 사용자용 하드웨어 TOTP 토큰 활성화를 참고하세요.
- 물리적 디바이스를 에뮬레이션하는 전화나 다른 디바이스에서 실행되는 가상 인증자 애플리케이션이에요. 자세한 내용은 AWS 계정 루트 사용자용 가상 MFA 디바이스 활성화를 참고하세요.
루트 사용자용 액세스 키를 만들지 않기 (Don't create access keys for the root user)
액세스 키를 사용하면 AWS Command Line Interface(AWS CLI)에서 명령을 실행하거나 AWS SDK 중 하나에서 API 작업을 사용할 수 있어요. 루트 사용자는 결제 정보를 포함해 계정의 모든 AWS 서비스와 리소스에 대한 전체 접근 권한을 가지므로, 루트 사용자용 액세스 키를 만들지 않는 것을 강력히 권장해요.
루트 사용자가 필요한 작업은 몇 가지뿐이고 보통 자주 수행하지 않으므로, 루트 사용자 작업은 AWS Management Console에 로그인해 수행하는 걸 권장해요. 프로그래밍 방식 접근을 위해서는 루트 사용자용 액세스 키를 만드는 대신 aws login 명령을 루트 자격 증명과 함께 사용해 AWS CLI와 SDK에 인증하세요. 이 방식은 자동으로 회전되는 임시 자격 증명을 제공해 보안 태세를 강화하고 장기 액세스 키 관리의 필요성을 없애 줘요. 액세스 키를 만들기 전에 장기 액세스 키의 대안을 검토하세요.
가능하면 루트 사용자 로그인에 다인 승인 사용 (Use multi-person approval for root user sign-in wherever possible)
한 사람이 루트 사용자의 MFA와 비밀번호를 모두 접근할 수 없도록 다인 승인(multi-person approval) 사용을 고려하세요. 일부 회사는 비밀번호에 접근할 수 있는 관리자 그룹 하나와 MFA에 접근할 수 있는 관리자 그룹 하나를 설정해 보안 계층을 추가해요. 각 그룹의 구성원 한 명이 함께 모여야 루트 사용자로 로그인할 수 있어요.
루트 사용자 자격 증명에 그룹 이메일 주소 사용 (Use a group email address for root user credentials)
비즈니스가 관리하고 수신 메시지를 사용자 그룹에 직접 전달하는 이메일 주소를 사용하세요. AWS가 계정 소유자에게 연락해야 하는 경우, 이 방식은 개인이 휴가 중이거나 아프거나 퇴사했더라도 응답 지연 위험을 줄여 줘요. 루트 사용자에 사용하는 이메일 주소는 다른 목적으로 사용하지 마세요.
계정 복구 메커니즘에 대한 접근 제한 (Restrict access to account recovery mechanisms)
관리 계정이 탈취되는 등의 비상 상황에서 접근해야 할 수 있으므로, 루트 사용자 자격 증명 복구 메커니즘을 관리하는 프로세스를 개발하세요.
- 잃어버렸거나 잊어버린 루트 사용자 비밀번호를 재설정할 수 있도록 루트 사용자 이메일 받은 편지함에 접근할 수 있는지 확인하세요.
- AWS 계정 루트 사용자의 MFA를 분실·손상·작동 불능 상태라면, 같은 루트 사용자 자격 증명에 등록된 다른 MFA로 로그인할 수 있어요. 모든 MFA에 접근하지 못한다면 MFA를 복구하려면 계정 등록에 사용한 전화번호와 이메일이 모두 최신 상태이고 접근 가능해야 해요. 자세한 내용은 루트 사용자 MFA 디바이스 복구를 참고하세요.
- 루트 사용자 비밀번호와 MFA를 저장하지 않기로 했다면 계정에 등록된 전화번호를 루트 사용자 자격 증명을 복구하는 대체 방법으로 사용할 수 있어요. 연락처 전화번호에 접근할 수 있고, 전화번호를 최신 상태로 유지하며, 전화번호를 관리할 수 있는 사람을 제한하세요.
- 한 사람이 이메일 받은 편지함과 전화번호 양쪽에 접근하면 안 돼요. 둘 다 루트 사용자 비밀번호를 복구하는 검증 채널이기 때문이에요. 이 채널을 관리하는 두 그룹을 두는 게 중요해요. 한 그룹은 기본 이메일 주소에 접근하고, 다른 그룹은 기본 전화번호에 접근해 루트 사용자로 계정 접근을 복구해요.
AWS Organizations 계정 루트 사용자 자격 증명 보안 (Secure your AWS Organizations account root user credentials)
AWS Organizations로 다중 계정 전략으로 전환하면 각 AWS 계정에는 보호해야 할 자체 루트 사용자 자격 증명이 있어요. 조직을 만드는 데 사용한 계정은 관리 계정(management account) 이고 조직의 나머지 계정은 구성원 계정(member accounts) 이에요.
관리 계정의 루트 사용자 자격 증명 보안 (Secure root user credentials for the management account)
AWS는 조직의 관리 계정 루트 사용자에 MFA를 등록하도록 요구해요. MFA 등록은 첫 로그인 시도 중 또는 35일 유예 기간 내에 완료해야 해요. 이 기간 내에 MFA를 활성화하지 않으면 AWS Management Console에 접근하기 전에 등록이 필요해져요. 자세한 내용은 AWS 계정 루트 사용자용 다중 인증을 참고하세요.
구성원 계정의 루트 사용자 자격 증명 보안 (Secure root user credentials for member accounts)
AWS Organizations로 여러 계정을 관리한다면 AWS Organizations에서 루트 사용자 접근을 보호하는 두 가지 전략이 있어요.
- 루트 접근을 중앙화하고 구성원 계정에서 루트 사용자 자격 증명을 제거해요. 루트 사용자 자격 증명, 액세스 키, 서명 인증서를 제거하고 다중 인증(MFA)을 비활성화·삭제해요. 이 전략을 사용하면 구성원 계정은 자기 루트 사용자로 로그인하거나 루트 사용자 비밀번호 복구를 수행할 수 없어요. 자세한 내용은 구성원 계정의 루트 접근 중앙 관리를 참고하세요.
- AWS Organizations 계정의 루트 사용자 자격 증명을 MFA로 보호해 계정 보안을 강화해요. 자세한 내용은 AWS 계정 루트 사용자용 다중 인증을 참고하세요.
자세한 내용은 _AWS Organizations 사용자 가이드_의 조직의 구성원 계정 접근을 참고하세요.
서비스 제어 정책(SCP)으로 AWS Organizations에서 예방적 보안 제어 설정 (Set preventative security controls in AWS Organizations using an SCP)
조직의 구성원 계정에 루트 사용자 자격 증명이 활성화돼 있다면 SCP를 적용해 구성원 계정 루트 사용자에 대한 접근을 제한할 수 있어요. 특정 루트 전용 액션을 제외한 모든 루트 사용자 액션을 구성원 계정에서 거부하면 무단 접근을 방지하는 데 도움이 돼요. 자세한 내용은 SCP로 구성원 계정의 루트 사용자가 할 수 있는 작업 제한을 참고하세요.
접근 및 사용 모니터링 (Monitor access and usage)
현재 추적 메커니즘을 사용해 루트 사용자 자격 증명의 로그인과 사용을 모니터링·경고·보고할 것을 권장하며, 루트 사용자 로그인 및 사용을 알리는 경고를 포함하세요. 다음 서비스는 루트 사용자 자격 증명 사용을 추적하고 무단 사용을 방지하는 데 도움이 되는 보안 검사를 수행하는 데 도움을 줘요.
참고 — CloudTrail은 루트 사용자와 권한 있는 루트 사용자 세션에 대해 서로 다른 로그인 이벤트를 기록해요. 이 권한 있는 세션은 조직의 구성원 계정에서 루트 사용자 자격 증명이 필요한 작업을 수행할 수 있게 해 줘요. 로그인 이벤트를 사용해 관리 계정이나 위임 관리자가
sts:AssumeRoot를 사용해 수행한 액션을 식별할 수 있어요. 자세한 내용은 CloudTrail에서 권한 있는 작업 추적을 참고하세요.
- 계정의 루트 사용자 로그인 활동에 대해 알림을 받으려면 Amazon CloudWatch를 활용해 루트 사용자 자격 증명이 사용될 때를 감지하고 보안 관리자에게 알림을 트리거하는 Events 규칙을 만들 수 있어요. 자세한 내용은 AWS 계정 루트 사용자 활동 모니터링·알림을 참고하세요.
- 승인된 루트 사용자 액션에 대한 알림을 설정하려면 Amazon EventBridge와 Amazon SNS를 활용해 특정 액션에 대한 루트 사용자 사용을 추적하는 EventBridge 규칙을 작성하고 Amazon SNS 주제로 알림을 받을 수 있어요. 예시는 Amazon S3 객체 생성 시 알림 보내기를 참고하세요.
- 이미 GuardDuty를 위협 탐지 서비스로 사용하고 있다면, 계정에서 루트 사용자 자격 증명이 사용될 때 알리도록 그 기능을 확장할 수 있어요.
알림에는 루트 사용자 이메일 주소가 포함되어야 하며(이에 국한되지 않음), 알림에 대한 대응 절차를 마련해 루트 사용자 접근 알림을 받는 담당자가 루트 사용자 접근이 예상된 것인지 검증하고 보안 사고가 진행 중이라고 판단되면 에스컬레이션하는 방법을 이해하도록 하세요. 알림 구성 예시는 AWS 계정 루트 사용자 활동 모니터링·알림을 참고하세요.
루트 사용자 MFA 규정 준수 평가 (Evaluate root user MFA compliance)
다음 서비스는 루트 사용자 자격 증명의 MFA 규정 준수를 평가하는 데 도움이 돼요.
루트 사용자 자격 증명을 제거하는 모범 사례를 따른다면 MFA 관련 규칙은 부적합(noncompliant)으로 반환돼요. 조직의 구성원 계정에서 무단 사용을 막기 위해 루트 사용자 자격 증명을 제거하는 걸 권장해요. 루트 사용자 자격 증명(MFA 포함)을 제거하면 이 구성원 계정은 적용 불가(not applicable) 로 평가돼요.
- AWS Config는 루트 사용자 모범 사례 준수 여부를 모니터링하는 규칙을 제공해요. AWS Config 관리형 규칙을 사용해 루트 사용자 자격 증명에 MFA를 강제할 수 있고, 루트 사용자의 액세스 키도 식별할 수 있어요.
- Security Hub CSPM은 AWS의 보안 상태에 대한 포괄적인 보기를 제공하고, 루트 사용자에 MFA가 있고 루트 사용자 액세스 키가 없는 것 같은 보안 산업 표준·모범 사례에 대해 AWS 환경을 평가하는 데 도움을 줘요. 사용 가능한 규칙에 대한 자세한 내용은 _Security Hub CSPM 사용자 가이드_의 AWS Identity and Access Management 제어를 참고하세요.
- Trusted Advisor는 루트 사용자 계정에 MFA가 활성화되지 않았는지 알려 주는 보안 검사를 제공해요. 자세한 내용은 _AWS Support 사용자 가이드_의 루트 계정의 MFA를 참고하세요.
계정의 보안 문제를 보고해야 한다면 의심스러운 이메일 보고 또는 취약점 보고를 참고하세요. 또는 AWS에 문의해 도움과 추가 지침을 받을 수 있어요.