WorkSpaces에서 AWS KMS 사용 방법 - AWS Key Management Service

WorkSpaces에서 AWS KMS 사용 방법

WorkSpaces를 이용해 각 최종 사용자에게 클라우드 기반 데스크톱(WorkSpace)을 프로비저닝할 수 있습니다. 새 WorkSpace를 시작할 때 볼륨을 암호화하기로 선택하고 어떤 AWS KMS key를 암호화에 사용할지 결정할 수 있습니다. WorkSpaces의 경우 AWS 관리형 키(aws/workspaces) 또는 대칭 고객 관리형 키를 선택할 수 있습니다.

중요

WorkSpaces는 대칭 암호화 KMS 키만 지원합니다. 비대칭 KMS 키를 사용하여 WorkSpaces의 볼륨을 암호화할 수 없습니다. KMS 키가 대칭 또는 비대칭인지 여부를 확인하는 방법은 비대칭 KMS 키 식별 단원을 참조하세요.

암호화된 볼륨으로 WorkSpaces를 생성하는 방법에 대한 자세한 내용은 Amazon WorkSpaces 관리 안내서WorkSpace 암호화를 참조하세요.

AWS KMS를 사용한 WorkSpaces 암호화 개요

암호화된 볼륨으로 WorkSpaces를 만들면 WorkSpaces가 Amazon Elastic Block Store(Amazon EBS)를 이용해 이러한 볼륨을 만들고 관리합니다. 두 서비스 모두 AWS KMS key를 사용하여 암호화된 볼륨으로 작업합니다. EBS 볼륨 암호화에 대한 자세한 내용은 다음 문서를 참조하십시오.

암호화된 볼륨으로 WorkSpaces를 시작하면 종단 간 프로세스는 다음과 같습니다.

  1. 암호화 및 WorkSpace의 사용자와 디렉터리에 사용할 KMS 키를 지정합니다. 이 작업은 WorkSpaces가 이 WorkSpace에 대해서만, 즉 지정된 사용자 및 디렉터리와 연결된 WorkSpace에 대해서만 KMS 키를 사용할 수 있도록 허용하는 권한을 생성합니다.

  2. WorkSpaces는 WorkSpace에 사용할 암호화된 EBS 볼륨을 생성하고, 사용할 KMS 키와 볼륨의 사용자 및 디렉터리를 지정합니다(단계 1에서 지정한 정보와 동일). 이 작업은 Amazon EBS가 이 WorkSpace 및 볼륨에 대해서만, 즉 지정된 사용자 및 디렉터리와 연결된 WorkSpace에 대해서만 지정된 볼륨에 대해서만 KMS 키를 사용할 수 있도록 허용하는 권한을 생성합니다.

  3. Amazon EBS는 KMS 키 하에서 암호화된 볼륨 데이터 키를 요청하고 WorkSpace 사용자의 Sid 및 디렉터리 ID, 볼륨 ID를 암호화 컨텍스트로 지정합니다.

  4. AWS KMS가 새 데이터 키를 생성하고 KMS 키 하에서 암호화한 후, 암호화된 데이터 키를 모두 Amazon EBS로 보냅니다.

  5. WorkSpaces는 Amazon EBS를 사용하여 암호화된 볼륨을 WorkSpace Space에 연결합니다. Amazon EBS는 Decrypt 요청과 함께 암호화된 데이터 키를 AWS KMS에 보내고 WorkSpace 사용자의 Sid, 디렉터리 ID 및 암호화 컨텍스트로 사용되는 볼륨 ID를 지정합니다.

  6. AWS KMS는 KMS 키를 이용해 데이터 키를 복호화한 후 일반 텍스트 데이터 키를 Amazon EBS로 보냅니다.

  7. Amazon EBS에서는 일반 텍스트 데이터 키를 이용해 암호화된 볼륨으로 들어오거나 나가는 모든 데이터를 암호화합니다. 볼륨이 WorkSpace Space에 연결되어 있는 동안에는 Amazon EBS는 일반 텍스트 데이터 키를 메모리에 유지합니다.

  8. Amazon EBS는 나중에 WorkSpace를 재부팅하거나 다시 빌드할 때 사용할 볼륨 메타데이터로 암호화된 데이터 키(단계 4에서 수신)를 저장합니다.

  9. AWS Management Console을 사용하여 WorkSpace를 제거하거나 WorkSpaces API에서 TerminateWorkspaces 작업을 사용하면 WorkSpaces 및 Amazon EBS는 해당 WorkSpace에 대해 KMS 키를 사용할 수 있도록 허용한 권한을 폐기합니다.

WorkSpaces 암호화 컨텍스트

