아마존 클라우드

[클라우드] Amazon KMS(Key management System) 사용 방법

트리스탄1234 2023. 8. 5. 07:12
728x90
반응형

 
안녕하세요 이웃님들 ^.^
데이터 보안은 아무리 강조해도 지나치지 않은 항목 입니다. 
 
데이터 보안은 데이터를 보낼때 암호화 하는 방법과 저장된 데이터를 암호화 하는 방법으로
나눌수가 있는데요..

데이터 암호화는 키를 사용해서 암호화를 하는데요. 이런 Key를 관리 하는것도 쉽지 않은 일입니다.
Key관리를 중앙 집중형으로 쉽게 관리하게 해주는 서비스가 KMS서비스 인데요.

이 서비스의 사용 방법에 대해서 알아 보도록 하겠습니다. 
AWS 관리 콘솔  에서 Key management Service를 검색 하고 클릭 합니다..
 
 

아래 화면과 같이 선택을 하고 다음을 클릭 합니다. 

아래 화면과 같이 선택을 하고 다음을 클릭 합니다. 

아래 화면에서 로그인할때 사용하는 사용자와 역활을 선택을 하고 다음을 클릭 합니다.
키 사용자는 AWS 콘솔 화면 우측 상단의 계정 ID로 검색을 하고.
해당 Role을 선택을 하면 됩니다.

여기서 키 관리자는 암호화 키에 대한 엑세스를 관리할 사용자나 역활을 의미 하고. 
키 사용자는 키를 사용하여 데이터를 암호화 및 복호화할 사용자 또는 역할입니다.
 
키 사용자 권한정의에서 role을 클릭 후 다음을 클릭 합니다. 
키 사용자는 AWS 콘솔 화면 우측 상단의 계정 ID로 검색을 하고.
해당 Role을 선택을 하면 됩니다.

 
검토 창에서 아래 키 정책 코드를 검토한 후 완료를 클릭 합니다.

아래와 같이 Key가 성공적으로 생성이 되었음을 확인할 수 있습니다. 

키 ID를 메모장에 복사해 둡니다.
 
이제 키는 생성을 하였고 S3버킷에 로그를 저장하도록 Cloudtrail을  구성을 해보겠습니다. 이 과제에서는 새 S3 버킷에 로그 파일을 저장하도록 CloudTrail을 구성합니다.
 
AWS 콘솔에서 CloudTrail을 검색하고 클릭을 한후 왼쪽 화면에서 추적을 클릭 합니다.

추적생성을 클릭 하고, 아래 화면과 같이 값을 입력 하고 다음을 클릭 합니다.

로그 이벤트 선택창에서 아래와 같이 선택을 합니다. 

 
데이터 이벤트에서 기본 이벤트 선택기로 변환을 클릭 하고 다음을 클릭 합니다. 

인사이트 이벤트에서 아래와 같이 선택을 하고 넥스트를 클릭 합니다.

검토 및 생성에서 검토 후 아래 추적 생성 버튼을 클릭 합니다. 

 
이제 이미지 파일을 S3 버킷에 업로드하고 앞서 생성한 암호화 키를 사용하여 암호화를 하고
이전 과제에서 생성한 S3 버킷을 사용하여 이미지 파일을 저장해 보겠습니다. 

 
 
AWS 관리 콘솔 상단의  Services 메뉴 오른쪽에 있는 검색 창에서  S3를 검색하고 클릭을 하고 mycloudtrailbucket* 선택 합니다. .

  1. S3
  2. mycloudtrailbucket*를 선택합니다.
  3. Objects 탭에서 Upload를 선택합니다.
  4. Add files를 선택합니다.
  5. 컴퓨터에서 이미지 파일을 찾아 선택합니다.
  6. 화면 하단에서  Properties를 확장합니다.
  7. Server-side encryption settings 섹션에서  Specify an encryption key를 선택합니다.
  8. Encryption settings에서  Override bucket settings for default encryption을 선택합니다.
  9. Encryption key type에서  AWS Key Management Service key (SSE-KMS)를 선택합니다.
  10. AWS KMS key에서  Choose from your AWS KMS keys를 선택합니다.
  11. Available AWS KMS keys 드롭다운 메뉴에서 myFirstKey를 선택합니다.
  12. 화면 하단으로 스크롤한 다음 Upload를 선택합니다.
  13. Upload: status 페이지의 오른쪽 모서리에서 Close를 선택합니다.
  14. 버킷 이름(왼쪽 위에 표시됨)을 선택하여 버킷 세부 정보로 돌아갑니다.
  15. Last modified 시간을 텍스트 편집기에 기록합니다.
  16. 버킷 이름(왼쪽 위에 표시됨)을 선택하여 버킷 세부 정보로 돌아갑니다.

