当前位置: 首页 > news >正文

【AliCloud】ack + ack-secret-manager + kms 敏感数据安全存储

介绍

ack-secret-manager支持以Kubernetes Secret实例的形式向集群导入或同步KMS凭据信息,确保您集群内的应用能够安全地访问敏感信息。通过该组件,您可以实现密钥数据的自动更新,使应用负载通过文件系统挂载指定Secret实例来使用凭据信息,同时帮助您解决负载应用和阿里云凭据管家交互的兼容性问题。

模块图(Modules Digram)

集成

ACK 即是Aliyun Kubernetes, 阿里云提供了若干版本的k8s云上集群,这边测试选用ack-serverless版本。

假设你有一套ack(ali cloud k8s)集群,一般来说我们的敏感数据会选用k8s secrets组件来存储。如下:

apiVersion: v1
kind: Secret
metadata:name: my-secretnamespace: my-namespace
type: Opaque
data:xx_token: <BASE64ENCODE Your Secret Value>

xx_token 一般来说默认的加密是基于base64。但是这样的加密程度是远远不够的。几乎还是裸奔的存在。但是我们也可以依赖一些插件选择合适的加密算法进行加密来避免简单base64 encode。这是一种解决方案。

由于aliyun已经提供了一个密钥凭据管理的组件KMS。他在提供了加密存储的同时也对加解密的性能提供了SLA和Latency的保证。支持一些rotate的策略,并且支持多个VPC账号的访问,对于企业级应用来说是个不错的选择。

那么我们接下来就操作下如何在ack中集成kms,让你的pod可以访问使用kms的凭据。

安装ack-secret-manager组件

手动方式

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm

  3. Helm页面,单击创建,在Chart区域搜索并选中ack-secret-manager,其他设置保持默认,然后单击下一步

    根据弹出的页面提示确认,组件将被安装在默认的kube-system命名空间中,并以组件名称发布应用。如果您需要自定义应用名和命名空间,请根据页面提示设置。

  4. 参数配置页面,选择Chart版本为最新版本,并设置相应参数,然后单击确定

    • 如需开启RRSA认证功能,您需要将参数rrsa.enable设置为true

创建成功后,会自动跳转到目标集群的ack-secret-manager页面,检查安装结果。若下图中所有资源创建成功,则表明组件安装成功。

Helm安装ack-secret-manager

     helm 配置链接你的ack集群,请自行查询helm 使用。简单来说是在kubectl之上封装了一层,可以帮我们生成我们需要发布的yaml并且带有版本控制概念。

  1. 首先安装helm,然后下载ack-secret-manger的chart包
    下载地址:https://github.com/AliyunContainerService/ack-secret-manager/tree/master
  2. 运行命令安装
    helm install ./ack-secret-manager ack-secret-manager

配置组件认证信息RRSA

说明

安装ack-secret-manager时,需要将参数rrsa.enable设置为true,以启用RRSA功能。

  1. 在容器服务管理控制台开启集群的RRSA功能。具体操作,请参见启用RRSA功能。

  2. 创建可信实体为身份提供商的RAM角色,以供ack-secret-manager使用。

    说明

    阿里云账号(主账号)对账号中的资源具有完全管理权限,您也可以在RAM中创建一个RAM用户,授予AdministratorAccess权限,充当账号管理员,该管理员可以对账号下所有云资源进行管控操作。更多信息,请参见创建RAM用户作为账号管理员。

    1. 使用阿里云账号(主账号)登录RAM控制台。

    2. 在左侧导航栏,选择身份管理 > 角色

    3. 角色页面,单击创建角色

    4. 创建角色页面,选择可信实体类型为身份提供商,然后单击下一步

    5. 在配置角色页面,配置如下角色信息后,单击完成

置项

描述

角色名称

自定义角色名称。

备注

选填有关该角色的备注信息。

身份提供商类型

OIDC

选择身份提供商

