Secret管理

很多应用在使用时都需要用到Secret信息,如授权Token、用户名密码、私钥等,GitOps系统是以Git作为应用来源,将Secret信息以明文方式存储在Git仓库中会有泄露风险,为了Secret信息的安全性,GitOps需要对Secret信息进行安全管理。

GitOps通常可以使用以下两类方案对Secret信息进行管理:

  • 在Git中存储Secret信息的引用

  • 在Git中存储加密后的Secret信息

在Git中存储Secret信息的引用

这类方案,主要是在Git中存储一个Kubernetes资源清单,这些资源引用KMS(Key Management System)中的Secret信息,再通过GitOps将该资源部署到业务Kubernetes集群中,Operator获取相应的Secret,并且在集群中创建相应的Kubernetes Secret。

以下两个重要项目实现了该类方法,分别是ExternalSecretsKubernetes Secret Store CSI Driver

ACK One基于这两种方式,支持从阿里云KMS服务中将Secret信息应用到业务集群中,详细信息,请参见使用ack-secret-manager或csi-secrets-store-provider-alibabacloud导入阿里云KMS服务凭据

您可以将您的Secret信息存储于阿里云KMS服务中,并在Gi的应用清单中,增加相应的ExternalSecretSecretProviderClass等资源,以及修改Workload相应使用方式。

在Git中存储加密后的Secret信息

这类方案是先将Secret信息加密,然后将密文存储在Git中的Kubernetes Secret清单中,部署到业务集群中以后,再进行解密。

该类方案您可在开源社区自行搜索。