AWS Key Management Service 기능

개요

AWS Key Management Service(KMS)를 사용하면 데이터 보호에 사용되는 암호화 키를 제어할 수 있습니다. AWS KMS를 사용하면 키의 수명 주기와 권한을 중앙 집중식으로 제어할 수 있습니다. 원할 때 언제든지 새 키를 생성할 수 있으며, 키를 관리할 수 있는 사람과 키를 사용할 수 있는 사람을 별도로 제어할 수 있습니다. 이 서비스는 다른 AWS 서비스와 통합되므로 이러한 서비스에 저장한 데이터를 쉽게 암호화하고 이를 복호화하는 키에 대한 액세스를 제어할 수 있습니다. 또한 AWS KMS를 AWS CloudTrail과 통합하면 누가 어느 리소스에서 언제 키를 사용했는지에 대한 감사를 수행하는 데 도움이 됩니다. AWS KMS는 직접 또는 AWS SDK를 사용하여 애플리케이션 코드에 암호화 또는 디지털 서명 기능을 더 쉽게 추가하는 데 도움이 됩니다. AWS Encryption SDK는 애플리케이션 내에서 데이터를 로컬로 암호화 및 복호화해야 하는 개발자를 위해 키 공급자로 AWS KMS를 지원합니다.

Page Topics

주요 기능

주요 기능

AWS 계정에 AWS CloudTrail을 활성화한 경우 AWS KMS에 대한 각 요청이 로그 파일에 기록됩니다. 이 로그 파일은 AWS CloudTrail을 사용하도록 설정할 때 지정한 Amazon Simple Storage Service(S3) 버킷으로 전달됩니다. 사용자, 시간, 날짜, API 작업 및 사용된 키(관련이 있는 경우)에 대한 세부 정보 등의 정보가 기록됩니다.

AWS KMS는 완전관리형 서비스입니다. 암호화 사용이 증가하면 사용자의 필요에 맞게 자동으로 서비스가 확장됩니다. 계정에 있는 수만 개의 KMS 키를 관리하고 언제든지 사용하는 데 도움이 됩니다. 키 개수와 요청 빈도에 대한 기본 한도를 정의하지만 필요한 경우 한도 상향을 요청할 수 있습니다.

사용자가 생성한 KMS 키 또는 자동으로 다른 AWS 서비스에서 생성된 키를 서비스에서 내보낼 수는 없습니다. 따라서 AWS KMS가 키의 내구성을 책임지게 됩니다. 키와 데이터의 고가용성을 확보할 수 있도록, AWS KMS는 내구성 99.999999999%에 맞게 설계된 시스템에 키의 암호화된 버전의 여러 사본을 저장합니다.

리전 간에 이동하는 암호화된 데이터 또는 디지털 서명 워크플로(재해 복구, 다중 리전 고가용성 아키텍처, DynamoDB 글로벌 테이블 및 전 세계적으로 분산된 일관된 디지털 서명)의 경우 KMS 다중 리전 키를 생성할 수 있습니다. KMS 다중 리전 키는 여러 리전에 복제할 수 있는 동일한 키 구성 요소 및 키 ID와 상호 운용 가능한 키 세트입니다.

AWS KMS는 리전 API 엔드포인트에서 가용성이 높은 서비스를 제공하도록 설계되었습니다. AWS KMS는 대부분의 AWS 서비스에서 암호화 및 복호화에 사용되기 때문에 높은 수준의 가용성을 제공하도록 설계되었습니다. 이 가용성은 나머지 AWS를 지원하며 AWS KMS 서비스 수준 계약으로 보장됩니다.

