S3 Default Encryption vs Bucket Policies
- S3 버킷에 객체를 푸시하고 객체가 암호화되도록 하기 위해서는 버킷 정책을 사용해 암호화를 강제할 수 있음
- 버킷 정책을 사용하면 API 호출에서 암호화 헤더가 지정되지 않은 채 S3에 도달하면 요청이 거부되므로
사용자의 S3 버킷에 푸시되는 모든 객체를 암호화하는 효과를 가져옴
- S3의 기본 암호화 옵션을 사용하여 객체를 암호화할 수 있음
- 기본 암호화 옵션을 사용하면 암호화되지 않은 객체를 S3에 업로드하면 기본 암호화 옵션을 통해 암호화가 이루어짐
다만 암호화된 객체를 업로드할 때 재암호화가 되지 않음 - 버킷 정책 방식이 기본 암호화보다 먼저 우선적으로 고려됨
예) SSE-S3이라는 암호화 매커니즘을 강제하려면 버킷 정책을 사용해야 하지만
버킷 내 모든 객체를 암호화하는 것이 목적이라면 기본 암호화를 사용
<S3 기본 암호화 실습>
- 버킷 생성 후 기본 암호화
s3-default-encryption-stephane-demo 이라는 이름으로 버킷을 생성한 후 Properties 탭에서 기본 암호화 확인
기본 암호화의 경우 해당 버킷에 저장되는 새 객체를 자동 암호화하므로 이를 활성화시키고 암호화 유형을 선택할 수 있음
암호화 유형에는 SSE-S3, SSE-KMS를 선택하여 사용자 키를 지정할 수 있음
- 기본 암호화 확인 및 덮어쓰기
암호화 필드를 검색해서 찾아보면 서버 측 암호화 설정이 객체에 활성화되어 있는 것을 볼 수 있으며
사용 중인 서버 측 암호화는 SSE-S3임을 알 수 있음
이 후 다른 객체를 업로드한 후에도 기본 암호화 버킷 설정이나 덮어쓰기를 선택해 새로운 암호화를 설정할 수 있음
즉, 덮어쓰기를 선택한 후 SSE-KMS를 선택하여 업로드할 경우 기본 암호화가 활성화되어 있음에도 불구하고
방금 그 파일은 KMS 키로 암호화 되어 있음을 볼 수 있음
그러므로 기본 암호화가 모든 파일의 암호화에 적용되는 게 아니라 객체를 암호화하지 않은 채 업로드하면
기본 암호화 메커니즘이 자동으로 암호화를 하는 메커니즘일 뿐이라는 것을 알 수 있음
'Cloud > AWS' 카테고리의 다른 글
[SAA] S3 복제 (리전 간 동일한 리전) (0) | 2022.03.27 |
---|---|
[SAA] S3 액세스 로그 (0) | 2022.03.27 |
[SAA] S3 MFA Delete (0) | 2022.03.27 |
[SAA] AWS SDK 개요 (0) | 2022.03.23 |
[SAA] AWS EC2 인스턴스 메타데이터 (0) | 2022.03.23 |