에 대한 키 관리 모범 사례 AWS KMS - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

에 대한 키 관리 모범 사례 AWS KMS

AWS Key Management Service (AWS KMS)를 사용할 때는 몇 가지 기본적인 설계 결정을 내려야 합니다. 여기에는 키 관리 및 액세스를 위해 중앙 집중식 모델을 사용할지 아니면 분산식 모델을 사용할지 여부, 사용할 키 유형, 사용할 키 스토어 유형이 포함됩니다. 다음 섹션에서는 조직 및 사용 사례에 적합한 결정을 내리는 데 도움이 됩니다. 이 섹션에서는 데이터 및 키를 보호하기 위해 수행해야 하는 작업을 포함하여 KMS 키 비활성화 및 삭제에 대한 중요한 고려 사항으로 마무리합니다.

중앙 집중식 또는 분산식 모델 선택

AWS 에서는 여러를 사용하고 해당 계정을에서 단일 조직으로 AWS 계정 관리할 것을 권장합니다AWS Organizations. 다중 계정 환경에서를 관리하는 데는 두 가지 광범위한 접근 방식이 AWS KMS keys 있습니다.

첫 번째 접근 방식은 각 계정에서 해당 키를 사용하는 키를 생성하는 분산 접근 방식입니다. KMS 키를 보호하는 리소스와 동일한 계정에 저장하는 경우 AWS 보안 주체 및 키에 대한 액세스 요구 사항을 이해하는 로컬 관리자에게 권한을 위임하는 것이 더 쉽습니다. 키 정책만 사용하여 키 사용을 승인하거나 AWS Identity and Access Management (IAM)에서 키 정책과 자격 증명 기반 정책을 결합할 수 있습니다.

두 번째 접근 방식은 KMS 키를 하나 또는 몇 개의 지정된에 유지하는 중앙 집중식 접근 방식입니다 AWS 계정. 다른 계정이 암호화 작업에만 키를 사용하도록 허용합니다. 중앙 집중식 계정에서 키, 수명 주기 및 권한을 관리합니다. 다른 AWS 계정 사용자가 키를 사용하도록 허용하지만 다른 권한은 허용하지 않습니다. 외부 계정은 키의 수명 주기 또는 액세스 권한에 대한 어떤 것도 관리할 수 없습니다. 이 중앙 집중식 모델은 위임된 관리자 또는 사용자의 의도하지 않은 키 삭제 또는 권한 에스컬레이션 위험을 최소화하는 데 도움이 될 수 있습니다.

선택하는 옵션은 여러 요인에 따라 달라집니다. 접근 방식을 선택할 때는 다음 사항을 고려하세요.

  1. 키 및 리소스 액세스를 프로비저닝하기 위한 자동 또는 수동 프로세스가 있습니까? 여기에는 배포 파이프라인 및 코드형 인프라(IaC) 템플릿과 같은 리소스가 포함됩니다. 이러한 도구는 여러에 리소스(예: KMS 키, 키 정책, IAM 역할 및 IAM 정책)를 배포하고 관리하는 데 도움이 될 수 있습니다 AWS 계정. 이러한 배포 도구가 없는 경우 키 관리에 대한 중앙 집중식 접근 방식이 비즈니스에 더 적합할 수 있습니다.

  2. KMS 키를 사용하는 리소스 AWS 계정 가 포함된 모든에 대한 관리 제어 권한이 있습니까? 그렇다면 중앙 집중식 모델을 사용하면 관리를 간소화하고 키를 관리하기 AWS 계정 위해 전환할 필요가 없습니다. 그러나 키를 사용할 수 있는 IAM 역할 및 사용자 권한은 여전히 계정별로 관리해야 합니다.

  3. 자체 AWS 계정 및 리소스가 있는 고객 또는 파트너에게 KMS 키를 사용할 수 있는 액세스 권한을 제공해야 합니까? 이러한 키의 경우 중앙 집중식 접근 방식을 통해 고객과 파트너의 관리 부담을 줄일 수 있습니다.

  4. 중앙 집중식 또는 로컬 액세스 접근 방식을 통해 더 잘 해결되는 AWS 리소스에 액세스하기 위한 권한 부여 요구 사항이 있습니까? 예를 들어, 서로 다른 애플리케이션 또는 사업부가 자체 데이터의 보안을 관리하는 역할을 하는 경우 키 관리에 대한 분산형 접근 방식이 더 좋습니다.

  5. 에 대한 서비스 리소스 할당량을 초과하고 있습니까 AWS KMS? 이러한 할당량은 당 설정되므로 AWS 계정분산 모델은 계정 간에 로드를 분산하여 서비스 할당량을 효과적으로 곱합니다.

    참고

    키 관리 모델은 요청 할당량을 고려할 때 관련이 없습니다. 이러한 할당량은 키를 소유하거나 관리하는 계정이 아니라 키에 대해 요청하는 계정 보안 주체에 적용되기 때문입니다.