과제 4: 암호화된 이미지 액세스

이 과제에서는 AWS Management Console 및 S3 링크 모두를 통해 암호화된 이미지에 액세스하려고 시도합니다.

  1. Objects 탭에서  이미지 이름을 선택하고 Open 을 선택합니다.

이미지가 새 탭/창에서 열립니다.
사용자가 데이터 해독을 요청하면 Amazon S3와 AWS KMS가 다음 작업을 수행합니다.

  • Amazon S3가 암호화된 데이터 키를 AWS KMS로 보냅니다.
  • AWS KMS는 적절한 마스터 키를 이용해 키를 복호화한 후 일반 텍스트 키를 다시 Amazon S3로 보냅니다.
  • Amazon S3는 암호화 텍스트를 복호화하고, 최대한 빨리 메모리에서 일반 텍스트 데이터 키를 제거합니다.
  1. 이미지를 보여주는 창/탭을 닫습니다.
  2. 이미지 이름을 선택하고  S3 객체 URL을 텍스트 편집기에 복사합니다.

S3 객체 URL은 https://mycloudtrailbucket10619.s3-us-west-2.amazonaws.com/Eiffel.jpg와 비슷합니다.

  1. 앞서 복사한 S3 객체 URL을 새 브라우저/창에 붙여넣습니다.
  2. Enter 키를 누릅니다.
  3. 페이지에 무엇이 표시됩니까?

Access Denied가 표시되어야 합니다. 이는 기본적으로 퍼블릭 액세스가 허용되지 않기 때문입니다.

  1. AWS 관리 콘솔의 화면 상단에서 버킷 이름을 선택합니다.
  2. Permissions 탭을 선택합니다.
  3. Block public access (bucket settings)에 Edit를 선택합니다.
  4.  Block all public access를 선택 취소합니다.
  5. Save changes를 선택한 다음,
    confirm
    을 입력합니다.
  • Confirm을 선택합니다.
  1. Object Ownership으로 스크롤하여 Edit를 선택합니다.
  2.  ACLs enabled를 선택합니다.
  3. Enabling ACLs turns off the bucket owner enforced setting for Object Ownership에  I acknowledge that ACLs will be restored를 선택합니다.
  4. Save changes를 선택합니다.
  5. Object 탭에서  이미지를 선택합니다.
  6. Actions > Make public via ACL을 선택합니다.
  7. Make public을 선택합니다.
  8. Make public: status 페이지의 오른쪽 모서리에서 Close를 선택합니다.
  9. 앞서 S3 객체 URL을 연 새 탭/창의 화면을  새로 고칩니다.
  10. 무엇이 보입니까?

이미지가 암호화되어 있으므로 퍼블릭 링크를 사용하여 이미지를 볼 수 없습니다. Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4.라는 메시지가 표시될 것입니다.
SSE-KMS로 암호화된 객체를 업로드 또는 액세스하는 경우 강화된 보안을 위해 AWS Signature Version 4를 사용해야 합니다. Signature Version 4는 AWS 요청에 대해 인증 정보를 추가하는 프로세스입니다. AWS Command Line Interface (AWS CLI) 또는 AWS SDK 중 하나를 이용해 AWS에 요청할 경우 도구를 구성할 때 지정한 액세스 키를 사용하여 요청에 자동으로 서명됩니다. 따라서 이러한 도구를 사용할 경우 요청에 서명하는 방법을 알 필요가 없습니다. 이 프로세스에 대한 자세한 내용은 다음 블로그 게시물을 읽어보십시오. 블로그 게시물

  1. 새 탭/창을 닫습니다.

과제 5: CloudTrail 로그를 사용하여 KMS 활동 모니터링