ack-rrsa-<cluster_id>。其中,<cluster_id>为您的集群ID。

限制条件

说明

如果您将ack-secret-manager安装在其他的命名空间,请将kube-system替换为对应命名空间的名称。

  • oidc:iss:保持默认。

  • oidc:aud:选择sts.aliyuncs.com

  • oidc:sub:条件判定方式选择StringEquals,值的格式为system:serviceaccount:<namespace>:<serviceAccountName>

    • <namespace>:应用所在的命名空间。

    • <serviceAccountName>:服务账户名称。

  • 根据测试应用的信息,此处需要填入system:serviceaccount:kube-system:ack-secret-manager

 terraform 创建, 关于terraform语法自行百度或者查阅官方文档。

# Role
resource "alicloud_ram_role" "default" {name        = role_namedocument    = <<EOF{"Statement": [{"Action": "sts:AssumeRole","Condition": {"StringEquals": {"oidc:aud": ["sts.aliyuncs.com"],"oidc:iss": "https://oidc-ack-<region>.oss-<regionID>.aliyuncs.com/<your-ack-cluster-id>","oidc:sub": "system:serviceaccount:<your namespace>:<service account name>"}},"Effect": "Allow","Principal": {"Federated": ["<oidc-provider-arn>"]}}],"Version": "1"}EOFdescription = "desc"
}

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

  1. 创建ack-secret-manager导入KMS凭据时所需的权限策略。
     

    {"Action": ["kms:GetSecretValue","kms:Decrypt"],"Resource": ["*"],"Effect": "Allow"
    }

    使用terraform创建, 关于terraform语法自行百度或者查阅官方文档。

    resource "alicloud_ram_policy" "default" {policy_name     = your policy namepolicy_document = <<EOF{"Version": "1","Statement": [{"Action": ["kms:GetSecretValue","kms:Decrypt"],"Resource": "*","Effect": "Allow"}]}EOFdescription     = "desc"
    }

    • 为上一步创建的RAM角色授权。具体操作,请参见为RAM角色授权。
    • 创建自定义资源SecretStore关联对应的认证方式并部署。

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

      1.{roleName}:替换为步骤2中创建的RAM角色名称。
      2.{clusterID}:替换为您的集群ID。
      3.{accountID}:替换为同步KMS凭据的阿里云账号ID。
apiVersion: 'alibabacloud.com/v1alpha1'
kind: SecretStore
metadata:name: scdemo-rrsa
spec:KMS:KMSAuth:oidcProviderARN: "acs:ram::{accountID}:oidc-provider/ack-rrsa-{clusterID}"ramRoleARN: "acs:ram::{accountID}:role/{roleName}"	                     

执行以下命令,部署SecretStore。

 

配置数据同步信息

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

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

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

    apiVersion: 'alibabacloud.com/v1alpha1'
    kind: ExternalSecret
    metadata:name: esdemo
    spec:data: # 无需特殊处理的数据源。- key: {KMS secret name}name: {Kubernetes secret key}versionStage: {KMS secret version stage}secretStoreRef:name: {secret store name}namespace: {secret store namespace}

    2.执行以下命令,部署ExternalSecret。
     

    kubectl apply -f external.yaml
    

执行以下命令,查看集群中是否存在对应的Kubernetes Secret生成。

kubectl get secret esdemo

查询存在Secret,表明Secret同步成功。 

相关文章:

【AliCloud】ack + ack-secret-manager + kms 敏感数据安全存储

介绍 ack-secret-manager支持以Kubernetes Secret实例的形式向集群导入或同步KMS凭据信息&#xff0c;确保您集群内的应用能够安全地访问敏感信息。通过该组件&#xff0c;您可以实现密钥数据的自动更新&#xff0c;使应用负载通过文件系统挂载指定Secret实例来使用凭据信息&a…...

探索JavaScript的强大功能:从基础到高级应用