일반적으로 중앙 집중식 KMS 키 모델의 필요성을 명확히 설명할 수 없는 한 분산형 접근 방식으로 시작하는 것이 좋습니다.

고객 관리형 키, AWS 관리형 키 또는 AWS 소유 키 선택

자체 암호화 애플리케이션에서 사용하기 위해 생성하고 관리하는 KMS 키를 고객 관리형 키라고 합니다.는 고객 관리형 키를 사용하여 서비스가 사용자를 대신하여 저장하는 데이터를 암호화할 AWS 서비스 수 있습니다. 수명 주기와 키 사용을 완전히 제어하려면 고객 관리형 키를 사용하는 것이 좋습니다. 계정에 고객 관리형 키를 보유하는 데는 월별 비용이 발생합니다. 또한 키 사용 또는 관리 요청에는 사용 비용이 발생합니다. 자세한 내용은 AWS KMS 요금을 참조하십시오.

AWS 서비스 에서 데이터를 암호화하지만 키 관리의 오버헤드나 비용을 원하지 않는 경우 AWS 관리형 키를 사용할 수 있습니다. 이러한 유형의 키는 계정에 존재하지만 특정 상황에서만 사용할 수 있습니다. 운영 중인의 컨텍스트에서만 사용할 수 있으며 키 AWS 서비스 가 포함된 계정 내의 보안 주체만 사용할 수 있습니다. 이러한 키의 수명 주기 또는 권한은 관리할 수 없습니다. 일부는 AWS 관리형 키를 AWS 서비스 사용합니다. AWS 관리형 키 별칭의 형식은 입니다aws/<service code>. 예를 들어 키는 aws/ebs 키와 동일한 계정의 Amazon Elastic Block Store(Amazon EBS) 볼륨을 암호화하는 데만 사용할 수 있으며 해당 계정의 IAM 보안 주체만 사용할 수 있습니다. AWS 관리형 키는 해당 계정의 사용자와 해당 계정의 리소스에 대해서만 사용할 수 있습니다. AWS 관리형 키로 암호화된 리소스는 다른 계정과 공유할 수 없습니다. 사용 사례에 제한이 있는 경우 대신 고객 관리형 키를 사용하는 것이 좋습니다. 해당 키의 사용을 다른 계정과 공유할 수 있습니다. 계정에 AWS 관리형 키가 있는 경우 요금이 부과되지 않지만 키에 AWS 서비스 할당된에서이 키 유형을 사용하는 경우 요금이 부과됩니다.

AWS 관리형 키는 2021 AWS 서비스 년부터 새에 대해 더 이상 생성되지 않는 레거시 키 유형입니다. 대신 새 키(및 레거시 키) AWS 서비스 는 AWS 소유 키를 사용하여 기본적으로 데이터를 암호화합니다. AWS 소유 키는가 여러에서 사용하기 위해 AWS 서비스 소유하고 관리하는 KMS 키 모음입니다 AWS 계정. 이러한 키는에 없지만 AWS 계정는 키를 사용하여 계정의 리소스를 보호할 AWS 서비스 수 있습니다.

