AWS - KMS Enum
KMS - Key Management Service
AWS Key Management Service (AWS KMS)는 사용자가 고객 마스터 키(CMKs)를 생성하고 관리하는 과정을 간소화하는 관리형 서비스로 제공됩니다. 이러한 CMKs는 사용자 데이터의 암호화에 중요합니다. AWS KMS의 주목할만한 기능 중 하나는 CMKs가 주로 하드웨어 보안 모듈(HSMs)로 보호된다는 것으로, 암호화 키의 보호를 강화합니다.
KMS는 대칭 암호화를 사용합니다. 이는 정보를 암호화하여 저장하는 데 사용됩니다(예: S3 내부). 정보를 전송 중에 암호화해야 하는 경우 TLS와 같은 것을 사용해야 합니다.
KMS는 지역별 서비스입니다.
Amazon의 관리자는 귀하의 키에 액세스할 수 없습니다. 그들은 귀하의 키를 복구할 수 없으며 귀하의 키를 암호화하는 데 도움을 주지 않습니다. AWS는 단순히 운영 체제와 해당 응용 프로그램을 관리하며, 우리에게는 암호화 키를 관리하고 해당 키가 사용되는 방식을 관리하는 것이 답입니다.
고객 마스터 키(CMK): 최대 4KB 크기의 데이터를 암호화할 수 있습니다. 일반적으로 DEK(Data Encryption Keys)를 생성, 암호화 및 복호화하는 데 사용됩니다. 그런 다음 DEK가 데이터를 암호화하는 데 사용됩니다.
고객 마스터 키(CMK)는 AWS KMS에서 마스터 키의 논리적 표현입니다. 마스터 키의 식별자 및 다른 메타데이터뿐만 아니라 생성 날짜, 설명 및 키 상태를 포함하여 CMK에는 데이터를 암호화 및 복호화하는 데 사용되는 키 자료가 포함됩니다. CMK를 생성할 때 기본적으로 AWS KMS는 해당 CMK의 키 자료를 생성합니다. 그러나 키 자료 없이 CMK를 생성하고 나중에 자체 키 자료를 해당 CMK로 가져올 수도 있습니다.
마스터 키에는 2가지 유형이 있습니다:
AWS 관리 CMKs: 데이터를 암호화하는 데 다른 서비스에서 사용됩니다. 해당 서비스에서 처음으로 암호화를 구현할 때 생성됩니다. 3년마다 회전하며 변경할 수 없습니다.
고객 관리 CMKs: 유연성, 회전, 구성 가능한 액세스 및 키 정책. 키를 활성화하거나 비활성화할 수 있습니다.
Key Policies
이는 KMS에서 키를 사용하고 액세스할 수 있는 사용자를 정의합니다.
기본적으로:
KMS 키를 소유한 AWS 계정에 KMS 키에 대한 완전한 액세스 권한을 부여합니다.
다른 AWS 리소스 정책과 달리 AWS KMS 키 정책은 계정 또는 해당 사용자에게 자동으로 권한을 부여하지 않습니다. 계정 관리자에게 권한을 부여하려면 이러한 권한을 제공하는 명시적 명령문이 포함된 키 정책이 있어야 합니다.
계정(
"AWS": "arn:aws:iam::111122223333:root"
)에 허용하지 않으면 IAM 권한이 작동하지 않습니다.IAM 정책을 사용하여 KMS 키에 액세스 권한을 부여할 수 있도록 합니다.
이 권한이 없으면 KMS 키에 액세스 권한을 부여하는 IAM 정책은 효과가 없습니다. 그러나 KMS 키에 액세스를 거부하는 IAM 정책은 여전히 효과적입니다.
키가 관리하기 어려워지는 위험을 줄이기 위해 계정 관리자, 삭제할 수 없는 계정 루트 사용자를 포함한 액세스 제어 권한을 부여합니다.
기본 정책 예시:
계정이 허용된 경우 ("arn:aws:iam::111122223333:root"
) 계정의 주체는 KMS 키를 사용하려면 IAM 권한이 필요합니다. 그러나 예를 들어 역할의 ARN이 Key Policy에서 특별히 허용된 경우 해당 역할은 IAM 권한이 필요하지 않습니다.
키 관리자
기본적으로 키 관리자는:
KMS를 관리할 수 있지만 데이터를 암호화하거나 복호화할 수는 없습니다.
키 관리자 목록에는 IAM 사용자 및 역할 만 추가할 수 있습니다 (그룹은 제외).
외부 CMK를 사용하는 경우 키 관리자는 키 자료를 가져오는 권한이 있습니다.
CMK 회전
동일한 키를 그대로 두면 해당 키로 암호화된 데이터가 더 많아지며, 해당 키가 침해당하면 데이터의 폭발 영역이 위험에 노출됩니다. 또한 키가 활성화된 상태로 두는 기간이 길수록 침해 가능성이 높아집니다.
KMS는 고객 키를 매년 365일마다 회전하며 (원하는 경우 수동으로 수행할 수 있음) AWS가 관리하는 키는 매 3년마다 회전하며 이 시간은 변경할 수 없습니다.
이전 키는 회전 이전에 암호화된 데이터를 복호화하기 위해 보관됩니다.
침해가 발생하면 키를 회전해도 위협이 제거되지 않습니다. 그러나 새 데이터는 새 키로 암호화됩니다.
CMK가 비활성 또는 삭제 대기 상태인 경우 KMS는 CMK가 다시 활성화되거나 삭제가 취소될 때까지 키 회전을 수행하지 않습니다.
수동 회전
새 CMK를 생성해야 하며, 그런 다음 새 CMK-ID가 생성되므로 어플리케이션을 업데이트하여 새 CMK-ID를 참조해야 합니다.
이 프로세스를 쉽게 수행하려면 키-ID를 참조하는 별칭을 사용한 다음 별칭이 참조하는 키를 업데이트하면 됩니다.
이전 키를 보관하여 이전에 해당 키로 암호화된 이전 파일을 복호화해야 합니다.
온프레미스 키 인프라에서 키를 가져올 수 있습니다.
기타 관련 KMS 정보
KMS는 월별로 모든 서비스로부터 수신된 암호화/복호화 요청 수에 따라 가격이 책정됩니다.
KMS는 CloudTrail과의 완전한 감사 및 규정 준수 통합을 제공합니다. 여기서 KMS에서 수행된 모든 변경 사항을 감사할 수 있습니다.
KMS 정책을 사용하면 다음을 수행할 수 있습니다:
데이터 키를 생성할 수 있는 사용자 및 이러한 키를 사용할 수 있는 서비스를 제한
시스템 액세스를 암호화 전용, 복호화 전용 또는 둘 다로 제한
키에 대한 시스템 액세스를 지역 간에 활성화할 수 있도록 정의 (KMS를 호스팅하는 지역에서 장애가 발생하면 다른 지역의 시스템 가용성에 영향을 줄 수 있으므로 권장되지 않음).
지역 간에 키를 동기화하거나 이동/복사할 수 없습니다. 지역 간 액세스를 허용하기 위한 규칙만 정의할 수 있습니다.
열거
권한 상승
pageAWS - KMS Privesc사후 공격
pageAWS - KMS Post Exploitation지속성
pageAWS - KMS Persistence참고 자료
最終更新