AWS KMS는 AWS 직원을 비롯하여 누구도 서비스에서 평문 키를 검색하지 못하도록 설계되었습니다. 이 서비스는 키의 기밀성과 무결성을 보호하기 위해 미국 국립 표준 기술 연구소(NIST) 연방 정보 처리 표준(FIPS) 140-2 암호화 모듈 검증 프로그램에 의해 지속적으로 검증되는 하드웨어 보안 모듈(HSM)을 사용합니다. AWS KMS HSM은 KMS 키를 보호하기 위한 신뢰할 수 있는 암호화 루트입니다. KMS에서 발생하는 모든 암호화 작업을 위한 안전한 하드웨어 보호 경계를 만듭니다. AWS KMS HSM에서 생성된 KMS 키의 모든 키 구성 요소 및 해독된 KMS 키 구성 요소를 필요로 하는 모든 작업은 해당 HSM의 FIPS 140-2 보안 수준 3 내에서 엄격하게 수행됩니다. AWS KMS HSM 펌웨어 업데이트는 Amazon 내 독립적인 그룹에 의해 감사 및 검토되는 다자간 액세스 제어를 통해 제어됩니다. FIPS 140 요구 사항에 따라 KMS HSM의 모든 펌웨어 변경 사항은 FIPS 140-2 보안 수준 3에 따른 검증을 위해 NIST 공인 연구소에 제출됩니다.

평문 키가 디스크에 작성되는 일은 없으며, 요청한 암호화 작업을 수행하는 데 필요할 때만 HSM 휘발성 메모리에서 사용됩니다. 이는 사용자를 대신하여 키를 생성하거나, 서비스로 키를 가져오거나, 사용자 지정 키 스토어 기능을 사용하여 AWS CloudHSM 클러스터에서 키를 생성하도록 AWS KMS에 요청하는지에 관계없이 적용됩니다. 단일 리전 키를 생성할지 또는 다중 리전 키를 생성할지 선택합니다. 단일 리전 키는 해당 키가 생성된 AWS 리전 밖으로 전송되지 않으며 해당 키가 생성된 리전에서만 사용할 수 있습니다.
 

AWS KMS가 설계된 방식과 키 보호를 위해 AWS KMS에서 사용하는 암호화에 대한 자세한 내용은 AWS KMS 암호화 세부 정보 백서를 참조하세요.

* Beijing Sinnet Technology Co., Ltd.("Sinnet") Sinnet에서 운영하는 AWS 중국(베이징) 리전과 Ningxia Western Cloud Data Technology Co., Ltd.("NWCD") NWCD에서 운영하는 AWS 중국(닝샤) 리전에서, HSM은 중국 정부의 승인(FIPS 140-2 인증 아님)을 받았으며, 위에 언급한 암호화 세부 정보 백서는 적용되지 않습니다. 

AWS KMS는 비대칭 KMS 키 및 데이터 키 페어를 생성하고 사용하는 데 도움이 됩니다. 서명 키 페어, 암호화 키 페어 또는 키 계약 키 페어로 사용할 KMS 키를 지정할 수 있습니다. 해당 KMS 키를 사용한 키 페어 생성 및 비대칭 암호 작업은 HSM 내에서 수행됩니다. 로컬 애플리케이션에서 사용하기 위해 비대칭 KMS 키의 퍼블릭 부분을 요청할 수는 있지만 프라이빗 부분은 서비스에서 벗어나지 않습니다. 자체 키 관리 인프라에서 비대칭 키의 비공개 부분을 가져올 수 있습니다.

또한 비대칭 데이터 키 페어를 생성하기 위한 서비스를 요청할 수 있습니다. 해당 작업에서는 퍼블릭 키, 프라이빗 키의 일반 텍스트 사본 및 사용자가 지정한 대칭 KMS 키로 암호화된 프라이빗 키의 사본을 반환합니다. 사용자의 현지 애플리케이션에서 일반 텍스트 퍼블릭 또는 프라이빗 키를 사용하거나 추후 사용을 위해 프라이빗 키의 암호화된 사본을 저장할 수 있습니다.

* 비대칭 키는 사용자 지정 키 스토어 옵션에서 지원되지 않습니다.

