IT STUDY LOG

[SECTION 5] <Final Project> DAY 8 LOG 본문

devops bootcamp 4/project log

[SECTION 5] <Final Project> DAY 8 LOG

roheerumi 2023. 6. 21. 09:54

# Daily Plan

  1. 날짜 : 2023.06.21
  2. 금일 주요 업무
    • 보안프로세스 구현 및 기능확인
    • 자동 태깅 구현
    • 그라파나 대시보드 구현
    • 일일 성능지표 구현
  3. 쉬는시간
    • 매시 정각~10분

 


# Process Log

1. Task Log

⓿ 자동화 실행을 위한 IAM 역할 생성

Step 1 : AWS 서비스에서 신뢰 권한으로 System Manager와 iam 설정

Step 2 : 권한에 Automation Role 관련 관리형 정책 추가

Step 3 : 생성된 역할에 인라인 정책으로 서비스나 리소스 에 역할을 전달할 수 있는 권한(iam:PassRole)을 부여

Step 4 : 이 외에도 자동화를 수행할 때 필요한 리소스의 권한을 부여

- 아래와 같은 경우 EC2의 RevokeSecurityGroupIngress API 실행 권한이 AutomationRole에 없다는 뜻이므로 인라인 권한 정책으로 해당 리소스의 API 권한을 부여

 

❶  Config에서 자동 수정이 가능한 일부 취약점의 경우 system manager를 활용해 자동 수정 진행 테스트

Step 1 : 규정을 준수하지 않는 보안 그룹을 수정하기 위해 AWS Systems Manager Automation Runbook 복제

  1. AWS 시스템 관리자 콘솔 로 이동 후 왼쪽 열의 공유 리소스 메뉴에서 문서를 클릭
  2. 검색 필터에 유형을 AWS-DisablePublicAccessForSecurityGroup입력하고 Enter 키를 입력
  3. AWS-DisablePublicAccessForSecurityGroup 문서를 클릭 후 작업 버튼을 클릭 하고 문서 복제를 선택
  4. 문서 이름에 Custom-DisablePublicAccessForSecurityGroup을 입력
  5. 문서 설명 변경
  6. 문서 내에서 3단계: DisableSSHFromIpV6 섹션까지 아래로 스크롤한 다음 해당 섹션 다음에 단계 추가를 선택
  7. 단계 이름에는 DisableMYSQLFromIpV4를 사용
  8. 사용할 작업 유형은 AWS API 작업 호출 및 실행
  9. 입력에서 서비스를 ec2 로 설정 하고 API를 RevokeSecurityGroupIngress 로 설정
  10. 추가 입력 - 선택 사항 에서 두 개의 입력을 추가 
    1. 첫 번째로 입력 이름을 GroupId, 값을 {{GroupId}}로 입력
    2. 선택적 입력 추가를 선택해 입력 이름이 IpPermissions 이고 입력 값이 다음인 두 번째 입력을 추가
      - IpProtocol: tcp
        FromPort: 3306
        ToPort: 3306
        IpRanges:
         - CidrIp: 0.0.0.0/0
  11. 입력 내용은 아래 이미지와 같아야 함
  12. On Failure 섹션 에서 Common properties - optional 메뉴를 확장하고 Continue 값을 추가
  13. 단계 추가를 다시 클릭하여 IpV6을 교정할 또 다른 단계를 추가
  14. 수정을 클릭
  15. 이 단계에서는 DisableMYSQLFromIpV6 이라는 이름을 사용
  16. 작업 유형은 다시 AWS API 작업 호출 및 실행
  17. 입력에서 서비스를 ec2 로 설정 하고 API를 RevokeSecurityGroupIngress 로 설정
  18. 추가 입력에서 두 개의 입력을 추가 
    1. 첫 번째로 입력 이름을 GroupId, 값을 {{GroupId}}로 입력
    2. 선택적 입력 추가를 선택해 입력 이름이 IpPermissions 이고 입력 값이 다음인 두 번째 입력을 추가
      - IpProtocol: tcp
        FromPort: 3306
        ToPort: 3306
        Ipv6Ranges:
         - CidrIpv6: '::/0'
  19. On Failure 섹션 에서 Common properties - optional 메뉴를 확장하고 Continue 값을 추가
  20. 화면 하단에서 자동화 만들기를 클릭

