- 卡巴斯基容器安全 2.0 帮助
- 关于卡巴斯基容器安全平台
- 解决方案架构
- 标准部署方案
- 准备安装解决方案
- 解决方案安装
- 删除解决方案
- 更新解决方案
- 解决方案界面
- 授权解决方案
- 数据提供
- 使用集群
- 处理仓库的镜像
- 调查安全事件
- 与第三方资源的集成
- 安全策略配置
- 合规性检查
- 配置和生成报告
- 文件威胁防护
- 用户、角色和范围
- 使用卡巴斯基容器安全 OpenAPI
- 安全事件日志
- 有关解决方案组件状态的信息
- 确保组件的安全性和可靠性
- 管理数据积累动态
- 备份和恢复数据
- 联系技术支持
- 应用程序的信息来源
- 限制和警告
- 第三方服务中的漏洞
- 词汇表
- 第三方代码信息
- 商标声明
- ATT&CK MITRE 使用条款
为外部 PostgreSQL 数据库创建用户
对于卡巴斯基容器安全,您可以使用解决方案中包含的 PostgreSQL 数据库或您自己的 PostgreSQL 数据库。要安装不适用于卡巴斯基容器安全模式的外部 PostgreSQL 数据库,您必须创建单独的用户。您可以通过安装带有为外部 PostgreSQL 数据库指定的模式参数的 Helm Chart 包来执行此操作。
要为外部 PostgreSQL 数据库创建具有自定义模式的用户:
- 运行以下命令为外部 PostgreSQL 数据库创建单独的命名空间:
kubectl create ns kcspg
其中
kcspg
是外部 PostgreSQL 数据库的命名空间。 - 要部署外部 PostgreSQL 数据库:
- 在 pg.yaml 配置文件中指定部署外部 PostgreSQL 数据库的参数。
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
labels:
app: postgres
component: postgres
name: postgres
namespace: kcspg
spec:
replicas: 1
selector:
matchLabels:
app: postgres
component: postgres
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
app: postgres
component: postgres
spec:
containers:
- name: postgres
image: postgres:13-alpine
ports:
- containerPort: 5432
env:
- name: POSTGRES_DB
value: api
- name: POSTGRES_USER
value: postgres
- name: POSTGRES_PASSWORD
value: postgres
volumeMounts:
- mountPath: "/var/lib/postgresql/data"
name: "pgdata"
imagePullSecrets:
- name: ci-creds
volumes:
- hostPath:
path: "/home/docker/pgdata"
name: pgdata
该参数指定数据库的密码。然后,您必须在 values.yaml 配置文件的
infraconfig
部分中指定此密码,该文件是解决方案分发套件中包含的Helm Chart 包的一部分。 - 运行以下命令:
kubectl apply -f pg.yaml -n kcspg
该外部数据库的名称格式如下:
pod_name
>.
命名空间名称
>.
服务
>.cluster.local
例如,
postgres.kcspg.svc.cluster.local
- 在 pg.yaml 配置文件中指定部署外部 PostgreSQL 数据库的参数。
- 要在集群中部署服务对象:
- 在 svc.yaml 配置文件中指定服务对象部署参数。
apiVersion: v1
kind: Service
metadata:
name: postgres
spec:
type: ClusterIP
selector:
component: postgres
ports:
- port: 5432
targetPort: 5432
- 运行以下命令:
kubectl apply -f svc.yaml -n kcspg
- 在 svc.yaml 配置文件中指定服务对象部署参数。
- 要创建用户、模式和用户-模式关系:
- 使用步骤 2b 中展开的 postgres 元素,登录到Pod。
- 启动 psql 交互式终端:
psql -h localhost -U postgres -d api
- 运行以下命令:
CREATE ROLE kks LOGIN PASSWORD 'kks' NOINHERIT CREATEDB;
CREATE SCHEMA kks AUTHORIZATION kks;
GRANT USAGE ON SCHEMA kks TO PUBLIC;
- 在 values.yaml 配置文件中,指定使用外部 PostgreSQL 数据库所需的参数。
default:
postgresql:
external: true
configmap:
infraconfig:
type: fromEnvs
envs:
POSTGRES_HOST: postgres.kcspg.svc.cluster.local
POSTGRES_PORT: 5432
POSTGRES_DB_NAME: api
secret:
infracreds:
type: fromEnvs
envs:
POSTGRES_USER: kks
POSTGRES_PASSWORD: kks
values.yaml中指定的参数值必须与 pg.yaml 和svc.yaml 配置文件中对应参数的值匹配。
- 开始解决方案更新。
export KUBECONFIG=/root/.kube/config
export CHART_URL=repo.kcs.kaspersky.com
export CHART_USERNAME=<CHART_USERNAME>
export CHART_PASSWORD=<CHART_PASSWORD>
export VERSION=2.0.0
export KCS_HOSTNAME=kcs.apps.aws.ext.company.com
export IMAGE_URL=company.gitlab.examplecloud.com:5050
export IMAGE_USERNAME=<repo_user>
export IMAGE_PASSWORD=<repo_pass>
cd /tmp
helm registry login --username $IMAGE_USERNAME --password $IMAGE_PASSWORD company.gitlab.examplecloud.com:5050/company/kcs/chart
helm pull oci://company.gitlab.examplecloud.com:5050/company/kcs/chart/kcs --version $VERSION
tar -xf kcs*.tgz -C /tmp
cp -rf /tmp/values.yaml /tmp/kcs
cd /tmp/kcs
helm upgrade --install kcs-release --create-namespace --namespace kcs --values values.yaml --version $VERSION --timeout 30m --wait --debug .