AWS KMS의 FIPS 140-2 검증 HSM 안에서 해시 기반 메시지 인증 코드(HMAC)를 생성하고 확인할 수 있습니다. HMAC는 암호화 구축 블록으로, 보안 정보 키 구성 요소와 해시 함수를 통합하여 고유한 키가 지정된 메시지 인증 코드를 생성할 수 있습니다. HMAC KMS 키는 키 구성 요소가 완전히 AWS KMS 안에서 생성 및 사용되기 때문에 애플리케이션 소프트웨어의 HMAC보다 낫습니다. 또한 사용자가 키에 설정한 액세스 제어가 적용됩니다. AWS KMS에 사용되는 HMAC KMS 키 및 HMAC 알고리즘은 RFC 2104에 정의된 산업 표준을 준수합니다. HMAC KMS 키는 FIPS 140-2 Cryptographic Module Validation Program에 따라 인증되는 AWS KMS 하드웨어 보안 모듈에서 생성되고 암호화되지 않은 상태로는 AWS KMS 외부로 나가지 않습니다. 자체 키 관리 인프라에서 자체 HMAC 키를 가져올 수도 있습니다.

*AWS KMS HMAC 키는 사용자 지정 키 스토어에서 지원되지 않습니다.
** FIPS 140-2는 Sinnet에서 운영하는 AWS 중국(베이징) 리전과 NWCD에서 운영하는 AWS 중국(닝샤) 리전의 AWS KMS에는 적용되지 않습니다. 대신, 중국 리전의 HSM은 중국 정부에서 사용을 승인했습니다.

AWS KMS의 보안 및 품질 제어는 다음 규정 준수 체제에서 검증 및 인증을 받았습니다.

  • AWS System and Organization Controls(SOC) 보고서(SOC 1, SOC 2, SOC 3) AWS Artifact에서 보고서 사본을 다운로드할 수 있습니다.
  • Cloud Computing Compliance Controls Catalog(C5). 독일 정부가 지원하는 인증 제도 C5에 대해 자세히 알아보세요.
  • Payment Card Industry Data Security Standard(PCI DSS) 수준 1. AWS의 PCI DSS FAQ에서 PCI DSS 준수 서비스에 대해 자세히 알아보세요.
  • 연방 정보 처리 표준(FIPS) 140-2. AWS KMS 암호화 모듈은 미국 국립 표준 기술 연구소(NIST)의 FIPS 140-2 보안 수준 3으로 검증되었습니다. AWS KMS HSM에 대한 FIPS 140-2 인증서와 관련 보안 정책을 확인하여 자세히 알아보세요.
  • 연방 정부 위험 및 인증 관리 프로그램(FedRAMP). FedRAMP 규정 준수에서 AWS FedRAMP 규정 준수에 대해 자세히 알아보세요.
  • 조직에 도움이 될 수 있습니다. HIPAA 규정 준수 웹 페이지에서 자세히 알아보세요.

AWS KMS는 여기에 나열된 기타 규정 준수 체제에 대해 검증되고 인증되었습니다.

* FIPS 140-2는 Sinnet에서 운영하는 AWS 중국(베이징) 리전과 NWCD에서 운영하는 AWS 중국(닝샤) 리전의 AWS KMS에는 적용되지 않습니다. 대신, 중국 리전의 HSM은 중국 정부에서 사용을 승인했습니다.

사용자 지정 키 스토어는 AWS KMS의 편리하고 포괄적인 키 관리 인터페이스를 사용하면서 키 구성 요소 및 암호화 작업이 발생하는 디바이스를 소유하고 제어할 수 있다는 이점을 제공합니다. 따라서 암호화 키의 가용성 및 내구성과 HSM의 운영에 대한 책임을 사용자가 더 많이 지게 됩니다. AWS KMS는 2가지 유형의 사용자 지정 키 스토어를 제공합니다.

CloudHSM 지원 키 스토어

AWS CloudHSM 사용자 지정 키 저장소에서 KMS 키를 생성할 수 있습니다. 모든 키는 사용자가 소유하고 관리하는 AWS CloudHSM 클러스터에 생성되고 저장됩니다. 사용자 지정 키 저장소의 KMS 키를 사용하는 경우 해당 키를 사용한 암호화 작업은 AWS CloudHSM 클러스터에서만 수행됩니다.

