본문 바로가기

Management

[실습] Control Tower 구성하기 - 3편 (보안과 규제 관리)

반응형

안녕하세요 서후아빠입니다. ^_^

이번 세션은 Control Tower 3편으로 Control Tower를 이용하여 보안과 규제를 어떻게 관리하는지 실습을 해보겠습니다.


구성도

Prod 계정에 위치한 EC2 상태 : Public Subnet 위치, 보안그룹에서 0.0.0.0/0 → SSH 허용
Detective Controls 설정 : SSH 퍼블릭 접근 금지
Preventive Controls 설정 : S3 Bucket 암호화 설정 변경 금지
Detective (Config의 Rule 이용) : VPC Flow Log 활성화 감시
Preventive (SCP 이용) : EC2 인스턴스 정지 및 종료 시 MFA 필수
Organizations의 Policies : OU or AWS 계정에 연결해서 적용 (Service control policies(SCP), Tag policies,  Backup policies 등)

Detective Controls 활성화

Management 계정 > Control Tower > All controls > SSH 검색하여 선택 > Enable control > Production OU 선택 > Enable control on OU

OUs enabled (tab) > Enable 확인
Accounts (tab) > Prod 계정에서 Compliant / Enrolled 확인

Management 계정 > Control Tower > Dashboard 

  - Noncompliant resources : 0.0.0.0/0 → SSH 허용한 보안그룹 ID 확인

  - Registered organizational units : Production OU 상태 Noncompliant 확인

  - Enrolled accounts : Prod 계정 상태 Noncompliant 확인

Control에 의해 규정 위반(Any에서 접근 허용된 SSH 보안정책)된 리소스가 감지되고, 그 리소스가 위치한 OU정보 및 AWS 계정 정보도 확인됩니다. 

Preventive Controls 활성화

Management 계정 > Control Tower > All controls > AWS-GR_AUDIT_BUCKET_ENCRYPTION 검색하여 선택 > Enable control > Production OU 선택 > Enable control on OU

OUs enabled (tab) > Enable 확인
Accounts (tab) > Prod 계정에서 Compliant / Enrolled 확인

IAM Identity Center(SSO) 통해 AWS Prod 계정 접속 > S3 > Buckets > 기존 버킷 선택(없는 경우 생성) > Properties (tab) > Default encryption의 Edit > Server-side encryption (Enable) > Save changes > 팝업(…Identity and access management in Amazon S3…)

AWS-GR_AUDIT_BUCKET_ENCRYPTION  정책에 의해서 버킷의 암호화 설정이 차단됩니다. 

Config의 Rule 이용한 Detective

IAM Identity Center(SSO) 통해 AWS Prod 계정 접속 > Config > Rules > Add rule

Specify rule type Configure rule
Select rule type : Add AWS managed rule
AWS Managed Rules : vpc-flow-logs-enabled
Name : vpc-flow-logs-enabled
Trigger Frequency : 1 hour
Prod 계정에서 1시간마다 VPC Flow Log Enabled 상태 체크하는 정책을 생성합니다.

IAM Identity Center(SSO) 통해 AWS Prod 계정 접속 > Config > Rules > vpc-flow-logs-enabled > Resources in scope에서 Compliance 상태 확인

Management 계정에서 Config Rule을 일괄적으로 배포하는 기능이 없기 때문에 Config Rule은 개별 계정에서 설정하며, 결과는 Management 계정의 Config Aggregator에서 일괄적으로 조회 가능합니다.

SCP를 이용한 Preventive 

Management 계정 > Organizations > Policies > Service control policies > Enable Service control policies > Create policy

Details Code
Policy name : scp_ec2_stop_mfa
Policy description : Do not delete if there is no MFA.
{"Version": "2012-10-17",
  "Statement": [{
    "Action": [
      "ec2:StopInstances",
      "ec2:TerminateInstances"],
    "Resource": "*",
    "Effect": "Deny",
    "Condition": {
      "BoolIfExists": {
        "aws:MultiFactorAuthPresent": false
}}}]}

Management 계정 > Organizations > Policies > Service control policies > Enable Service control policies > scp_ec2_stop_mfa 선택 >Targets (tab) > Attach > Production OU 선택 > Attach policy
IAM Identity Center(SSO) 통해 AWS Prod 계정 접속 > EC2 > Instances > EC2 선택 > Instance state > Stop instance or Terminate instance > 팝업(Failed to stop ….)

scp_ec2_stop_mfa 정책에 의해서 MFA 없이 중지하는 행위는 실패됩니다.
반응형