이 과제에서는 CloudTrail 로그 파일에 액세스하고 암호화 작업과 관련된 로그를 확인합니다.

  1. Objects 탭을 선택합니다.
  2.  AWSLogs/ 폴더를 로그 파일이 있는 폴더에 도달할 때까지 드릴다운합니다.

경로는 다음과 비슷합니다. Amazon S3 > AWSLogs/ > 197167081626/ > CloudTrail/ > 

**Region**

 > 2019 > 07 > 10
위의 예에서 Region을 버킷이 생성된 리전의 이름으로 바꿉니다.
로그 파일이 표시되지 않으면 로그 파일이 표시될 때까지 몇 초마다 새로 고침  버튼을 선택합니다.
로그 파일은 확장자가 *.json.gz입니다.

  1. Last modified 날짜가 다운로드한 이미지 파일의 타임스탬프보다 늦은 로그 파일이 보입니까?
  2. Last modified 데이터가 업로드된 이미지 파일의 타임스탬프보다 늦은 로그 파일이 없으면 로그 파일이 나타날 때까지 몇 초마다 새로 고침  버튼을 계속 선택합니다.

Last modified 타임스탬프가 업로드한 이미지 파일의 타임스탬프보다 늦은 로그 파일이 표시되려면 최대 5분이 걸릴 수 있습니다.

  1. 목록에서 최신 로그 파일을 선택합니다.
  2. Open을 선택합니다.
  3. 팝업 보안 경고가 표시되면 파일을 연다고 확인합니다. 팝업 보안 경고가 표시되지 않는 경우 다음 단계로 진행합니다.

 브라우저 보안 설정은 팝업을 무시할 수 있습니다. 열리는 파일이 없고 팝업 알림이 표시되지 않는 경우 브라우저의 설정 섹션에서 팝업을 활성화해야 합니다.
Google Chrome 또는 Firefox를 사용하지 않는 경우 컴퓨터에서 로컬 유틸리티를 사용하여 gz 압축 파일을 다운로드하고 압축을 풀어야 할 수 있습니다. .gz 파일의 압축을 풀었으면 텍스트 편집기에서 열어야 합니다.
로그 파일은 JSON 형식이며 CloudTrail에 의해 기록된 각 API 호출을 포함하고 있습니다. 사용하는 브라우저에 따라 로그 파일이 약간 다르게 보일 수 있습니다.

  1. 로그 파일에서 다음을 검색합니다.
  • 텍스트 편집기에 복사한 암호화 키 ID
  • 업로드하는 파일의 이름 (파일 이름이 암호화 키 ID가 포함된 동일한 로그 파일에 표시되어야 합니다.)

 위의 항목을 찾을 수 없으면 다음 로그 파일이 나타날 때까지 5분 더 기다렸다가 해당 로그 파일을 엽니다. 첫 번째 로그 파일에는 찾고 있는 로그가 포함되어 있지 않을 수 있습니다.

과제 6: 암호화 키 관리

이 과제에서는 사용자 및 역할에 대한 암호화 키를 관리합니다.

  1. AWS 관리 콘솔 상단의  Services 메뉴 오른쪽에 있는 검색 창에서  를 검색한 다음, 목록에서 Key Management Service 를 선택합니다.
  2. Key Management Service
  3. myFirstKey를 선택합니다.

이 페이지에서는 키 설명을 변경하고, 키 관리자 및 키 사용자를 추가 또는 제거하고, 외부 사용자가 키에 액세스하도록 허용하고, 키를 연간 순환에 배치할 수 있습니다.

  1. Key users 섹션에서  로그인하는 데 사용하는 사용자 또는 역할을 선택합니다.
  2. Remove를 선택합니다.

이 키를 사용할 수 있는 사용자의 권한이 제거되었습니다.

  1. Key users 섹션에서 Add를 선택한 다음,
  •  로그인하는 데 사용하는 사용자 또는 역할을 선택합니다.
  • Add를 선택합니다.

여기에는 생성한 KMS 키를 사용할 수 있는 IAM 사용자 또는 역할을 제어하는 방법이 표시됩니다. 동일한 추가 및 제거 단계를 사용하여 KMS 키를 관리할 수 있는 IAM 사용자를 제어합니다.

728x90
반응형