May 12, 2023

AWS 클라우드 서버 구축 4

AWS 클라우드 서버 구축 4

계정 보안 확인 체크리스트

checklist

Root 계정만이 할수 있는 작업이외에는 IAM 계정을 생성하여 권한을 부여하고 사용하는 것을 권장한다.

AWS의 멀티 팩터 인증을 반드시 활성화하여 보안성을 강화하는 것을 권장한다.

AWS 계정 루트 사용자에 대한 액세스 키는 되도록 생성하지 않고 IAM 사용자를 생성하여 필요한 권한을 부여하고 사용하는 것을 권장한다.

1. Root 계정을 직접 사용하고 있는지?

인터뷰 항목

① 루트 계정 액세스키 삭제 또는 IAM 계정 액세스키로 변경
② 루트 계정 멀티 팩터 인증 설정하기
③ 일반 IAM 계정을 생성하여 권한 부여후 사용할 것.

root_policy

2. 불필요한 AWS 계정이 있는지?

IAM > 사용자

① IAM 사용자 리스트 점검

  • 계정별로 사용자를 확인할 수 있도록 한다.
  • 사용자가 확인되지 않는 계정은 삭제한다.
    ② 1인 1계정을 사용한다.
  • 공용 계정은 사용하지 않는다.
    ③ 장기 휴가자 또는 퇴사자의 계정은 삭제한다.
    ④ 외부 계약 종료 업체 계정도 삭제한다.

no_need_aws

3. MFA는 필수로 설정했는지?

IAM > 사용자 > 해당 계정

① 사용자 MFA 부분으로 확인하여 활성화 하도록함.

mfa

4. 그룹에 적절한 권한을 부여했는지?

IAM > 그룹 > Admin > 권한

① 그룹 또는 개별 권한을 확인
② Admin의 권한이 할당되어 있으면 회수
③ DB 생성 권한등은 최소 인원만 가지도록 설정(기존 온프레미스에서 DB는 DBE만 접속한다.)
④ 직무에 맞는 권한 정책을 설정한다.

group_policy

5. 액세스키는 최소화하여 발급했는지?

IAM > 사용자 > 해당 계정 > 보안 자격 증명

① 액세스 키의 노출로 인해 보안 문제 발생 가능성 존재
② 사용자를 인식할 수 있는 일반 계정을 생성하여 사용
③ 서비스용 프로그래밍 방식 액세스 키는 별도로 생성하여 사용한다.
AWS API, CLI, SDK 및 기타 개발 도구에 대해 액세스 키 ID 및 비밀 액세스 키
일반 사용자 계정 삭제시 서비스가 안될 수 있으므로 서비스용 계정은 별도로 생성 관리한다.

access_key

6. 액세스키는 주기적으로 변경하고 있는지?

IAM > 사용자 > 해당 계정 > 보안 자격 증명

① 액세스 키의 노출로 인해 보안 문제 발생 가능성 존재 하므로 주기적으로 변경하도록 한다.
② 2개까지 생성할 수 있으므로 추가로 생성하고, 기존 액세스 키는 삭제한다.
③ 마지막 활동일 확인 : 30일이 넘지 않도록 한다.
④ Key 수명과 비밀번호 수명 확인 : 60일이 넘지 않도록 한다.

access_key_change

7. PEM키의 경우 외부 유출 되지 않도록 관리되고 있는지?

EC2 > Keypair > 해당 key

① PEM키는 되도록 외부 유출이 되지 않도록 한다.
② 외부 유출시에는 아래 보이는 화면의 메뉴를 통하여 해당 키를 삭제하도록 한다.

pem_key

8. EC2-USER등 기본 접속 계정은 삭제 하였는지?

① 생성한 인스턴스 OS의 기본 계정은 삭제하고, 새로운 계정을 생성하여 사용한다.

Amazon Linux 인스턴스의 사용자 계정 관리
Amazon Linux 2 또는 Amazon Linux AMI의 경우 사용자 이름은 ec2-user입니다.
CentOS AMI의 경우 사용자 이름은 centos입니다.
Debian AMI의 경우 사용자 이름은 admin입니다.
Fedora AMI의 경우 사용자 이름은 ec2-user 또는 fedora입니다.
RHEL AMI의 경우 사용자 이름은 ec2-user 또는 root입니다.
SUSE AMI의 경우 사용자 이름은 ec2-user 또는 root입니다.
Ubuntu AMI의 경우 사용자 이름은 ubuntu입니다.

ec2-user 및 root를 사용할 수 없는 경우 AMI 공급자에게 문의.

EC2-USER

9. SaaS 서버 서비스의 계정관리와 2차 인증 설정 여부.

① IAM에서 SaaS를 이용 및 관리할 계정을 별도로 생성하고 해당 권한의 그룹 정책을 AWSMarketplaceFullAccess 등과 같은 정책에서 선택되어 있는지 확인한다.
② 해당계정의 로그인시 MFA가 설정되어 있는지 확인한다.
③ 세부사항은 AWS Marketplace 설명서를 참고한다.

SaaS_01
SaaS_02

10. AD와 연계하여 퇴사자등의 변경 발생시 AWS 계정도 삭제되고 있는지?

AD 를 사용하는 경우에 확인
서비스> Active Directory

① AD Connector 또는 AWS Managed Microsoft AD를 사용하도록 선택합니다.

해결 방법
먼저 AD Connector 또는 AWS Managed Microsoft AD를 사용하도록 선택합니다.

VPN 연결을 생성하고 다음과 같은 최소 포트 요구 사항으로 온프레미스 도메인 간에 AD Connector를 구성합니다. DNS용 TCP/UDP 53 Kerberos 인증용 TCP/UDP 88 LDAP 인증용 TCP/UDP 389 자세한 내용은 AD Connector 사전 조건을 참조하세요.
또는 다음과 같은 최소 포트 요구 사항으로 온프레미스 도메인과 AWS Managed Microsoft AD 간에 기존 신뢰 관계를 사용합니다.
DNS용 TCP/UDP 53
Kerberos 인증용 TCP/UDP 88
LDAP 인증용 TCP/UDP 389
SMB용 TCP 445
자세한 내용은 AWS Managed Microsoft AD와 온프레미스 도메인 간 신뢰 관계 생성을 참조하세요.

그런 다음 인증을 설정하려면 다음 단계를 따르세요.
디렉터리의 액세스 URL을 생성합니다.
AD Connector 또는 AWS Managed Microsoft AD에 대한 AWS Management Console 액세스를 활성화합니다.
Active Directory 사용자에게 액세스 권한을 부여하려는 서비스의 AWS Management Console에 액세스 권한을 부여하는 IAM 역할을 생성합니다.
참고: IAM 역할이 AWS Directory Service와 신뢰 관계를 맺고 있는지 확인합니다.
Active Directory 사용자 또는 그룹을 IAM 역할에 할당합니다.
사용자가 AWS Management Console에 액세스할 수 있는지 확인합니다. 프라이빗 검색 세션에서 디렉터리 액세스 URL을 열고 IAM 역할에 할당된 사용자 계정으로 로그인합니다. 그런 다음 AWS 서비스 콘솔에서 IAM 역할에 지정된 서비스에 대한 액세스가 허용 또는 거부되었는지 확인합니다.

https://aws.amazon.com/ko/premiumsupport/knowledge-center/enable-active-directory-console-access/