课程名称:课程版本(301)+ 3.8.3 Cloud Security(云安全)
学习时长:
20分钟
课程收获:
掌握在 K8s 和 Cloud 环境下tidb集群的安全机制,并且了解如何配置保证 TiDB 数据库集群的安全
课程内容:
- 管理tidb TLS certificate
- 公有云配置tidb密钥联系
管理tidb TLS certificate
- 回顾 tidb TLS
- mTLS 组件之间的加密和传输
- Mysql TLS ,客户端到服务端之间的加密和传输
- k8s 密钥 (base64 加密文本,存储在ETCD中)
- 源码中Yaml 配置文件不能出现在敏感信息
- 配置k8s 集群时可以启用静态加密
- 通过RBAC,在权限上进行保护
- mount secret file
- reference secret in env
- kubectl create secret generic mysecret --from-literal=user=admin --from-literal=password = 123456adbvd113
- 证书管理 cert-manager
- 支持使用多种CA 证书
- 证书自动更新和发布
- 使用很方便
- API
- issuer
- certificate
- certificateRequest
- helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v0.16.0 --set installCRDs=true
- 管理 tidb tls 认证及证书
- DNS通讯
- 内部均是自签名CA证书
- create self-signed issuer
- create self-signed CA certificate
- use CA certificate to create user
- create a server Certificate for every tidb cluster component (PD TIKV TIDB PUMP Drainer)
- create a client certificate
- configuare tidbCluster spec.tlsCluster.enabled to true
- 证书命名方式有明确约束
- server secrte ${cluster_name}-${component_name}-cluster-secret
- client secrte: ${cluster_name}-cluster-client-secret
- Common Name(CN)验证,只支持使用同一个CN
- 服务端证书支持自动续签和在线更新
公有云的配置
- Cloud IAM
- tidb 支持备份到 S3 或者 GCS 对象系统
- tidb 能够使用AWS KMS 加密 tikv data
- 访问云资源需要S3 和 KMS,另外需要凭证
- cloud authn & authz
- 对比K8s 和 AWS 的区别,根据实际的场景需求配置相应的授权和认证信息
- K8s 和AWS 的权限系统是可以整合的
- 管理tidb云认证信息
- 使用 IAM 的角色信息来覆盖 云API
- 使用 OIDC,并且启用 EKS 的api服务来分配角色和临时的token访问授权
- eksctl utils associate-iam-oidc-provider --cluster {cluster_name} --approve
- S3 安全配置
- 创建S3的桶,并授权给TIDB
- 启用S3 桶互信的加密通道