brunch

217.S3버킷 보안

by Master Seo

<1> 요청사항

<2> 조치법

<3> 확인

<4> 기타 참고 자료



<1> 요청사항

S3 사용 중이다.

데이터는 암호화 전송되어야 한다.

CloudTrail로 수집된 로그는 암호화되고 검색되어야 한다.



<2> 조치법

1. S3 버킷 정책에 보안 전송 설정을 한다.

2. S3 암호화를 설정한다.

3. 모든 S3 오브젝트의 데이터 이벤트에 대한 API logging을 활성하라.



<3> 확인

1. S3 버킷 정책에 보안 전송 설정을 한다.

보안 전송 설정하기 : Secure transport

S3 > 해당 버킷 클릭 > Permissions > Bucket Policy > Policy Generator에서 설정한다.


SecureTransport 사용 예제 )

이 키가 true이면 요청이 HTTPS를 통해 전송됨을 의미합니다
https://aws.amazon.com/ko/premiumsupport/knowledge-center/s3-bucket-policy-for-config-rule/


* 아래 내용은 참고만 하기 바란다.



2. S3 암호화를 설정한다.

S3 > 해당 S3 클릭 > 속성 > 기본 암호화 (Default encryption)

> AES-256 or AWS-KMS 로 선택한다.


1) AES-256 사용

: Server-Side Encryption이다. S3 관리키 (SSE-S3)


2) AWS-KMS 사용

AWS-KMS에는 2가지 사용할 수 있다.

aws/s3와 Custom KMS ARN



Custom KMS ARN으로 지정하면, 값을 넣으라고 빈란이 나온다.

Key Management Service (KMS) 에서 KMS 키 만들어 넣으면 된다.


# 테스트시 참고 사항

1) ROOT는 암호화된 데이터도 모두 보인다.

2) 암호화 설정을 하면 업로드한 문서가 암호화된다.

암호화 설정이후 [암호화 없음]으로 변경해도 문서 자체는 암호화된 상태라 볼 수 없다.



3. 모든 S3 오브젝트의 데이터 이벤트에 대한 API logging을 활성하라.


1) 먼저 CloudTrail을 설정을 해야 한다.

CloudTrail 설정이 없으면 Object-level logging 설정이 불가능하다.

참고로 CloudTrail 설정에서 Log AWS KMS events를 남길 수 있다. (디폴트 Yes)

CloudTrail 설정 완료 상태



2) Object-level logging 로깅 설정하기

S3 > 해당 S3 > 속성 > Object-level logging > CloudTrail tail 선택 > Read or Write 체크


<4> 기타 참고 자료

CloudTrail 설정 https://brunch.co.kr/@topasvga/632

S3관리 https://brunch.co.kr/@topasvga/682


감사합니다.

keyword
매거진의 이전글216. AWS 여러 계정 쉽게 옮겨 다니기