Amazon Web Services 한국 블로그
Amazon DynamoDB 저장 시 암호화 기능 신규 출시
2017년 AWS re:Invent에서 Werner Vogels(Amazon CTO)는 기조 연설 중 청중에게 “아무도 보지 않는 것처럼 춤추고, 모두가 보고 있는 것처럼 암호화하라“고 말했습니다.
AWS 팀은 고객이 민감한 데이터를 더 쉽게 보호하고 규정 준수 목표를 달성하도록 돕는 새로운 기능을 추가하기 위해 항상 노력하고 있습니다. 예를 들어, 2017년 AWS는 SQS 및 EFS를 위한 저장 시 암호화, S3를 위한 추가 암호화 옵션 및 Kinesis Data Streams의 서버 측 암호화를 출시했습니다.
그리고 오늘 AWS는 Amazon DynamoDB를 위한 저장 시 암호화라는 또 하나의 데이터 보호 옵션을 제공합니다. 새 테이블을 생성할 때 암호화를 활성화하기만 하면 DynamoDB에서 나머지 과정을 모두 처리해 줍니다. 고객의 데이터(테이블, 로컬 보조 인덱스 및 글로벌 보조 인덱스)는 AES-256 및 서비스 기본 AWS Key Management Service(KMS) 키를 사용하여 암호화됩니다. 암호화는 스토리지에 별도의 부담을 추가하지 않으며 완전히 투명하게 실행되므로 사용자는 이전과 마찬가지로 항목을 삽입, 쿼리, 검색 및 삭제할 수 있습니다. 암호화가 활성화된 DynamoDB에 서로 다른 워크로드를 몇 가지 실행하여도 지연 시간의 차이는 관찰되지 않았습니다.
암호화된 테이블 생성
암호화된 테이블은 AWS Management Console, API(CreateTable
) 또는 CLI(create-table
)에서 생성할 수 있습니다. 저는 콘솔을 사용해 보겠습니다. 먼저 이름을 입력하고 평소대로 기본 키를 설정합니다.
계속하기 전에 기본 설정 사용 선택을 취소하고 아래의 암호화 섹션으로 스크롤하여 암호화 사용을 선택합니다. 그런 다음 생성을 클릭하면 암호화된 형식의 테이블이 생성됩니다.
테이블에 대한 암호화 설정은 한 눈에 볼 수 있습니다.
컴플라이언스 팀이 DynamoDB에서 키를 사용하여 데이터를 암호화하는 방식을 보여 달라고 요청할 때에는 AWS CloudTrail 추적을 생성하고 항목을 삽입한 다음 테이블을 검색하여 AWS KMS API에 대한 호출을 볼 수 있습니다. 다음은 추적에서 발췌한 부분입니다.
{
"eventTime": "2018-01-24T00:06:34Z",
"eventSource": "kms.amazonaws.com",
"eventName": "Decrypt",
"awsRegion": "us-west-2",
"sourceIPAddress": "dynamodb.amazonaws.com",
"userAgent": "dynamodb.amazonaws.com",
"requestParameters": {
"encryptionContext": {
"aws:dynamodb:tableName": "reg-users",
"aws:dynamodb:subscriberId": "1234567890"
}
},
"responseElements": null,
"requestID": "7072def1-009a-11e8-9ab9-4504c26bd391",
"eventID": "3698678a-d04e-48c7-96f2-3d734c5c7903",
"readOnly": true,
"resources": [
{
"ARN": "arn:aws:kms:us-west-2:1234567890:key/e7bd721d-37f3-4acd-bec5-4d08c765f9f5",
"accountId": "1234567890",
"type": "AWS::KMS::Key"
}
]
}
정식 출시
이 기능은 이제 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤) 및 EU(아일랜드) 리전에서 제공되며 지금 바로 사용할 수 있습니다.
암호화에는 별도의 요금이 부과되지 않으며 해당 DynamoDB에서 고객을 대신하여 AWS KMS로 전송하는 호출에 대한 요금만 부과됩니다.
— Jeff;