AWS를 공부하면서, 계정을 만들 때 루트 사용자와 IAM 사용자에 대해 확실히 모르고 단순히 통합 계정인가 보다 하고 루트 사용자로 실습을 진행하였는데, 추후 알아보니 루트 사용자로는 일상적인 작업을 하지 않아야 한다는 것을 알게 되었다. 그래서 그 이유와 함께 계정 생성 시 해야 할 것들에 대해서 정리해 보려고 한다.
루트 사용자와 IAM사용자를 분리해야 하는 이유
루트 사용자 & IAM 이란?
루트 사용자 - AWS 계정을 처음 생성할 때, 자동으로 만들어지는 계정으로, AWS 서비스 및 리소스에 대한 무제한적인 권한을 가지게 된다. 이 때문에 루트 사용자는 보안상의 이유로 매우 제한적으로 사용해야 한다.
IAM 사용자 - 루트 사용자 또는 IAM 관리자가 만든다. 각 사용자 별로 AWS 서비스 또는 리소스 액세스에 제한을 둘 수 있다. 액세스 가능한 수준을 그룹으로 만들고 각 사용자를 적당한 그룹에 등록하는 방식으로 제어한다.
보안 위험 최소화
앞서 말했듯, 루트 사용자는 AWS 리소스에 대한 무제한적인 액세스를 제공하며, 모든 작업을 수행할 수 있다. 이 계정이 손상되면 AWS인프라 전체가 위험해질 수 있다.
원칙적 최소 권한
AWS 보안 모범 사례에 따르면, 각 사용자에게 필요한 권한만 부여해야한다, IAM 사용자를 통해 작업에 필요한 권한만 부여하는 것이 원칙적 최소 권한을 준수하는 방법이다.
감사 및 추적 용이성
IAM 사용자를 사용하면 누가 어떤 작업을 했는지 명확하게 감사하고 추적할 수 있다. 각 사용자가 고유의 자격 증명을 사용하므로, 변경 작업이나 액세스 내역을 Cloud Trail 등의 서비스를 통해 모니터링할 수 있다. 반면, 루트 사용자로 작업하면 모든 작업은 동일한 계정으로 기록되기 때문에 구체적인 사용자별 작업 내역을 확인할 수 없다.
루트 계정 보호
루트 계정은 비밀번호를 분실하거나 계정이 도용되면 큰 문제가 발생할 수 있다. 따라서 루트 사용자로의 로그인 자체를 줄임으로써 비밀번호 유출을 줄이고, IAM 사용자를 이용하여 일상적인 작업을 처리하고 루트 계정은 계정 설정 변경과 같은 중요한 작업에만 사용하는 것이 좋다.
루트 사용자 자격 증명이 필요한 작업
루트 사용자만 할 수 있는 작업이 있는데, 이는 어쩔수 없이 루트 사용자로 작업해야 한다.
- 계정 설정의 변경
- IAM 사용자 권한의 복원
- 결제 및 비용 관리 콘솔에 대한 IAM 액세스 활성화
- 특정 세금 계산서 조회
- AWS 계정 닫기
- AWS 지원 플랜 변경 또는 취소
- 마켓플레이스에 판매자로 등록
- Amazon S3 버킷을 구성하여 MFA 삭제를 활성화
- 잘못된 VPC ID 또는 VPC 엔드포인트 ID가 들어있는 Amazon S3 버킷 정책을 편집 또는 삭제
- GovCloud 등록
계정 생성 시 해야 할 중요한 보안 조치
루트 사용자 MFA(다단계 인증) 설정
루트 계정에 MFA를 설정하여 보안 계층을 추가해야 한다. MFA는 비밀번호 외에도 스마트폰 애플리케이션 또는 하드웨어 토큰을 통해 제공되는 추가 코드를 입력해야 하므로, 루트 계정이 해킹되더라도 추가 보안 단계가 있어 보호된다.
IAM 사용자 생성 및 그룹 관리
루트 사용자로 로그인 후, IAM 사용자를 생성하고, 해당 사용자들에게 권한을 부여한다.
- IAM 사용자를 생성할 때, 사용자마다 고유한 액세스 권한을 최소화하여 부여한다.
- 비슷한 역할을 하는 사용자들을 IAM 그룹에 넣어 그룹 단위로 권한을 관리하면 효율적으로 관리할 수 있다.
IAM 사용자에 대한 최소 권한 설정
AWS에서는 최소 권한 원칙을 따르는 것은 매우 중요하다. 각 사용자에게 필요한 권한만 부여하여 보안 위험을 줄인다.
- 예를 들어, 개발자에게는 EC2와 관련된 권한만 부여하고, 관리자는 S3 버킷에 대한 권한을 제한하는 방식으로 세분화한다.
루트 사용자 액세스 키 삭제
루트 사용자 계정에 엑세스 키가 생성된 경우 이를 삭제하는 것이 좋다. 루트 계정의 엑세스 키가 유출되면 큰 보안 위험이 발생할 수 있다.
- 대신, IAM사용자에게 필요한 권한을 부여하고 엑세스 키를 생성하여 사용한다.
IAM 사용자에 대한 MFA 설정
IAM 사용자들도 MFA를 활성화하여 추가적인 보안 조치를 해야 한다.
Cloud Trail 및 CloudWatch
Cloud Trail을 사용하여 AWS 계정의 모든 API를 호출을 기록하고 모니터링할 수 있다. 이렇게 하면 누가 어떤 작업을 수행했는지 추적할 수 있다.
AWS CloudWatch를 설정하여 리소스 사용량과 성능을 모니터링하고, 비정상적인 활동을 감지하여 알림을 받을 수 있다.
'Django > 인프라' 카테고리의 다른 글
[AWS] EC2 사용자 데이터가 재 실행 되도록 설정(테스트 목적) (0) | 2024.10.07 |
---|---|
[AWS] IAM Identity Center 계정 사용자 만들기 & 로그인 (0) | 2024.09.27 |
[AWS] Auto Scaling Group 구현 (0) | 2024.09.25 |
[AWS] Auto Scaling Group 소개 (0) | 2024.09.25 |
[AWS] Application Load Balancer 수평 확장 (0) | 2024.09.25 |
AWS를 공부하면서, 계정을 만들 때 루트 사용자와 IAM 사용자에 대해 확실히 모르고 단순히 통합 계정인가 보다 하고 루트 사용자로 실습을 진행하였는데, 추후 알아보니 루트 사용자로는 일상적인 작업을 하지 않아야 한다는 것을 알게 되었다. 그래서 그 이유와 함께 계정 생성 시 해야 할 것들에 대해서 정리해 보려고 한다.
루트 사용자와 IAM사용자를 분리해야 하는 이유
루트 사용자 & IAM 이란?
루트 사용자 - AWS 계정을 처음 생성할 때, 자동으로 만들어지는 계정으로, AWS 서비스 및 리소스에 대한 무제한적인 권한을 가지게 된다. 이 때문에 루트 사용자는 보안상의 이유로 매우 제한적으로 사용해야 한다.
IAM 사용자 - 루트 사용자 또는 IAM 관리자가 만든다. 각 사용자 별로 AWS 서비스 또는 리소스 액세스에 제한을 둘 수 있다. 액세스 가능한 수준을 그룹으로 만들고 각 사용자를 적당한 그룹에 등록하는 방식으로 제어한다.
보안 위험 최소화
앞서 말했듯, 루트 사용자는 AWS 리소스에 대한 무제한적인 액세스를 제공하며, 모든 작업을 수행할 수 있다. 이 계정이 손상되면 AWS인프라 전체가 위험해질 수 있다.
원칙적 최소 권한
AWS 보안 모범 사례에 따르면, 각 사용자에게 필요한 권한만 부여해야한다, IAM 사용자를 통해 작업에 필요한 권한만 부여하는 것이 원칙적 최소 권한을 준수하는 방법이다.
감사 및 추적 용이성
IAM 사용자를 사용하면 누가 어떤 작업을 했는지 명확하게 감사하고 추적할 수 있다. 각 사용자가 고유의 자격 증명을 사용하므로, 변경 작업이나 액세스 내역을 Cloud Trail 등의 서비스를 통해 모니터링할 수 있다. 반면, 루트 사용자로 작업하면 모든 작업은 동일한 계정으로 기록되기 때문에 구체적인 사용자별 작업 내역을 확인할 수 없다.
루트 계정 보호
루트 계정은 비밀번호를 분실하거나 계정이 도용되면 큰 문제가 발생할 수 있다. 따라서 루트 사용자로의 로그인 자체를 줄임으로써 비밀번호 유출을 줄이고, IAM 사용자를 이용하여 일상적인 작업을 처리하고 루트 계정은 계정 설정 변경과 같은 중요한 작업에만 사용하는 것이 좋다.
루트 사용자 자격 증명이 필요한 작업
루트 사용자만 할 수 있는 작업이 있는데, 이는 어쩔수 없이 루트 사용자로 작업해야 한다.
- 계정 설정의 변경
- IAM 사용자 권한의 복원
- 결제 및 비용 관리 콘솔에 대한 IAM 액세스 활성화
- 특정 세금 계산서 조회
- AWS 계정 닫기
- AWS 지원 플랜 변경 또는 취소
- 마켓플레이스에 판매자로 등록
- Amazon S3 버킷을 구성하여 MFA 삭제를 활성화
- 잘못된 VPC ID 또는 VPC 엔드포인트 ID가 들어있는 Amazon S3 버킷 정책을 편집 또는 삭제
- GovCloud 등록
계정 생성 시 해야 할 중요한 보안 조치
루트 사용자 MFA(다단계 인증) 설정
루트 계정에 MFA를 설정하여 보안 계층을 추가해야 한다. MFA는 비밀번호 외에도 스마트폰 애플리케이션 또는 하드웨어 토큰을 통해 제공되는 추가 코드를 입력해야 하므로, 루트 계정이 해킹되더라도 추가 보안 단계가 있어 보호된다.
IAM 사용자 생성 및 그룹 관리
루트 사용자로 로그인 후, IAM 사용자를 생성하고, 해당 사용자들에게 권한을 부여한다.
- IAM 사용자를 생성할 때, 사용자마다 고유한 액세스 권한을 최소화하여 부여한다.
- 비슷한 역할을 하는 사용자들을 IAM 그룹에 넣어 그룹 단위로 권한을 관리하면 효율적으로 관리할 수 있다.
IAM 사용자에 대한 최소 권한 설정
AWS에서는 최소 권한 원칙을 따르는 것은 매우 중요하다. 각 사용자에게 필요한 권한만 부여하여 보안 위험을 줄인다.
- 예를 들어, 개발자에게는 EC2와 관련된 권한만 부여하고, 관리자는 S3 버킷에 대한 권한을 제한하는 방식으로 세분화한다.
루트 사용자 액세스 키 삭제
루트 사용자 계정에 엑세스 키가 생성된 경우 이를 삭제하는 것이 좋다. 루트 계정의 엑세스 키가 유출되면 큰 보안 위험이 발생할 수 있다.
- 대신, IAM사용자에게 필요한 권한을 부여하고 엑세스 키를 생성하여 사용한다.
IAM 사용자에 대한 MFA 설정
IAM 사용자들도 MFA를 활성화하여 추가적인 보안 조치를 해야 한다.
Cloud Trail 및 CloudWatch
Cloud Trail을 사용하여 AWS 계정의 모든 API를 호출을 기록하고 모니터링할 수 있다. 이렇게 하면 누가 어떤 작업을 수행했는지 추적할 수 있다.
AWS CloudWatch를 설정하여 리소스 사용량과 성능을 모니터링하고, 비정상적인 활동을 감지하여 알림을 받을 수 있다.
'Django > 인프라' 카테고리의 다른 글
[AWS] EC2 사용자 데이터가 재 실행 되도록 설정(테스트 목적) (0) | 2024.10.07 |
---|---|
[AWS] IAM Identity Center 계정 사용자 만들기 & 로그인 (0) | 2024.09.27 |
[AWS] Auto Scaling Group 구현 (0) | 2024.09.25 |
[AWS] Auto Scaling Group 소개 (0) | 2024.09.25 |
[AWS] Application Load Balancer 수평 확장 (0) | 2024.09.25 |