Step 2 : 보안 그룹에 비준수 수신 추가

  1. EC2 콘솔 로 이동
  2. 왼쪽의 네트워크 및 보안 섹션 에서 보안 그룹 클릭
  3. 워크숍 보안 그룹을 선택하고 인바운드 규칙 탭을 클릭
  4. 인바운드 규칙 편집을 클릭
  5. 규칙 추가 를 클릭
    • 유형: SSH 선택 및 소스: Anywhere-IPv4
  6. 규칙 추가 를 클릭
    • 유형: SSH 선택 및 소스: Anywhere-IPv6
  7. RDP 및 MYSQL/Aurora 에 대해 5-8단계를 반복 하고 규칙 저장을 클릭
     

Step 3 : 비준수 리소스 수정

  1. AWS config 콘솔 로 이동을 클릭한 다음 콘솔 왼쪽에서 규칙을 클릭
  2. restricted-common-ports 규칙을 찾아 선택
  3. 작업 | 문제 해결 관리 선택
  4. 편집: 수정 작업에서 다음을 수행
    • 수정 방법: 자동 수정
    • 수정 작업: Custom-DisablePublicAccessForSecurityGroup
    • 리소스 ID 매개변수: GroupId (이렇게 하면 비준수 보안 그룹 ID가 수정 작업에 전달됨)
  5. 저장 클릭
    1. 구성 변경 시 감지하는 규칙의 경우 알아서 변경 탐지되지만 24시간 마다 탐지하는 규칙의 경우 작업 >재평가 과정을 통해 재평가 필요
  6. 범위 내 리소스에서 무제한 액세스를 추가한 보안 그룹을 선택하고 Remediate 를 클릭
  7. AWS Config로 돌아가서 limited-common-ports 규칙을 클릭 하고 규칙을 한 번 더 재평가해서 보안 그룹이 규정을 준수하는지 확인

 

❷ Config & Automation 수행할 규칙 선별

- Security Hub의 컨트롤 레퍼런스를 참고해 심각도가 Critical, High이며 Config의 관리형 규칙에 해당하는 규칙들  정리

