0Pricing
Cyber Security Academy · 课时

访问控制与加密

保护静态数据

访问控制与加密 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

保护静态数据

数据库存放着最重要的资产,因此有两项控制措施最为关键:访问控制(谁可以接触数据)和加密(即使数据被窃取,也使其失去作用)。

两者结合后,既能保护系统运行期间的数据,也能保护磁盘或备份被窃取时的数据。

身份验证与授权

请区分这两个概念:

  • 身份验证用于证明您是谁(登录、证书、IAM 令牌)。
  • 授权决定您在身份确认后可以执行哪些操作。

强大的数据库安全需要两者兼备:经过验证的身份和严格限定范围的权限。

最小权限原则

只向每个账户授予其所需的权限,不要授予更多权限。报表服务应为只读;用于写入的应用不应能够对表执行 DROP。

CREATE ROLE report_reader;
GRANT SELECT ON sales.* TO report_reader;
GRANT report_reader TO 'analytics_svc'@'%';

基于角色的访问控制

RBAC 将权限分组为角色,并将角色分配给用户。与按用户逐一授予权限相比,这种方式更易扩展,也能让审计更加清晰。

  • 定义角色:read_only、app_writer、dba。
  • 将用户分配到角色。
  • 定期审查角色成员关系。

行级与列级安全

细粒度控制可以限制表内的数据访问范围。

  • 列级:对某些角色隐藏薪资或 SSN 列。
  • 行级安全(RLS):每个租户只能查看属于自己的行。
-- PostgreSQL row-level security
ALTER TABLE orders ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON orders
  USING (tenant_id = current_setting('app.tenant')::int);

静态数据加密

静态数据加密可以保护磁盘上的数据。如果有人窃取了磁盘或备份文件,没有密钥就无法读取其中的内容。

可选方案包括全盘加密、文件系统加密以及数据库原生的透明数据加密(TDE)。

透明数据加密

TDE 会自动加密数据库文件。应用程序无需进行任何更改;数据库引擎会在写入时加密,在读取时解密。它可以防御文件被窃取的情况,但无法防御已经拥有有效数据库会话的攻击者。

-- SQL Server example concept
CREATE DATABASE ENCRYPTION KEY
  WITH ALGORITHM = AES_256
  ENCRYPTION BY SERVER CERTIFICATE tde_cert;
ALTER DATABASE appdb SET ENCRYPTION ON;

列级加密

对于特别敏感的字段(银行卡号、健康数据),请加密单独的列。即使是 DBA,也不会在数据库中看到明文。

权衡之处在于:加密列难以建立索引和搜索,因此应有选择地应用列级加密。

传输中加密

数据在传输链路上同样需要保护。要求所有客户端与数据库之间的连接使用 TLS,这样凭据和结果集就不会被窃听。

-- PostgreSQL: force SSL in pg_hba.conf
hostssl  appdb  webapp  0.0.0.0/0  scram-sha-256
-- reject non-TLS:
hostnossl appdb all 0.0.0.0/0 reject

密钥管理

加密的强度取决于密钥管理的安全性。绝不要将密钥存放在受其保护的数据旁边。

  • 使用密钥管理服务(KMS)或 HSM。
  • 按计划轮换密钥。
  • 分离职责:DBA 不应同时持有主密钥。

综合应用

保护静态数据的分层模型:

  • 验证每个连接的身份(TLS + 强凭据)。
  • 通过 RBAC 和最小权限进行授权。
  • 在需要细粒度控制时应用 RLS 和列级安全。
  • 对静态数据进行加密(TDE),并单独加密敏感列。
  • 在独立于数据库的 KMS 中管理密钥。

快速检查

思考每项控制措施可以防御哪些威胁。

回顾

通过结合访问控制与加密,可以保护静态数据:

  • 区分身份验证与授权。
  • 实施最小权限和 RBAC,并在需要时采用行级或列级安全。
  • 对静态数据(TDE、列级加密)和传输中的数据(TLS)进行加密。
  • 在独立的 KMS 中管理密钥,并定期轮换密钥。

常见问题解答

「访问控制与加密」课时是免费的吗?

是的 — 「访问控制与加密」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「访问控制与加密」这节课中我会学到什么?

保护静态数据 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「访问控制与加密」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. SQL 注入防护
  2. 访问控制与加密
  3. 审计与监控
  4. 备份与恢复安全
← 返回 Cyber Security Academy