很多应用在使用时都需要用到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。
以下两个重要项目实现了该类方法,分别是ExternalSecrets和Kubernetes Secret Store CSI Driver。
ACK One基于这两种方式,支持从阿里云KMS服务中将Secret信息应用到业务集群中,详细信息,请参见使用ack-secret-manager或csi-secrets-store-provider-alibabacloud导入阿里云KMS服务凭据。
您可以将您的Secret信息存储于阿里云KMS服务中,并在Gi的应用清单中,增加相应的ExternalSecret
、SecretProviderClass
等资源,以及修改Workload相应使用方式。
在Git中存储加密后的Secret信息
这类方案是先将Secret信息加密,然后将密文存储在Git中的Kubernetes Secret清单中,部署到业务集群中以后,再进行解密。
该类方案您可在开源社区自行搜索。
文档内容是否对您有帮助?