随着互联网技术的不断发展&#xff0c;JavaScript已经成为现代Web开发的基石。无论是简单的交互效果&#xff0c;还是复杂的前端框架&#xff0c;JavaScript都在其中扮演着不可或缺的角色。本文旨在对JavaScript进行深入探讨&#xff0c;从其基础概念到高级应用&#xff0c;并讨…...

新增支持Elasticsearch数据源,支持自定义在线地图风格,DataEase开源BI工具v2.10.2 LTS发布

2024年11月11日&#xff0c;人人可用的开源BI工具DataEase正式发布v2.10.2 LTS版本。 这一版本的功能变动包括&#xff1a;数据源方面&#xff0c;新增了对Elasticsearch数据源的支持&#xff1b;图表方面&#xff0c;对地图类和表格类图表进行了功能增强和优化&#xff0c;增…...

Spark的容错机制

1&#xff0c;Spark如何保障数据的安全 1、RDD容错机制&#xff1a;persist持久化机制 1&#xff09;cache算子 - 功能&#xff1a;将RDD缓存在内存中 - 语法&#xff1a;cache() - 本质&#xff1a;底层调用的还是persist&#xff08;StorageLevel.MEMORY_ONLY&#xff09;&…...

YOLOv8改进 | 利用YOLOv8进行视频划定区域目标统计计数

简介 本项目旨在利用YOLOv8算法来实现视频中划定区域目标的统计计数。YOLOv8是一种目标检测算法,能够实现实时目标检测和定位。视频划定区域目标统计计数是指在一个视频中,对于指定的区域,统计出该区域内出现的目标物体数量。 该项目的工作流程如下:首先,利用YOLOv8算法…...

基于yolov8、yolov5的番茄成熟度检测识别系统(含UI界面、训练好的模型、Python代码、数据集)

摘要&#xff1a;番茄成熟度检测在农业生产及质量控制中起着至关重要的作用&#xff0c;不仅能帮助农民及时采摘成熟的番茄&#xff0c;还为自动化农业监测提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的番茄成熟度检测模型&#xff0c;该模型使用了…...

wafw00f源码详细解析

声明 本人菜鸟一枚&#xff0c;为了完成作业&#xff0c;发现网上所有的关于wafw00f的源码解析都是这抄那那抄这的&#xff0c;没有新东西&#xff0c;所以这里给出一个详细的源码解析&#xff0c;可能有错误&#xff0c;如果有大佬发现错误&#xff0c;可以在评论区平和的指出…...

什么是crm?3000字详细解析

在现代商业环境中&#xff0c;客户关系管理&#xff08;CRM&#xff09;已经成为企业驱动成功的关键工具。在复杂且竞争激烈的市场中&#xff0c;如何有效地管理客户关系、提升客户满意度&#xff0c;并增加客户忠诚度&#xff0c;越来越成为企业迫切关心的问题。而CRM系统&…...

WEB3.0介绍

Web3.0是对Web2.0的改进&#xff0c;被视为互联网潜在的下一阶段。 以下是对Web3.0的详细介绍&#xff1a; 一、定义与概念 Web3.0被描述为一个运行在区块链技术之上的去中心化互联网。它旨在构建一个更加自主、智能和开放的互联网环境&#xff0c;其中用户不必 在不同中心化…...

【深度学习】LSTM、BiLSTM详解

文章目录 1. LSTM简介&#xff1a;2. LSTM结构图&#xff1a;3. 单层LSTM详解4. 双层LSTM详解5. BiLSTM6. Pytorch实现LSTM示例7. nn.LSTM参数详解 1. LSTM简介&#xff1a; LSTM是一种循环神经网络&#xff0c;它可以处理和预测时间序列中间隔和延迟相对较长的重要事件。LSTM通…...

分子对接--软件安装

分子对接相关软件安装 一、软件 AutoDock&#xff0c;下载链接: linkMGLtools&#xff0c;下载链接: link 自行选择合适版本下载&#xff0c;这里主要叙述在win上的具体安装流程&#xff1a; 下载得到&#xff1a; 二、运行 运行autodocksuite-4.2.6.i86Windows得到&#…...

