AWS Security Workshop - 권한 위임

Glen·2023년 6월 7일
0

aws security workshop

목록 보기
1/10
post-thumbnail

link

https://identity-round-robin.awssecworkshops.com/delegation/

시나리오

  1. AWS 환경 내에서 데이터, 호스트 및 네트워크 트래픽을 모니터링하고 비정상적인 동작을 감지하는 데 도움이 되는 Amazon GuardDuty, Inspector 및 Macie와 같은 서비스가 존재.
  2. 팀 구성원이 업무를 수행할 수 있도록 이러한 서비스에 대한 충분한 액세스 권한을 부여하고 싶지만 너무 많은 액세스 권한을 부여하는 것은 부적절함.

조건

  • AWS 보안 관리자는 AWS 보안 서비스에 대한 전체 액세스 권한이 필요
  • 반면 AWS 보안 운영자는 서비스에 대한 "읽기 전용" 액세스 권한만 필요

사전 준비 단계

  1. Macie 활성화
  2. GuardDuty 활성화
  3. Cloudformation 생성
  • 실습에서 제공한 파일(Deploy to AWS)
    - 예전 실습이라 권한 설정이 잘못됨.
    - Operator 권한 별도 수정필요.
    - IAM 사용자 생성필요.

  • 검토 부분에서 iam 생성 승인 체크
  • cloudformation 완료

Cloudformation 확인

  • LoggingBucketName : AWS CloudTrail 로그를 전달할 버킷 이름
  • SecAdministratorRoleURL : 보안 관리자 역할로 일시적으로 "전환"(액세스 권한을 가져옴)하는 데 사용할 URL
    • 권한 : CloudTrail, GuardDuty, Inspector, Macie에 대한 전체 관리
  • SecOperatorRoleURL : 임시로 보안 운영자 역할로 "전환"하는 데 사용할 URL
    - 권한 : CloudTrail, GuardDuty, Inspector, Macie에 대한 "읽기 전용"

S3

  • 위에서 생성된 버킷의 정책. 이 정책은 CloudTrail 서비스가 LoggingBucket 의 ACL을 읽고 AWS 계정 ID가 포함된 접두사가 있는 로그를 생성하도록 허용

    {
        "Version": "2008-10-17",
        "Statement": [
            {
                "Sid": "AWSCloudTrailAclCheckESSLab",
                "Effect": "Allow",
                "Principal": {
                    "Service": "cloudtrail.amazonaws.com"
                },
                "Action": "s3:GetBucketAcl",
                "Resource": "arn:aws:s3:::esslab-loggingbucket-15n5hhm5pcijx"
            },
            {
                "Sid": "AWSCloudTrailWriteESSLab",
                "Effect": "Allow",
                "Principal": {
                    "Service": "cloudtrail.amazonaws.com"
                },
                "Action": "s3:PutObject",
                "Resource": "arn:aws:s3:::esslab-loggingbucket-15n5hhm5pcijx/AWSLogs/862320186501/*",
                "Condition": {
                    "StringEquals": {
                        "s3:x-amz-acl": "bucket-owner-full-control"
                    }
                }
            }
        ]
    }
  • bucket arn > logs > account id > cloudtrail > region > 년월일> 로그

IAM 이해

  • 앞서 cloudformation을 통해 iam 역할이 생성
    - SecAdministrator / SecOperator

SecAdministrator

  • 역할명 : esslab-SecAdministratorRole-1LTZQX7OYPF83

SecOperator(실습 전 권한 확인)

  • 역할명 : esslab-SecOperatorRole-ETNX9808GAFG
    - 정책이 대부분 FullAccess라 readonly로 수동 변경하여 진행 필요
    - Macie도 수정해야됨.

  • 변경 후

각 역할의 신뢰관계

  • 루트 어카운트에 대해서만 assume 받아 사용할수있다.
    - 다른 어카운트에서 사용해야 한다면 principal에 명시.

역할 전환 실습

  • 옛날 자료다 보니 매끄럽게 되지 않음.

    • 아마도 실습계정 말고 별도의 iam 계정으로 로그인한 상태여야 하는듯함.
  • 역할 전환이 되려면 일단 iam 사용자로 로그인해야함.(루트 X)

    • SecAdmin 으로 생성.
      • SecAdmin 사용자는 assume 정책만 부여하기때문에 아무 역할을 하지 못함.
  • 콘솔에 로그인할 수 있도록 활성화 및 패스워드 생성

  • 역할은 임시자격증명. SecAdmin에 임시자격증명을 얻기위한 정책을 추가.
    - 별도로 생성.

  • SecAdmin으로 로그인

  • SecAdmin으로 로그인 후 SecAdministrator로 역할전환

SecAdministrator

  • 관리자의 권한을 위임 받았는지 확인해본다.

Inspector

  • inspector classice > 평가템플릿 > 체크 후 복제
    - SecAdministrator의 역할에서 inspector의 권한이 존재하는지 확인

Guardduty

  • 결과내보내기 옵션의 업데이트빈도를 1시간마다로 변경 후 저장

Macie

  • 일시중지하여 확인

Cloudtrail

  • 로깅중지로 확인
    - 확인 후 다시 시작

이로써 Inspector, Macie, GuardDuty 및 CloudTrail에 대한 관리 액세스 권한이 있음을 확인

SecOperator

  • 보안 운영자로 역할 변경하여 진행

Inspector

  • 템플릿 생성으로 권한 테스트
    - 권한없음 확인

Guardduty

  • 아까와 같은 내보내기 옵션 수정 후 저장
    • 권한 없음 확인

Macie

  • 다시 활성화 시도
    - 권한 없음 확인

Cloudtrail

  • 로깅중지 시도
    - 권한 없음 확인
profile
어제보다 나은 엔지니어가 되기 위해서 공부중

0개의 댓글