阿里云服务器被攻击怎么办免改造架构:借助KMS与ACKSecret实现数据库密码的安全托管

云节点服务器 在云原生应用的敏捷交付与严格安全要求间,我们常面临一个核心矛盾:如何在不改动业务代码的前提下,消除配置文件中的数据库明文密码? 传统的硬编码方式安全···

云节点服务器

在云原生应用的敏捷交付与严格安全要求间,我们常面临一个核心矛盾:如何在不改动业务代码的前提下,消除配置文件中的数据库明文密码?

传统的硬编码方式安全风险极高,而直接集成KMS API又涉及代码改造与测试成本。

为此,我们探寻一条优雅的中间路径:将数据库密码托管于阿里云KMS凭据管家,并借助ACK的Secret管理系统自动同步至应用环境。这一方案实现了凭据的集中管控、自动轮转与安全传递,使应用在无感状态下完成安全升级。

KMS里支持直接创建数据库凭据

创建账号:

凭据管理-数据库凭据-创建数据库凭据

双账号托管和单账号托管的区别:

双账号托管用于程序化访问数据库场景:托管两个相同权限的账号,保证口令重置切换的瞬间,程序访问不被中断。单账号托管用于高权限账号或者人工运维账号托管,口令重置切换的瞬间,凭据的当前版本可能暂时无法使用。

自动轮转:

验证结果:

Java连接访问方式:

https://help.aliyun.com/zh/kms/key-management-service/developer-reference/secrets-manager-jdbc?spm=a2c4g.11186623.help-menu-28933.d_5_1_1_1.5276471dzwqAhU

支持KMS里的RDS凭据同步到ACK的secret,且轮转后也会同步过去

广州云主机云服务器公司

部署流程:

安装插件ack-secret-manager登录容器服务管理控制台,在左侧导航栏选择集群列表。在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm。在Helm页面,单击创建,在Chart区域搜索并选中ack-secret-manager,其他设置保持默认,然后单击下一步。根据弹出的页面提示确认,组件将被安装在默认的kube-system命名空间中,并以组件名称发布应用。如果您需要自定义应用名和命名空间,请根据页面提示设置。
参数配置页面,选择Chart版本为最新版本,并设置相应参数,然后单击确定。需开启RRSA认证功能,您需要将参数rrsa.enable设置为true
如需开启定时同步凭据功能,您需要配置如下参数。

command.disablePolling:是否关闭凭据的自动轮询功能,设置为false,开启凭据自动轮询功能。

command.pollingInterval:凭据同步的频率,设置为120s,此处以两分钟同步一次凭据为例,您可以根据实际需求调整。

注意:这里我们使用自动轮转,定时轮转不开

配置限流参数:如果您集群中具有较多的ExternalSecret(待同步的 KMS 凭据),配置不当可能会引发KMS或RAM侧的限流,因此,您需要配置以下限流参数避免发生限流。

command.maxConcurrentKmsSecretPulls:每秒可以同步的最大KMS凭据数量,默认为10。

注意:当待同步的凭据不多,默认即可

如需指定KMS服务Endpoint地址,您需要配置kmsEndpoint参数。

command.kmsEndpoint:参数支持KMS服务的共享网关和专属网关,可按需配置,该参数是全局配置,当前也支持凭据级的配置,具体的配置说明请参见下文配置KMS服务Endpoint地址。

配置流程:

KMS凭据轮转后会自动同步到ACK Secret。双账号托管时,可通过RRSA认证机制实现跨账号权限访问,确保轮转凭据能同步到目标集群。需提前配置ExternalSecret资源并指定凭据名称与Secret键名。

RRSA适用于1.22及以上版本的ACK托管集群和ACK Serverless集群。相比其他授权方式,RRSA授权方式可以实现Pod维度的权限隔离,还可以避免直接使用AK、SK引起的凭据泄露风险。

在容器服务管理控制台开启集群的RRSA功能,用于创建集群的身份提供商信息。具体操作,请参见启用RRSA功能。创建可信实体为身份提供商的RAM角色,以供ack-secret-manager使用。选择主体身份提供商,添加主体时主要参数设置如下,具体操作,请参见创建OIDC身份提供商的RAM角色。

