설명
KMS 키가 비활성화되어 있거나 실제로 삭제 대기 상태이면, 그 키가 필요한 암호화·복호화 작업이 실패할 수 있습니다. 저장 데이터 암호화가 켜져 있어도 키를 사용할 수 없으면 서비스 장애로 이어질 수 있습니다.
PendingWindowInDays는 CloudFormation이 키를 삭제할 때 적용할 대기 기간입니다. 이 속성을 지정하는 것만으로 삭제가 예약되거나 키가 비활성화되지는 않습니다. 실제 키 상태와 서비스의 의존 관계를 함께 확인해야 합니다.
잠재적 영향
- 키가 필요한 데이터 읽기, 신규 리소스 생성 또는 백업 복구가 실패할 수 있습니다.
- 키가 최종 삭제되면 해당 키로만 복호화할 수 있는 데이터를 복구하지 못할 수 있습니다.
해결 방법
- 운영에 필요한 키의 상태와 사용 권한을 확인하고, 비활성화 사유를 검토한 뒤 필요한 키를 활성화하세요.
- 아직 필요한 키에 삭제가 예약되어 있다면 KMS에서 삭제 예약을 취소하고 다시 활성화하세요. 템플릿에 키를 다시 추가하는 것으로 기존 키가 복구되지는 않습니다.
- 키 교체 시 기존 데이터와 백업의 복호화가 더 이상 해당 키에 의존하지 않는지 확인한 뒤 삭제를 계획하세요.
예시
다음 예제는 키의 활성 상태를 비교합니다. 실제 애플리케이션의 키 사용 권한은 별도로 설정하세요.
변경 전
yaml
Resources:
AppKey:
Type: AWS::KMS::Key
Properties:
Enabled: false
PendingWindowInDays: 7
KeyPolicy:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
AWS: !Sub arn:aws:iam::${AWS::AccountId}:root
Action: kms:*
Resource: "*"
Enabled: false이므로 암호화 작업에 키를 사용할 수 없습니다. PendingWindowInDays: 7은 삭제가 수행될 때의 대기 기간이며, 현재 삭제 대기 상태라는 뜻은 아닙니다.
변경 후
yaml
Resources:
AppKey:
Type: AWS::KMS::Key
Properties:
Enabled: true
KeyPolicy:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
AWS: !Sub arn:aws:iam::${AWS::AccountId}:root
Action: kms:*
Resource: "*"
키를 활성화합니다. 삭제 대기 기간을 생략해도 삭제 자체가 방지되는 것은 아니므로 키의 실제 상태와 삭제 권한을 관리하세요.