Amazon AWS :: KMS로 S3와 EBS 데이터 암호화
국내 전문 CDN 사업자인 GS네오텍은 2015년에 Amazon Web Service의 AWS Premier Consulting 파트너로서 WiseN 이라는 서비스 브랜드로 클라우드 사업을 함께 하고 있습니다.
Amazon AWS KMS로 S3와 EBS 데이터 암호화
아마존 KMS로 S3와 EBS 데이터 암호화
다루는 내용
-
KMS 키 관리
-
S3 Server Side Encryption
-
EBS Volume Encryption
실습
KMS(Key Management Service) 키 관리
KMS는 데이터 보호에 사용되는 암호화 키를 아마존에서 중앙 집중식으로 관리 해주는 서비스이다.
S3, EBS, RDS, Redshift, Elastic Transcoder, WorkMail과 통합되어있다. 또한 CloudTrail에서 KMS의 사용 내역을 로깅할 수 있다.
IAM User 생성
테스트를 위해 KMS를 생성,사용하는 User 계정과 권한이 없는 User 계정이 각각 필요하다.
-
arang : administrator 권한
-
user1 : AmazonEC2FullAccess, AmazonS3FullAccess 권한
CMK(Customer Master Key) 생성
KMS의 범위는 리전이다. 리전별로 default key가 생성되어 있기 때문에 별도로 생성하지 않아도 KMS를 사용할 수 있지만, CMK는 default key 보다 키의 주기적인 교체, 권한 설정, 로그 감사 등에서 더 많은 기능을 제공한다.
-
콘솔에서 Identity & Access Management 클릭
-
왼쪽 메뉴에서 Encryption Keys 클릭
-
Filter: 에서 리전 변경 (예. US West Oregon)
IAM의 범위는 Global이기 때문에 KMS의 범위 설정은 페이지 내에서 할 수 있도록 구성되어 있다. -
Create Key 클릭
-
Create Alias and Description 페이지에서1) Alias (required) : oregon-cmk 입력2) Next Step 클릭
-
Define Key Administrative Permissions 페이지에서
KMS API를 사용할 수 있는 관리자 권한1) arang 선택2) Next Step 클릭 -
Define Key Usage Permissions 페이지에서
KMS를 사용할 user 계정 선택1) arang 선택2) Next Step 클릭 -
Preview Key Policy 페이지에서
위 설정에 따라 자동으로 policy가 생성됨
상세 설명 : http://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/key-policies.html1) Finish 클릭aws/ebs가 default key이고, oregon-cmk가 커스텀 마스터 키이다.
CMK(Customer Master Key) 비활성화/ 삭제
비활성화 및 삭제가 가능하다.
S3 Server Side Encryption
S3 버킷에 컨텐츠를 업로드할 때 KMS를 이용하여 Server Side Encryption을 하고, Key에 대해 권한이 없는 계정으로 다운로드가 가능한지 확인해 본다.
-
콘솔에서 S3 클릭
-
버킷 생성 (예. arang-kms-lab)
-
암호화 하지 않고 업로드/ 다운로드
Server Side Encryption: None 상태이다.
파일명을 더블 클릭하면 arang, user1 사용자 모두 이미지가 노출된다. -
암호화 하여 업로드/ 다운로드1) Upload 클릭2) Add Files 클릭3) 파일 선택4) Set Defails 클릭5) Use Server Side Encryption 선택6) Use an AWS Key Management Service master key 선택7) Master Key : oregon-cmk 선택8) Start Upload 클릭9) Properties 확인oregon-cmk 키로 Server Side Encryption 되어 있다.10) arang 계정으로 로그인 후 파일명 더블 클릭 : 이미지가 정상적으로 노출된다.
Link: https://s3-us-west-2.amazonaws.com/arang-kms-lab/Penguins.jpg 를 클릭한 경우는 복호화 요청을 하지 않았기 때문에 InvalidArgument 상태를 리턴한다.11) user1 계정으로 로그인 후 파일명 더블 클릭 : KMS에 권한이 없으므로 AccessDenied 상태를 리턴한다.
EBS Volume Encryption
EBS Encryption을 테스트하기 위해 인스턴스를 생성한다.
-
인스턴스와 EBS은 동일 AZ에 위치해야 한다.
-
OS 영역은 Encryption이 지원되지 않는다.
-
인스턴스 생성 마법사에서 EBS를 추가할 경우는 default key을 사용한다.
-
모든 인스턴스 타입이 EBS Encryption을 지원하지는 않는다.
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances
Volume 생성
-
콘솔에서 EC2 클릭
-
왼쪽 메뉴에서 Volumes 클릭
-
Create Volume 클릭1) Size : 10 입력2) Availability Zone : 인스턴스와 동일 AZ 선택3) Encryption : 체크4) Master Key : oregon-cmk 선택5) Create 클릭
-
볼륨 할당1) 볼륨 선택2) Actions → Attach Volume 클릭3) Instance : 인스턴스 선택4) Attach 클릭
-
확인
Encrypted EBS 동작 확인
EBS는 인스턴스를 통해서만 접근이 가능하다.
arang 계정은 EBS Encryption에 사용된 KMS(CMK)에 권한이 있으므로 인스턴스에 해당 EBS를 Attache 할 수 있다. 그러나 user1 계정은 권한이 없으므로 해당 EBS를 Attach 할 때 에러 메시지가 나타난다.
-
user1 계정으로 인스턴스에 Encrypted EBS Attach1) 볼륨 선택2) Action → Attach Volume 클릭3) Instance : 인스턴스 선택4) Attach 클릭
참고
※ https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/EBSEncryption.html
Reference : GS네오텍 WiseN 서비스
www.SalesMore.co.kr
'Cloud AWS' 카테고리의 다른 글
Amazon AWS MOBILE HUB 사용 (0) | 2015.11.15 |
---|---|
Amazon AWS :: WAF 적용 (0) | 2015.11.15 |
Amazon AWS :: COGNITO소개 (0) | 2015.11.15 |
Amazon AWS :: Elastic Block Store(EBS) 소개 (0) | 2015.11.14 |
Amazon AWS :: Elastic Compute Cloud(EC2) 소개 (0) | 2015.11.14 |