세분화된 제어가 가장 중요한 경우 고객 관리형 키를 사용하고 편의성이 가장 중요한 경우 AWS 소유 키를 사용하는 것이 좋습니다.

다음 표에서는 각 키 유형 간의 키 정책, 로깅, 관리 및 요금 차이를 설명합니다. 키 유형에 대한 자세한 내용은 AWS KMS 개념을 참조하세요.

고려 사항 고객 관리형 키 AWS 관리형 키 AWS 소유 키
키 정책 고객이 독점적으로 제어 서비스에서 제어, 고객이 볼 수 있음 데이터를 암호화하는 AWS 서비스 에서만 독점적으로 제어되고 볼 수 있음
로깅 AWS CloudTrail 고객 추적 또는 이벤트 데이터 스토어 CloudTrail 고객 추적 또는 이벤트 데이터 저장소 고객이 볼 수 없음
수명 주기 관리 고객이 교체, 삭제 및 관리 AWS 리전 AWS 서비스 는 교체(연간), 삭제 및 리전을 관리합니다. AWS 서비스 는 교체(연간), 삭제 및 리전을 관리합니다.
요금 키 존재에 대한 월별 요금(시간당 비례 할당), 호출자에게 API 사용 요금이 청구됩니다. 키 존재에 대한 요금 없음, 호출자에게 API 사용에 대한 요금 부과 고객에게 부과되는 요금 없음

AWS KMS 키 스토어 선택

키 스토어는 암호화 키 구성 요소를 저장하고 사용하기 위한 안전한 위치입니다. 키 스토어의 업계 모범 사례는 보안 수준 3의 NIST Federal Information Processing Standards(FIPS) 140 암호화 모듈 검증 프로그램에 따라 검증된 하드웨어 보안 모듈(HSM)이라는 디바이스를 사용하는 것입니다. 결제를 처리하는 데 사용되는 키 스토어를 지원하는 다른 프로그램이 있습니다. AWS Payment Cryptography는 결제 워크로드와 관련된 데이터를 보호하는 데 사용할 수 있는 서비스입니다.

AWS KMS 는를 사용하여 암호화 키를 생성하고 관리할 때 키 구성 요소를 보호하는 AWS KMS 데 도움이 되는 여러 키 스토어 유형을 지원합니다. 에서 제공하는 모든 키 스토어 옵션은 보안 수준 3의 FIPS 140에 따라 지속적으로 검증 AWS KMS 됩니다. 연 AWS 산자를 포함한 모든 사용자가 권한 없이 일반 텍스트 키에 액세스하거나 사용하지 못하도록 설계되었습니다. 사용 가능한 키 스토어 유형에 대한 자세한 내용은 AWS KMS 설명서의 키 스토어를 참조하세요.

AWS KMS 표준 키 스토어는 대부분의 워크로드에 가장 적합합니다. 다른 유형의 키 스토어를 선택해야 하는 경우 규제 또는 기타 요구 사항(예: 내부)에서 이러한 선택을 요구하는지 신중하게 고려하고 비용과 이점을 신중하게 고려하세요.

KMS 키 삭제 및 비활성화

KMS 키를 삭제하면 상당한 영향을 미칠 수 있습니다. 더 이상 사용하지 않을 KMS 키를 삭제하기 전에 키 상태를 비활성화됨으로 설정하는 것이 적절한지 고려합니다. 키가 비활성화된 동안에는 암호화 작업에 사용할 수 없습니다. 여전히에 있으며 필요한 경우 나중에 다시 활성화 AWS할 수 있습니다. 비활성화된 키에는 계속 스토리지 요금이 발생합니다. 키가 데이터 또는 데이터 키를 보호하지 않는다고 확신할 때까지 키를 삭제하는 대신 비활성화하는 것이 좋습니다.

