能否用同一客户托管密钥加密两个DynamoDB表?是否为最佳实践?
关于同一KMS客户托管密钥加密多DynamoDB表的问题解答
1. 是否可行?
完全可以。你提供的CloudFormation配置是合法有效的,AWS KMS允许同一个客户托管密钥(CMK)用于加密多个AWS资源,包括不同的DynamoDB表。只要该CMK的权限策略允许DynamoDB服务对其进行加密/解密操作,两张表都能正常启用服务器端加密(SSE)。
2. 是否属于最佳实践?
这得结合你的安全需求和管理策略来判断:
- 适合共用密钥的场景:
- 多张表属于同一业务模块、安全级别一致,共用密钥能简化管理——减少密钥数量,降低轮换、权限维护的工作量。
- 中小规模架构或资源生命周期完全同步的表,共用密钥能减少运维成本。
- 建议使用独立密钥的场景:
- 不同表的敏感程度差异大(比如一张存普通业务数据,一张存用户身份证、银行卡等隐私数据),独立密钥能实现数据隔离,遵循最小权限原则:万一某个密钥出问题,影响范围只会局限在关联表。
- 不同表有不同合规要求(比如不同的密钥轮换周期、审计日志需求),独立密钥更容易满足差异化的合规标准。
额外提醒:使用共用CMK时,务必配置好密钥的权限策略,只允许必要的角色或服务访问,避免过度授权;同时开启CloudTrail审计日志,追踪密钥的使用情况,便于排查问题。
你提供的CloudFormation配置代码:
DynamoDbTableKmsKey: Type: AWS::KMS::Key Table1: Type: AWS::DynamoDB::Table Properties: SSESpecification: SSEEnabled: True SSEType: KMS KMSMasterKeyId: !Ref DynamoDbTableKmsKey Table2: Type: AWS::DynamoDB::Table Properties: SSESpecification: SSEEnabled: True SSEType: KMS KMSMasterKeyId: !Ref DynamoDbTableKmsKey
内容的提问来源于stack exchange,提问作者Mondy
相关产品推荐
相关产品推荐