c. 创建自定义权限策略并为上一步创建的RAM角色授权。

创建角色:

创建权限策略并授权:

d. 创建自定义资源SecretStore关联对应的认证方式并部署。

使用以下内容,替换相关字段后,创建secretstore-rrsa.yaml文件。

腾讯云服务器备案

{accountID}:替换为同步KMS凭据的阿里云账号ID(主账号ID)。

{clusterID}:替换为您的集群ID。

{roleName}:替换为步骤2中创建的RAM角色名称。

PlainTextapiVersion:alibabacloud.com/v1alpha1kind:SecretStoremetadata:name:scdemo-rrsaspec:KMS:KMSAuth:oidcProviderARN:"acs:ram::{accountID}:oidc-provider/ack-rrsa-{clusterID}"ramRoleARN:"acs:ram::{accountID}:role/{roleName}"

AccountID: 为阿里云主账号ID

执行以下命令,部署SecretStore。

Bashkubectlapply -f secretstore-rrsa.yaml -n kube-system查看kubectl--kubeconfig xxx-config get SecretStore -ANAMESPACENAME AGEkube-systemscdemo-rrsa 5s

配置同步流程:

认证信息配置完成后,您需要通过自定义资源ExternalSecret来配置待访问的KMS凭据信息,从而将KMS凭据导入到Kubernetes Secret。

创建自定义资源ExternalSecret并部署。

i. 使用以下内容,替换相关字段后,创建external.yaml文件。

RRSA的方式:

YAMLapiVersion:alibabacloud.com/v1alpha1kind:ExternalSecretmetadata:name:rds-kms-sync保密字典的名称spec:provider:kmsdata:-key:testname:ack-rds-test保密字典里的keyversionStage:ACSCurrentsecretStoreRef:name:scdemo-rrsa上面创建自定义资源SecretStore的名称namespace:kube-system

备注:

i. {KMS secret name} - KMS凭据名称

ii. {Kubernetes secret key} - k8s保密字典其中一个名称的key

iii. {KMS secret version stage} - 使用的凭据版本号,值写ACSCurrent,这样会一直用当前最新的版本号

iv. {secret store name} - 就是上面创建的自定义资源名称也是K8S存储secret的名称

v. {secret store namespace} - 是k8s的namespace,本例为kube-system

Work ram的方式:

YAMLapiVersion:alibabacloud.com/v1alpha1kind:ExternalSecretmetadata:name:esdemonamespace:kube-systemspec:provider:kms需要同步的阿里云服务类型,默认是kms,当同步KMS凭据时,可以不填写该字段或者指定字段值为 kmsdata:无需特殊处理的数据源。-key:testname:ack-rds-testsecretStoreRef: 组件通过Worker RAM授权时,无需配置该参数。name: scdemo-rrsanamespace: kube-system

查看效果

PlainTextkubectl--kubeconfig xxx-config get ExternalSecret -n kube-system -o yaml

使用Work RAM授权

结果

注意事项

如果要到pod级别的授权,需要调研并测试通过RRSA授权模式

2.轮转后的旧账号保留一个轮转周期,再下次轮转后才会更新

3.可以创建自定义资源同步多个凭据,但建议分开做隔离

参考文献

授权相关:https://help.aliyun.com/zh/kms/key-management-service/user-guide/integrate-kms-secrets-into-ack?spm=5176.2020520104.console-base_help.dexternal.8e143a98wJpzVL

配置参考:https://help.aliyun.com/zh/ack/serverless-kubernetes/security-and-compliance/use-ack-secret-manager-to-import-alibaba-cloud-kms-service-credentials?spm=5176.2020520104.console-base_help.dexternal.8e143a98wJpzVL9c937a6ae5o18

公司云服务器如何搭建

您好:云优数据云计算 www.yunyoushuju.cn 2核2G6M最低19.9元/月 欢迎开机

发表评论

评论列表
未查询到任何数据!