사용자 지정 키 저장소를 사용하면 AWS CloudHSM 클러스터에 대한 비용이 추가되며 해당 클러스터에 있는 키 구성 요소의 가용성에 대한 책임은 사용자에게 있습니다. 사용자 지정 키 저장소가 사용자 요구 사항에 적합한지에 대한 지침은 이 블로그를 참조하세요.

외부 키 스토어

규제 요구 사항에 따라 온프레미스에 또는 AWS 클라우드 외부에서 암호화 키를 저장하거나 사용해야 하는 경우 AWS KMS 외부 키 스토어(XKS)에 KMS 키를 생성할 수 있습니다. 이 경우 모든 키는 AWS 외부에서 사용자가 소유하고 관리하는 외부 키 관리자에 생성되고 저장됩니다. XKS를 사용하면 키 구성 요소가 사용자의 HSM을 떠나지 않습니다.

외부 키 저장소를 사용하는 경우 표준 KMS 키 또는 CloudHSM 사용자 지정 키 저장소의 키와 달리 외부 키의 키 구성 요소 및 암호화 작업에 대한 내구성, 가용성, 지연 시간, 성능, 보안에 대한 책임은 사용자에게 있습니다. KMS 작업의 성능 및 가용성은 사용하는 XKS 인프라의 하드웨어, 소프트웨어 또는 네트워킹 구성 요소의 영향을 받을 수 있습니다. XKS에 대해 자세히 알아보려면 이 AWS 뉴스 블로그를 읽어보세요.

*Sinnet에서 운영하는 AWS 중국(베이징) 리전과 NWCD에서 운영하는 AWS 중국(닝샤) 리전에서는 사용자 지정 키 저장소를 사용할 수 없습니다.
**비대칭 KMS 키에는 사용자 지정 키 스토어를 사용할 수 없습니다.
*** CodeArtifact는 XKS의 KMS 키를 지원하지 않습니다.

AWS KMS를 클라이언트측 암호화 라이브러리와 함께 사용하여 AWS 또는 하이브리드 및 멀티클라우드 환경의 애플리케이션 안에서 직접 데이터를 보호할 수 있습니다. AWS 서비스 또는 원하는 다른 스토리지 미디어 및 서드 파티 서비스에 저장하기 전에 이 라이브러리를 사용하여 데이터를 암호화할 수 있습니다. 이 라이브러리는 업계 표준 및 모범 사례를 사용하여 데이터를 암호화하고 해독할 수 있도록 설계되었습니다. 암호화 라이브러리를 사용하면 데이터를 암호화하고 해독하는 방법보다 애플리케이션의 핵심 기능에 집중할 수 있습니다.

  • AWS Encryption SDK는 모든 유형의 데이터에 암호화 및 복호화 작업을 구현하기 위한 범용 암호화 라이브러리입니다.
  • AWS Database Encryption SDK는 데이터베이스에 저장된 민감한 데이터를 보호하고 암호화된 데이터의 검색 및 쿼리와 관련된 추가 기능을 제공하는 암호화 라이브러리입니다.
  • Amazon S3 Encryption Client는 S3 버킷에 저장된 객체를 암호화하고 복호화하기 위한 암호화 라이브러리입니다.

자세히 알아보려면 AWS Crypto Tools 설명서를 참조하세요.

AWS 서비스 통합

AWS KMS는 AWS 서비스와 통합되므로 AWS KMS 키를 사용하여 저장 데이터를 암호화하거나 서명 및 확인 프로세스를 간소화할 수 있습니다. 통합된 AWS 서비스는 봉투 암호화를 사용하여 저장 데이터를 보호합니다. 봉투 암호화에서 데이터는 데이터 키를 사용하여 암호화되고 데이터 키는 AWS KMS에 저장된 KMS 키 아래에 자체 암호화됩니다. 서명 및 확인에 있어서 통합된 AWS 서비스는 AWS KMS의 비대칭 RSA 또는 ECC KMS 키를 사용합니다. 통합된 서비스에서 AWS KMS를 사용하는 방법에 대한 자세한 내용은 사용하는 AWS 서비스의 설명서를 참조하세요.