중요

키 삭제는 신중하게 계획해야 합니다. 해당 키가 삭제된 경우 데이터를 복호화할 수 없습니다. AWS 는 삭제된 키를 삭제한 후 복구할 방법이 없습니다. 의 다른 중요한 작업과 마찬가지로 AWS삭제를 위해 키를 예약하고 키 삭제를 위해 다중 인증(MFA)을 요구할 수 있는 사용자를 제한하는 정책을 적용해야 합니다.

우발적인 키 삭제를 방지하기 위해는 DeleteKey 호출 실행 후 7일의 기본 최소 대기 기간을 AWS KMS 적용한 후 키를 삭제합니다. 대기 기간을 최대 30일로 설정할 수 있습니다. 대기 기간 동안 키는 여전히 삭제 보류 중 상태로 AWS KMS 에 저장됩니다. 암호화 또는 복호화 작업에 사용할 수 없습니다. 암호화 또는 복호화를 위해 삭제 보류 중 상태인 키를 사용하려는 모든 시도는에 기록됩니다 AWS CloudTrail. CloudTrail 로그에서 이러한 이벤트에 대한 Amazon CloudWatch 경보를 설정할 수 있습니다. 이러한 이벤트에 대한 경보를 수신하는 경우 필요한 경우 삭제 프로세스를 취소하도록 선택할 수 있습니다. 대기 기간이 만료될 때까지 삭제 보류 상태에서 키를 복구하고 비활성화됨 또는 활성화됨 상태로 복원할 수 있습니다.

다중 리전 키를 삭제하려면 원본 복사 전에 복제본을 삭제해야 합니다. 자세한 내용은 다중 리전 키 삭제를 참조하세요.

가져온 키 구성 요소가 있는 키를 사용하는 경우 가져온 키 구성 요소를 즉시 삭제할 수 있습니다. 이는 여러 가지 방법으로 KMS 키를 삭제하는 것과 다릅니다. DeleteImportedKeyMaterial 작업을 수행하면가 키 구성 요소를 AWS KMS 삭제하고 키 상태가 가져오기 보류 중으로 변경됩니다. 키 구성 요소를 삭제하면 키를 즉시 사용할 수 없습니다. 대기 기간은 없습니다. 키 사용을 다시 활성화하려면 동일한 키 구성 요소를 다시 가져와야 합니다. KMS 키 삭제 대기 기간은 가져온 키 구성 요소가 있는 KMS 키에도 적용됩니다.

데이터 키가 KMS 키로 보호되고에서 적극적으로 사용 중인 경우 연결된 KMS 키가 비활성화되거나 가져온 키 구성 요소가 삭제되더라도 데이터 키는 즉시 영향을 AWS 서비스받지 않습니다. 예를 들어 가져온 구성 요소가 있는 키를 사용하여 SSE-KMS로 객체를 암호화했다고 가정해 보겠습니다. Amazon Simple Storage Service(Amazon S3) 버킷에 객체를 업로드하는 중입니다. 버킷에 객체를 업로드하기 전에 구성 요소를 키로 가져옵니다. 객체가 업로드되면 해당 키에서 가져온 키 구성 요소를 삭제합니다. 객체는 암호화된 상태로 버킷에 남아 있지만 삭제된 키 구성 요소가 키로 다시 가져오기 전까지는 아무도 객체에 액세스할 수 없습니다. 이 흐름에는 키에서 키 구성 요소를 가져오고 삭제하기 위한 정확한 자동화가 필요하지만, 환경 내에서 추가 수준의 제어를 제공할 수 있습니다.

AWS 는 KMS 키의 예약된 삭제를 모니터링하고 수정(필요한 경우)하는 데 도움이 되는 규범적 지침을 제공합니다. 자세한 내용은 AWS KMS 키의 예약된 삭제 모니터링 및 수정을 참조하세요.