mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
414 字
1 分钟
零信任架构与数据安全
2023-11-16

一、零信任架构#

1.1 核心原则#

graph LR A["永不信任"] --> B["始终验证"] B --> C["最小权限"] C --> D["微分段"] D --> E["持续监控"] E --> A style A fill:#FFB6C1 style B fill:#FFD700 style C fill:#90EE90 style D fill:#87CEEB style E fill:#DDA0DD

1.2 传统 vs 零信任#

传统边界安全零信任安全
内部网络可信从不信任,始终验证
保护边界入口保护每个工作负载
静态防御持续验证
粗粒度访问最小权限
网络分段微分段/软件定义边界

1.3 BeyondCorp(Google 实践)#

beyondcorp = {
"访问代理": "验证用户和设备身份",
"设备清单服务": "跟踪受管设备",
"用户/组清单": "管理用户权限",
"访问策略引擎": "基于上下文的访问决策",
"策略信息源": "提供威胁情报"
}
# 访问决策因素
access_decision = {
"用户身份": "已验证的用户和组",
"设备状态": "受管设备、合规状态",
"上下文": "IP 地址、时间、风险评分",
"资源敏感度": "数据分类级别"
}

二、数据加密#

2.1 加密类型对比#

类型说明使用场景
对称加密同一密钥加解密数据存储、本地加密
非对称加密公钥加密、私钥解密密钥交换、数字签名
哈希单向函数完整性验证、密码存储
算法类型安全性
AES-256对称
RSA-2048非对称
SHA-256哈希
bcrypt哈希高(自适应)

2.2 云存储加密#

encryption_types = {
"SSE-S3": {
"加密类型": "AES-256",
"密钥管理": "AWS S3 托管",
"适用场景": "标准文件存储"
},
"SSE-KMS": {
"加密类型": "AES-256",
"密钥管理": "AWS KMS (CMK)",
"适用场景": "需要密钥轮换、审计"
},
"SSE-C": {
"加密类型": "客户提供密钥",
"密钥管理": "客户完全控制",
"适用场景": "合规要求严格"
},
"CSE-KMS": {
"加密类型": "AES-256",
"密钥管理": "KMS (客户端加密)",
"适用场景": "端到端加密"
}
}

2.3 传输加密#

# TLS 配置最佳实践
ssl_config:
min_version: "TLS 1.2"
preferred_ciphers:
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
disabled_ciphers:
- "TLS_RSA_WITH_AES_128_CBC_SHA"
- "TLS_RSA_WITH_3DES_EDE_CBC_SHA"

三、KMS 密钥管理#

3.1 AWS KMS#

{
"Version": "2012-10-17",
"Id": "key-policy",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow use of key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:role/DataRole"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*"
],
"Resource": "*"
}
]
}

3.2 密钥轮换#

# AWS 自动轮换:每 365 天(CMK)
# 客户管理密钥可手动轮换
import boto3
# 手动创建密钥版本
client = boto3.client('kms')
response = client.rotate_key_on_demand(
KeyId='alias/my-key'
)

3.3 密钥层次结构#

key_hierarchy = """
主密钥 (Master Key / CMK)
├── 数据密钥 (Data Key)
│ ├── 用于加密数据文件
│ └── 用主密钥加密后存储
└── 密钥加密密钥 (KEK)
└── 用于加密数据密钥
"""

四、数据分类#

4.1 分类级别#

data_classification = {
"公开": {
"标识": "PUBLIC",
"加密": "可选",
"访问控制": "无限制",
"示例": ["营销材料", "公开文档"]
},
"内部": {
"标识": "INTERNAL",
"加密": "传输加密",
"访问控制": "员工认证",
"示例": ["内部流程", "非敏感数据"]
},
"敏感": {
"标识": "SENSITIVE",
"加密": "静态加密",
"访问控制": "需要授权",
"示例": ["PII", "合同"]
},
"机密": {
"标识": "CONFIDENTIAL",
"加密": "强加密 + MFA",
"访问控制": "特定角色",
"示例": ["商业秘密", "密钥"]
},
"绝密": {
"标识": "TOP SECRET",
"加密": "硬件安全模块",
"访问控制": "高管审批",
"示例": ["核心算法", "战略规划"]
}
}

4.2 敏感数据类型#

类型例子合规要求
PII姓名、身份证、电话GDPR、CCPA
PHI病历、处方HIPAA
PCI信用卡号PCI DSS
财务数据银行账号、税务信息SOX

4.3 数据处理原则#

data_handling = {
"收集": {
"原则": "最小化收集",
"检查": ["是否必要", "是否经过同意", "是否告知用途"]
},
"存储": {
"原则": "安全存储",
"检查": ["加密", "访问控制", "保留期限"]
},
"使用": {
"原则": "限定用途",
"检查": ["用途是否正当", "是否脱敏"]
},
"共享": {
"原则": "受控共享",
"检查": ["是否有协议", "是否脱敏", "是否审计"]
},
"销毁": {
"原则": "安全销毁",
"检查": ["是否彻底", "是否有证明"]
}
}

五、Secrets 管理#

5.1 密钥管理服务#

# AWS Secrets Manager
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
stringData:
username: admin
password: secret123
# 自动轮换
rotation:
enabled: true
days: 30

5.2 HashiCorp Vault#

# 存储密钥
vault kv put secret/database username=admin password=secret123
# 动态凭证
vault read database/creds/my-role
# 加密传输
vault operator init -key-shares=5 -key-threshold=3

5.3 密钥管理最佳实践#

实践说明
永不存储明文密钥始终加密或使用密钥管理服务
定期轮换设置自动轮换策略
分离管理职责密钥管理与数据访问分离
审计日志记录所有密钥访问
备用密钥安全的离线备份

支持与分享

如果这篇文章对你有帮助,欢迎支持作者或分享给更多人

零信任架构与数据安全
https://blog.souloss.com/posts/interview/zero-trust-and-data-security/
作者
Souloss
发布于
2023-11-16
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时