WorkSpaces는 암호화 작업(예: Encrypt, Decrypt, GenerateDataKey 등)에 AWS KMS key을 직접 사용하지 않습니다. 즉, WorkSpaces는 암호화 컨텍스트가 포함된 요청을 AWS KMS에 보내지 않습니다. 그러나 Amazon EBS가 WorkSpaces의 암호화된 볼륨(AWS KMS를 사용한 WorkSpaces 암호화 개요단계 3)에 대해 암호화된 데이터 키를 요청하고 해당 데이터 키(단계 5)의 일반 텍스트 사본을 요청할 때 요청에 암호화 컨텍스트를 포함합니다. 암호화 컨텍스트는 AWS KMS가 데이터 무결성을 보장하기 위해 사용하는 추가 인증 데이터(AAD)를 제공합니다. 암호화 컨텍스트는 AWS CloudTrail 로그 파일에도 기록되어, 그 AWS KMS key이 사용된 이유를 이해하는 데 도움을 줍니다. Amazon EBS는 암호화 컨텍스트에 대해 다음을 사용합니다.

  • WorkSpace에 연결된 AWS Directory Service 사용자의 sid

  • WorkSpace에 연결된 AWS Directory Service 디렉터리의 디렉터리 ID

  • 암호화된 볼륨의 볼륨 ID

다음 예는 Amazon EBS가 사용하는 암호화 컨텍스트의 JSON 표시를 보여줍니다.

{ "aws:workspaces:sid-directoryid": "[S-1-5-21-277731876-1789304096-451871588-1107]@[d-1234abcd01]", "aws:ebs:id": "vol-1234abcd" }

WorkSpaces에 사용자 대신 KMS 키를 사용할 수 있는 권한 부여하기

WorkSpaces용 AWS 관리형 키(aws/workspaces) 또는 고객 관리형 키에서 작업 공간 데이터를 보호할 수 있습니다. 고객 관리형 키를 사용하는 경우 WorkSpaces에 계정의 WorkSpaces 관리자를 대신하여 KMS 키를 사용할 수 있는 권한을 부여해야 합니다. WorkSpaces용 AWS 관리형 키에는 기본적으로 필요한 권한이 있습니다.

WorkSpaces에서 사용하도록 고객 관리형 키를 준비하려면 다음 절차를 따르십시오.

WorkSpaces 관리자는 WorkSpaces를 사용할 수 있는 권한도 필요합니다. 이러한 권한에 대한 자세한 내용은 Amazon WorkSpaces 관리 안내서WorkSpaces 리소스에 대한 액세스 제어를 참조하십시오.

1부: KMS 키의 키 사용자에 WorkSpaces 관리자 추가

WorkSpaces 관리자에게 필요한 권한을 제공하기 위해 AWS Management Console 또는 AWS KMS API를 사용할 수 있습니다.

WorkSpaces 관리자를 KMS 키의 키 사용자로 추가하려면(콘솔)

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/kms에서 AWS Key Management Service(AWS KMS) 콘솔을 엽니다.

  2. AWS 리전을 변경하려면 페이지의 오른쪽 상단 모서리에 있는 리전 선택기를 사용합니다.

  3. 탐색 창에서 고객 관리형 키(Customer managed keys)를 선택합니다.

  4. 선호하는 고객 관리형 키의 키 ID 또는 별칭을 선택합니다.

  5. 키 정책(Key policy) 탭을 선택합니다. 키 사용자에서 추가(Add)를 선택합니다.

  6. IAM 사용자 및 역할 목록에서 WorkSpaces 관리자에 해당하는 사용자와 역할을 선택한 후 연결(Attach)을 선택합니다.

WorkSpaces 관리자를 KMS 키의 키 사용자로 추가하려면(AWS KMS API)

  1. GetKeyPolicy 작업을 이용해 기존 키 정책을 검색한 다음, 이 정책 문서를 파일에 저장합니다.

  2. 원하는 텍스트 편집기에서 정책 문서를 엽니다. WorkSpaces 관리자에 해당하는 IAM 사용자와 역할을 키 사용자에게 권한을 부여하는 정책문에 추가합니다. 그런 다음 파일을 저장합니다.

  3. PutKeyPolicy 작업을 이용해 KMS 키에 키 정책을 적용합니다.

2부: WorkSpaces 관리자에게 추가 권한 부여

고객 관리형 키를 사용하여 WorkSpaces 데이터를 보호하는 경우 기본 키 정책의 키 사용자 섹션에 있는 권한 외에도 WorkSpaces 관리자는 KMS 키에 대한 권한 부여를 생성할 수 있는 권한이 필요합니다. 또한 AWS Management Console에서 암호화된 볼륨으로 WorkSpaces를 생성한 경우에는 WorkSpaces 관리자에게 별칭 및 키를 나열할 수 있는 권한이 필요합니다. IAM 사용자 정책 생성 및 편집에 대한 자세한 내용은 IAM 사용 설명서관리형 정책 및 인라인 정책을 참조하십시오.

WorkSpaces 관리자에게 이러한 권한을 부여하려면 IAM 정책을 사용합니다. 다음 예제와 비슷한 정책 설명을 각 WorkSpaces 관리자를 위한 IAM 정책에 추가합니다. 예제에서 KMS 키 ARN(arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab)을 유효한 ARN으로 바꿉니다. WorkSpaces 관리자가 콘솔이 아닌 WorkSpaces API만 사용하는 경우, "kms:ListAliases""kms:ListKeys" 권한에 관한 두 번째 정책문을 생략할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:ListKeys" ], "Resource": "*" } ] }