【Python无敌】在 QGIS 中使用 Python

QGIS 中有 Python 的运行环境,可以很好地执行各种任务。 这里的问题是如何在 Jupyter 中调用 QGIS 的功能。 首先可以肯定的是涉及到 GUI 的一些任务是无法在 Jupyter 中访问的, 这样可以用的功能主要是地处理工具。 按如下方式进行了尝试。 原想使用 gdal:hillshade ,但是…...

全面解读:低代码开发平台的必备要素——系统策划篇

在传统开发过程中&#xff0c;系统策划起着举足轻重的作用&#xff0c;它宛如一位幕后的总指挥&#xff0c;把控着整个软件开发项目的走向。而随着技术的不断进步&#xff0c;低代码开发平台逐渐崭露头角&#xff0c;它以快速开发、降低技术门槛等优势吸引了众多企业和开发者的…...

Vue开发自动生成验证码功能 前端实现不使用第三方插件实现随机验证码功能,生成的验证码添加干扰因素

Vue实现不使用第三方插件,开发随机生成验证码功能 效果图,其中包含了短信验证码功能,以及验证码输入是否正确功能 dom结构 <div class="VerityInputTu"><div class="labelClass">图形验证码</div><div class="tuxingInput…...

# filezilla连接 虚拟机ubuntu系统出错“尝试连接 ECONNREFUSED - 连接被服务器拒绝, 失败,无法连接服务器”解决方案

filezilla连接 虚拟机ubuntu系统出错“尝试连接 ECONNREFUSED - 连接被服务器拒绝&#xff0c; 失败&#xff0c;无法连接服务器”解决方案 一、问题描述&#xff1a; 当我们用filezilla客户端 连接 虚拟机ubuntu系统时&#xff0c;报错“尝试连接 ECONNREFUSED - 连接被服务…...

2024/11/13 英语每日一段

The new policy has drawn many critics. Data and privacy experts said the Metropolitan Transit Authority’s new initiative doesn’t address the underlying problem that causes fare evasion, which is related to poverty and access. Instead, the program tries “…...

【全栈开发平台】全面解析 StackBlitz 最新力作 Bolt.new:AI 驱动的全栈开发平台

文章目录 [TOC]&#x1f31f; Bolt.new 的独特价值1. **无需配置&#xff0c;立刻开发**2. **AI 驱动&#xff0c;智能生成代码**3. **极致的速度与安全性**4. **一键部署&#xff0c;轻松上线**5. **免费开放&#xff0c;生态丰富** &#x1f6e0;️ Bolt.new 使用教程一、快速…...

文献解读-DNAscope: High accuracy small variant calling using machine learning

关键词&#xff1a;基准与方法研究&#xff1b;基因测序&#xff1b;变异检测&#xff1b; 文献简介 标题&#xff08;英文&#xff09;&#xff1a;DNAscope: High accuracy small variant calling using machine learning标题&#xff08;中文&#xff09;&#xff1a;DNAsc…...

成都睿明智科技有限公司解锁抖音电商新玩法

在这个短视频风起云涌的时代&#xff0c;抖音电商以其独特的魅力迅速崛起&#xff0c;成为众多商家争夺的流量高地。而在这片充满机遇与挑战的蓝海中&#xff0c;成都睿明智科技有限公司犹如一颗璀璨的新星&#xff0c;以其专业的抖音电商服务&#xff0c;助力无数品牌实现从零…...

【操作系统】——调度算法

&#x1f339;&#x1f60a;&#x1f339;博客主页&#xff1a;【Hello_shuoCSDN博客】 ✨操作系统详见 【操作系统专项】 ✨C语言知识详见&#xff1a;【C语言专项】 目录 先来先服务&#xff08;FCFS, First Come First Serve) 短作业优先&#xff08;SJF, Shortest Job Fi…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...