Alexa for Business[1] Amazon FSx Amazon Rekognition AWS CodePipeline
Amazon AppFlow Amazon GuardDuty Amazon Relational Database Service(RDS) AWS Control Tower
Amazon Athena Amazon HealthLake Amazon Route 53 AWS Data Exchange
Amazon Aurora Amazon Inspector Amazon Simple Storage Service(Amazon S3)[3] AWS Database Migration Service
Amazon Chime SDK Amazon Kendra Amazon SageMaker AWS DeepRacer
Amazon CloudWatch Logs Amazon Keyspaces for Apache Cassandra Amazon Simple Email Service(SES)
AWS Elastic Disaster Recovery
Amazon CloudWatch Synthetics Amazon Kinesis Data Streams Amazon Simple Notification Service(SNS) AWS Elemental MediaTailor
Amazon CodeGuru Amazon Kinesis Firehose Amazon Simple Queue Service(SQS) AWS Entity Resolution
Amazon CodeWhisperer Amazon Kinesis Video Streams Amazon Textract AWS GameLift
Amazon Comprehend Amazon Lex Amazon Timestream AWS Glue
Amazon Connect Amazon Lightsail[1] Amazon Transcribe AWS Glue DataBrew
Amazon Connect Customer Profiles Amazon Location Service Amazon Translate AWS Ground Station
Amazon Connect Voice ID Amazon Lookout for Equipment Amazon WorkMail AWS IoT SiteWise
Amazon Connect Wisdom Amazon Lookout for Metrics Amazon WorkSpaces AWS Lambda
Amazon DocumentDB Amazon Lookout for Vision Amazon WorkSpaces 씬 클라이언트 AWS License Manager
Amazon DynamoDB Amazon Macie Amazon WorkSpaces Web AWS Mainframe Moderization
Amazon DynamoDB Accelerator(DAX)[1]
Amazon Managed Blockchain AWS AppConfig AWS Network Firewall
Amazon EBS Amazon Managed Service for
Prometheus
AWS AppFabric AWS Proton
Amazon EC2 Image Builder Amazon Managed Streaming for Kafka(MSK) AWS Application Cost Profiler AWS Secrets Manager
Amazon EFS Amazon Managed Workflows for Apache Airflow(MWAA) AWS Application Migration Service AWS Snowball 
Amazon Elastic Container Registry(ECR) Amazon MemoryDB AWS App Runner AWS Snowball Edge
Amazon Elastic Kubernetes Service(EKS) Amazon Monitron AWS Audit Manager AWS Snowcone
Amazon Elastic Transcoder Amazon MQ AWS Backup AWS Storage Gateway
Amazon ElastiCache Amazon Neptune AWS Certificate Manager[1] AWS Systems Manager
Amazon EMR Amazon Nimble Studio AWS Cloud9[1] AWS Supply Chain
Amazon EMR Serverless Amazon OpenSearch AWS CloudHSM[2] AWS Verified Access
Amazon EventBridge 스케줄러 Amazon Omics AWS CloudTrail AWS X-Ray
Amazon FinSpace Amazon Personalize AWS CodeArtifact  
Amazon Forecast Amazon QLDB AWS CodeBuild  
Amazon Fraud Detector Amazon Redshift AWS CodeCommit[1]  

[1] AWS 관리형 키만 지원합니다.

[2] AWS KMS는 AWS CloudHSM 클러스터에 의해 백업된 사용자 지정 키 스토어를 지원합니다.

[3] S3 Express One Zone은 AWS KMS와 통합되지 않지만 Amazon S3 관리 키(SSE-S3)를 사용한 서버 측 암호화를 지원합니다. S3 Express One Zone 객체 암호화에 대해 자세히 알아보려면 S3 Express One Zone 데이터 보호 및 암호화를 참조하세요.

[4] Sinnet에서 운영하는 AWS 중국(베이징) 리전과 NWCD에서 운영하는 AWS 중국(닝샤) 리전에서 AWS KMS와 통합되는 서비스 목록은 중국의 AWS KMS 서비스 통합 페이지를 참조하세요.

위에 나열되지 않은 AWS 서비스는 개별 서비스에서 보유하고 관리하는 키를 사용하여 고객 데이터를 암호화합니다.