config rule name automation availibility architecture Security
control ID
Security control title Severity Schedule type
iam-root-access-key-check x o IAM.4 IAM root user access key should not exist CRITICAL Periodic
root-account-hardware-mfa-enabled x o IAM.6 Hardware MFA should be enabled for the root user CRITICAL Periodic
lambda-function-public-access-prohibited x o Lambda.1 Lambda function policies should prohibit public access CRITICAL Change triggered
rds-snapshots-public-prohibited x o RDS.1 RDS snapshot should be private CRITICAL Change triggered
rds-instance-public-access-check https://ap-northeast-2.console.aws.amazon.com/systems-manager/documents/AWSConfigRemediation-DisablePublicAccessToRDSInstance/description?region=ap-northeast-2 o RDS.2 RDS DB Instances should prohibit public access, as determined by the PubliclyAccessible configuration CRITICAL Change triggered
s3-bucket-public-read-prohibited https://ap-northeast-2.console.aws.amazon.com/systems-manager/documents/AWS-DisableS3BucketPublicReadWrite/description?region=ap-northeast-2 o S3.2 S3 buckets should prohibit public read access CRITICAL Periodic and change triggered
s3-bucket-public-write-prohibited https://ap-northeast-2.console.aws.amazon.com/systems-manager/documents/AWS-DisableS3BucketPublicReadWrite/description?region=ap-northeast-2 o S3.3 S3 buckets should prohibit public write access CRITICAL Periodic and change triggered
ssm-document-not-public x o SSM.4 SSM documents should not be public CRITICAL Periodic
account-part-of-organizations x o Account.2 AWS account should be part of an AWS Organizations organization HIGH Periodic
multi-region-cloudtrail-enabled x o CloudTrail.1 CloudTrail should be enabled and configured with at least one multi-Region trail that includes read and write management events HIGH Periodic
cloudtrail-enabled x o CloudTrail.3 CloudTrail should be enabled HIGH Periodic
cloudwatch-alarm-action-check x o CloudWatch.15 CloudWatch Alarms should have an action configured for the ALARM state HIGH Change triggered
cloudwatch-alarm-action-enabled-check x o CloudWatch.17 CloudWatch alarm actions should be enabled HIGH Change triggered
ecr-private-image-scanning-enabled x o ECR.1 ECR private repositories should have image scanning configured HIGH Change triggered
ecs-task-definition-pid-mode-check x o ECS.3 ECS task definitions should not share the host's process namespace HIGH Change triggered
ecs-containers-nonprivileged x o ECS.4 ECS containers should run as non-privileged HIGH Change triggered
ecs-containers-readonly-access x o ECS.5 ECS containers should be limited to read-only access to root filesystems HIGH Change triggered
ecs-no-environment-secrets(x) x o ECS.8 Secrets should not be passed as container environment variables HIGH Change triggered
guardduty-enabled-centralize https://ap-northeast-2.console.aws.amazon.com/systems-manager/documents/AWSConfigRemediation-CreateGuardDutyDetector/description?region=ap-northeast-2 o GuardDuty.1 GuardDuty should be enabled HIGH Periodic
iam-policy-no-statements-with-admin-access https://ap-northeast-2.console.aws.amazon.com/systems-manager/documents/AWSConfigRemediation-ReplaceIAMInlinePolicy/description?region=ap-northeast-2 o IAM.1 IAM policies should not allow full "*" administrative privileges HIGH Change triggered
rds-automatic-minor-version-upgrade-enabled https://ap-northeast-2.console.aws.amazon.com/systems-manager/documents/AWSConfigRemediation-EnableMinorVersionUpgradeOnRDSDBInstance/description?region=ap-northeast-2 o RDS.13 RDS automatic minor version upgrades should be enabled HIGH Change triggered
s3-bucket-policy-not-more-permissive(x) x o S3.6 S3 permissions granted to other AWS accounts in bucket policies should be restricted HIGH Change triggered
s3-account-level-public-access-blocks https://ap-northeast-2.console.aws.amazon.com/systems-manager/documents/AWSConfigRemediation-ConfigureS3PublicAccessBlock/description?region=ap-northeast-2 o S3.8 S3 Block Public Access setting should be enabled at the bucket-level HIGH Change triggered

 

❸ ❷에서 선별한 Config 규칙들 중 SSM에서 관리형 Document를 제공하는 규칙들에 한해 Automation 구현


# Daily Reporting

☑️ 일일 업무 보고서 작성

☑️ Config에서 자동 수정이 가능한 일부 취약점의 경우 system manager를 활용해 자동 수정 진행 테스트

☑️ config & automation 수행할 규칙 선별

☑️ Config의 일부 취약점 System Manager Automation 구현

☑️ 프로젝트 요구사항 중간 미팅


# references

https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/systems-manager-automation.html

 

AWS Systems Manager 자동화 - AWS Systems Manager

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사 실망시켜 드려 죄송 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/automation-setup-iam.html

 

방법 2: IAM을 사용하여 Automation을 위한 역할 구성 - AWS Systems Manager

AWS-CreateManagedLinuxInstance 실행서와 같은 실행서에서도 이 역할을 사용할 수도 있습니다. 실행서에서 이 역할 또는 AWS Identity and Access Management(IAM) 역할의 Amazon 리소스 이름(ARN)을 사용하면 Automation

docs.aws.amazon.com

https://catalog.us-east-1.prod.workshops.aws/workshops/65e30a39-2f37-4e82-ba04-3ad41328fb5b/en-US/lab01

 

Workshop Studio

 

catalog.us-east-1.prod.workshops.aws

https://docs.aws.amazon.com/ko_kr/securityhub/latest/userguide/securityhub-controls-reference.html

 

Security Hub 제어 참조 - AWS Security Hub

 

docs.aws.amazon.com

 

Comments