SEC08-BP01 보안 키 관리 구현 - AWS Well-Architected Framework

SEC08-BP01 보안 키 관리 구현

보안 키 관리에는 워크로드의 저장된 데이터를 보호하는 데 필요한 주요 자료의 저장, 순환, 액세스 제어 및 모니터링이 포함됩니다.

원하는 결과: 확장 가능하고 반복 가능하며 자동화된 키 관리 메커니즘을 구축합니다. 메커니즘은 키 자료에 대한 액세스 권한을 최소한으로 제한하고 키 가용성, 기밀성 및 무결성 간에 적절한 균형을 유지하는 기능을 제공해야 합니다. 키에 대한 접근을 모니터링하고 자동화된 프로세스를 통해 키 자료를 교체해야 합니다. 키 구성 요소는 인적 자격 증명이 절대 접근할 수 없어야 합니다.

일반적인 안티 패턴:

  • 암호화되지 않은 키 자료에 대한 인적 접근이 가능합니다.

  • 사용자 지정 암호화 알고리즘을 생성합니다.

  • 주요 자료에 액세스할 수 있는 권한이 지나치게 광범위합니다.

이 모범 사례 확립의 이점: 워크로드에 대한 보안 키 관리 메커니즘을 구축하면 무단 액세스로부터 콘텐츠를 보호하는 데 도움이 될 수 있습니다. 또한 데이터를 암호화하기 위한 규제 요구 사항이 적용될 수 있습니다. 효과적인 키 관리 솔루션은 주요 자료를 보호하기 위해 해당 규정에 맞는 기술적 메커니즘을 제공할 수 있습니다.

이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준: 높음

구현 가이드

많은 규제 요구 사항 및 모범 사례에는 기본 보안 제어 수단으로 저장된 데이터의 암호화가 포함됩니다. 이러한 제어를 준수하려면 워크로드에 저장된 데이터를 암호화하는 데 사용되는 주요 자료를 안전하게 저장하고 관리하는 메커니즘이 필요합니다.

AWS은 AWS Key Management Service(AWS KMS)를 제공하여 내구성이 뛰어나고 안전하며 중복된 AWS KMS 키 스토리지를 제공합니다. 많은 AWS 서비스가 AWS KMS와 통합하여 데이터 암호화를 지원합니다. AWS KMS은 FIPS 140-2 레벨 3 검증 하드웨어 보안 모듈을 사용하여 키를 보호합니다. AWS KMS키를 일반 텍스트로 내보내는 메커니즘은 없습니다.

다중 계정 전략을 사용하여 워크로드를 배포할 때 AWS KMS 키를 사용하는 워크로드와 동일한 계정에 키를 유지하는 것이 모범 사례로 간주됩니다. 이 분산 모델에서는 AWS KMS 키 관리에 대한 책임이 애플리케이션 팀에 있습니다. 다른 사용 사례에서는 조직에서 AWS KMS 키를 중앙 집중식 계정에 저장하도록 선택할 수 있습니다. 이 중앙 집중식 구조에는 워크로드 계정이 중앙 집중식 계정에 저장된 키에 액세스하는 데 필요한 교차 계정 액세스를 가능하게 하는 추가 정책이 필요하지만 단일 키를 여러 AWS 계정에서 공유하는 사용 사례에서는 더 적합할 수 있습니다.

키 자료의 보관 위치에 관계없이 다음을 사용하여 키에 대한 액세스를 엄격하게 제어해야 합니다. 주요 정책 및 IAM 정책 키 정책은 AWS KMS 키에 대한 액세스를 제어하는 기본 방법입니다. 또한 AWS KMS 키 부여는 사용자를 대신하여 데이터를 암호화 및 복호화하는 AWS 서비스에 대한 액세스를 제공할 수 있습니다. AWS KMS 키 액세스 제어 모범 사례를 시간을 내어 검토하세요.

암호화 키 사용을 모니터링하여 비정상적인 액세스 패턴을 탐지하는 것이 가장 좋습니다. 저장된 관리 키와 고객 AWS 관리 키를 사용하여 수행한 작업은 AWS KMS 로그인할 수 AWS CloudTrail 있으며 정기적으로 검토해야 합니다. 키 폐기 이벤트를 모니터링하는 데 특별한 주의를 기울여야 합니다. 키 자료의 우발적 또는 악의적 폐기를 방지하기 위해 키 폐기 이벤트는 키 자료를 즉시 삭제하지 않습니다. AWS KMS의 키 삭제 시도는 대기 시간이 적용 됩니다.기본값은 30일로 설정되므로 관리자는 이러한 작업을 검토하고 필요한 경우 요청을 롤백할 시간을 확보할 수 있습니다.

대부분의 AWS 서비스는 사용자에게 투명한 방식으로 사용됩니다. 관리형 키를 AWS KMS 사용할지 아니면 고객 AWS 관리형 키를 사용할지 결정하는 것만이 유일한 요구 사항입니다. 워크로드에서 데이터를 암호화하거나 복호화하는 데 AWS KMS를 직접 사용해야 하는 경우 가장 좋은 방법은 봉투 암호화를 사용하여 데이터를 보호하는 것입니다. 해당 AWS Encryption SDK는 애플리케이션에 클라이언트 측 암호화 프리미티브를 제공하여 봉투 암호화를 구현하고 AWS KMS와 통합할 수 있습니다.

구현 단계

  1. 키에 적합한 키 관리 옵션 (AWS 관리형 또는 고객 관리형)을 결정합니다.

  2. 워크로드에 사용 중인 서비스 목록을 검토하여 서비스와의 AWS KMS 통합 방식을 파악하세요. 예를 들어, EC2 인스턴스는 암호화된 EBS 볼륨을 사용하여 해당 볼륨에서 생성된 Amazon EBS 스냅샷도 고객 관리 키를 사용하여 암호화되는지 확인하고 암호화되지 않은 스냅샷 데이터가 우발적으로 공개되는 것을 방지할 수 있습니다.

  3. 구현AWS KMS: 다양한 AWS 서비스와 애플리케이션에서 AWS KMS 간단하게 키를 생성 및 관리하고 암호화 사용을 제어할 수 있습니다.

  4. 고려 사항AWS Encryption SDK: 애플리케이션이 클라이언트 측 데이터를 암호화해야 하는 경우 AWS Encryption SDK와 AWS KMS를 통합하세요.

  5. 지원 IAM Access Analyzer AWS KMS 키 정책이 지나치게 광범위한지 자동으로 검토하고 알립니다.

  6. Security Hub을 활성화하여 잘못 구성된 키 정책, 삭제 예정 키 또는 자동 순환이 활성화되지 않은 키가 있는 경우 알림을 받습니다.

  7. AWS KMS 키에 적합한 로깅 수준을 결정하세요. 읽기 전용 이벤트를 AWS KMS 포함하여 에 대한 호출이 로깅되므로 관련된 CloudTrail 로그의 양이 많아질 AWS KMS 수 있습니다.

    • 일부 조직에서는 AWS KMS 로깅 활동을 별도의 트레일로 분리하는 것을 선호합니다. 자세한 내용은 AWS KMS 개발자 가이드의 CloudTrail로 AWS KMS API 호출 로깅하기 섹션을 참조하세요.

리소스

관련 문서:

관련 동영상:

관련 예시: